paypal - 无法在 braintree 结帐按钮中获得响应

标签 paypal paypal-sandbox braintree braintree-sandbox

我正在使用 braintree paypal checkout 进行付款,付款工作正常,但无法得到回应,这是我的代码

<script type="text/javascript">
var form = document.querySelector('#payment-form');
var client_token = "<?php echo \Braintree\ClientToken::generate(); ?>";
braintree.dropin.create({
    authorization: client_token,
    selector: '#bt-dropin',
    paypal: {
        flow: 'vault',
        onSuccess: function (nonce, email) {
            alert('sdsdsd123');
            console.log(JSON.stringify(nonce));
        },
    },

}, function (createErr, instance) {
    if (createErr) {
        console.log('Error', createErr);
        return;
    }
    form.addEventListener('submit', function (event) {
        event.preventDefault();

        instance.requestPaymentMethod(function (err, payload) {
            if (err) {
                console.log('Error', err);
                return;
            } else {
                console.log("Payment confirmation");
                console.log(payload);
            }

            // Add the nonce to the form and submit
            document.querySelector('#nonce').value = payload.nonce;
            form.submit();
        });
    });
},
);
var checkout = new Demo({
    formID: 'payment-form'
});

但是无法在 onsuccess 函数中获得响应,谁能告诉我如何获得成功响应,

最佳答案

全面披露:我在 Braintree 工作。如果您还有任何疑问,请随时联系support .

看来您可能混淆了 Braintree JSv2 Drop-In UI 中 PayPal 的实现。与 Braintree JSv3 Drop-In UI . JSv3 不支持 onSuccess 选项。 JSv3 中 PayPal 对象的完整配置选项列表是 available here .

根据您提供的代码,我建议删除您的 onSuccess 回调函数。您仍然可以通过将该代码放入您的 instance.requestPaymentMethod 回调函数中来实现您想要的结果,如下所示:

<script type="text/javascript">
  var form = document.querySelector('#payment-form');
  var client_token = "<?php echo \Braintree\ClientToken::generate(); ?>";

  braintree.dropin.create({
      authorization: client_token,
      selector: '#bt-dropin',
      paypal: {
          flow: 'vault'
      }
  }, function (createErr, instance) {
      if (createErr) {
          console.log('Error', createErr);
          return;
      }
      form.addEventListener('submit', function (event) {
          event.preventDefault();

          instance.requestPaymentMethod(function (err, payload) {
              if (err) {
                  console.log('Error', err);
                  return;
              }

              console.log("Payment confirmation");
              console.log(payload);
              alert('sdsdsd123');
              console.log(payload.nonce);

              // Add the nonce to the form and submit
              document.querySelector('#nonce').value = payload.nonce;
              form.submit();
          });
      });
  });
</script>

关于paypal - 无法在 braintree 结帐按钮中获得响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46314207/

相关文章:

api - codeigniter Paypal 集成

php - 新的 paypal 系统已停止使用我的代码

python - Braintree paypal 实现到 django-python

ruby - 如何从braintree获得按比例收费?

javascript - 在 Paypal 中,什么可以保护买家在结账时从他们的账户中扣除正确的金额?

php - Route.php 第 279 行 : Class App\Http\Controllers\PaymentController does not exist

api - 为 paypal SANDBOX 创建 API 凭据

paypal - 请登录以使用 PayPal 沙盒功能

Paypal 加密按钮作为文本链接

paypal - 应在 PayPal Website Payments Standard 的 IPN 模拟器中测试哪些交易类型?