У меня есть скрытый ввод, содержащий значение одноразового номера, используемого для обработки платежей.
<input id="nonce" runat="server" clientidmode="Static" />
При первой загрузке страницы значение, вызываемое со стороны сервера, очевидно пустая строка. Но есть кнопка, которая обновляет значение этого ввода с помощью соответствующего одноразового номера:
button.addEventListener('click', function () {
instance.requestPaymentMethod(function (err, payload) {
if (err) {
console.log('Error', err);
return;
}
document.querySelector('#nonce').value = payload.nonce;
nextPrev(1);
});
});
После того, как кнопка нажата и событие запускается, значение одноразового номера изменяется. Используя инструменты проверки, я обнаружил, что после нажатия кнопки разметка выглядит следующим образом:
<input name="nonce" type="hidden" id="nonce" value="tokencc_bf_z22pd4_9nm74f_sgg8nz_dgmwvy_qc5">
Это то, что я ожидал.
Проблема в том, что при нажатии другой кнопки вызывается функция на стороне сервера, которая использует это значение одноразового номера, одноразовый номер выглядит пустым из бэкэнда:
var paymentMethodRequest = new PaymentMethodRequest
{
CustomerId = Client.User.BrainTreeCustomerID,
PaymentMethodNonce = nonce.Value
};
nonce.Value
- это пустая строка. Даже если непосредственно ПЕРЕД нажатием кнопки на стороне сервера значение не пустое и равно "tokencc_bf_z22pd4_9nm74f_sgg8nz_dgmwvy_qc5", как в примере на два блока кода.
Кто-нибудь знает, что здесь происходит?