Функция обратного вызова tokenizeCard, она не вызывается на Braintree

Я интегрировал Braintree с моим приложением и обнаружил проблему. Мне нужно использовать метод tokenizeCard, но кажется, что обратный вызов не вызывается, и я не понимаю, почему.

function buyNow() {
    var token = getSessionVarFromView('client_token_braintree');
    console.error(token);
    braintree.setup(token, "custom", {id: "braintreePaymentForm"});
    var client = new braintree.api.Client({clientToken: token});
    client.tokenizeCard({number: "4111111111111111", expirationDate: "10/20"}, function (err, nonce) {
       console.error("On tokenize card");
    });
}

И моя форма вот эта:

      <form method="POST" name="braintreePaymentForm" id="braintreePaymentForm">
                <div class='form-row'>
                  <div class='col-xs-8 form-group required'>
                    <label class='control-label'>Card number</label>
                    <input class='form-control' size="20" autocomplete="off" data-braintree-name="number">
                  </div>
                  <div class='col-xs-4 form-group required'>
                    <label class='control-label'>Security Code</label>
                    <input class='form-control' size="20" autocomplete="off" data-braintree-name="cvv">
                  </div>
                </div>
                <div class='form-row'>
                  <div class='col-xs-6 form-group required'>
                    <label class='control-label'>Name on card</label>
                    <input class='form-control' size="20" autocomplete="off" data-braintree-name="name_on_card">
                  </div>
                  <div class='col-xs-3 form-group required'>
                    <label class='control-label'>Expires on</label>
                    <input class='form-control' size="20" autocomplete="off" data-braintree-name="expiration_month">
                  </div>
                  <div class='col-xs-3 form-group required'>
                    <input class='form-control' size="20" autocomplete="off" data-braintree-name="expiration_year">
                  </div>
                </div>
                  <div id="buyNowBtn">
                </div>
            </form>

Метод buyNow вызывается после нажатия пользователем кнопки buy. Метод для создания моего клиентского токена на сервере:

Braintree_Configuration::environment('sandbox');
Braintree_Configuration::merchantId('merchantId');
Braintree_Configuration::publicKey('publicKey');
Braintree_Configuration::privateKey('privateKey');  

$clientToken = Braintree_ClientToken::generate();
return $clientToken;

После этого функция обратного вызова tokenizeCard никогда не вызывается.

Я надеюсь, что кто-то может помочь мне.

Спасибо

1 ответ

Решение

Я работаю в Брэйнтри. Если у вас есть дополнительные вопросы, вы всегда можете связаться с нашей службой поддержки.

Кнопка отправки формы должна быть либо <button> или же <input type="submit"> для того, чтобы правильно вызвать обратный вызов. Вы используете <div>,

Другие вопросы по тегам