function post_to_url(path, params, method) {
method = method || "post"; // Set method to post by default if not specified.
// The rest of this code assumes you are not using a library.
// It can be made less wordy if you use one.
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
for(var key in params) {
if(params.hasOwnProperty(key)) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", params[key]);
form.appendChild(hiddenField);
}
}
document.body.appendChild(form);
form.submit();
}
Некоторые списания будут реализованы по схеме, когда пользователь запрашивает его, а некий модератор спустя время подтверждает.Т.е. сначала просто блокировка средств на счету. Добавьте это поле и всё будет просто.
Нужно ли хранить входящий/исходящий баланс в истории транзакций?Это удобно, но и без них многие работают.
С другой стороны, как быть с неподтверждёнными транзакциями.Если вы позволяете использовать средства до подтверждения, то зачислять как обычно, а в случае неподтверждения добавлять отменяющую транзакцию. Если нет — транзакция происходит только в момент подтверждения платежа; платеж и транзакция по изменению баланса — разные сущности.