Nikul Panchal
Nikul Panchal

Reputation: 711

Not able to get response in braintree checkout button

I am using braintree paypal checkout for the payment, payment is working fine, but not able to get response of that, here is my code for that

<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'
});

But not able to get response in onsuccess function, can anyone please tell me how cani get this success response,

Upvotes: 1

Views: 433

Answers (1)

Carter
Carter

Reputation: 274

Full disclosure: I work at Braintree. If you have any further questions, feel free to contact support.

It looks like you may be confusing the implementation of PayPal within the Braintree JSv2 Drop-In UI with the Braintree JSv3 Drop-In UI. The onSuccess option is not supported in JSv3. The full list of configuration options of the PayPal object in JSv3 is available here.

Based on the code you provided, I would suggest removing your onSuccess callback function. You should still be able to achieve your desired result by placing that code in your instance.requestPaymentMethod callback function like so:

<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>

Upvotes: 1

Related Questions