2017-09-20 3 views
1

J'utilise Braintree paypal caisse pour le paiement, le paiement fonctionne bien, mais pas en mesure d'obtenir une réponse de cela, voici mon code pour quePas en mesure d'obtenir une réponse dans le bouton de commande de Braintree

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

Mais pas en mesure d'obtenir une réponse en fonction de succès, quelqu'un peut-il me dire comment obtenir cette réponse de succès,

Répondre

1

Divulgation complète: Je travaille chez Braintree. Si vous avez d'autres questions, n'hésitez pas à contacter support.

Il semble que vous puissiez être déroutant l'implémentation de PayPal au sein du Braintree JSv2 Drop-In UI avec le Braintree JSv3 Drop-In UI. L'option onSuccess n'est pas prise en charge dans JSv3. La liste complète des options de configuration de l'objet PayPal dans JSv3 est available here.

En fonction du code que vous avez fourni, je vous suggère de supprimer votre fonction de rappel onSuccess. Vous devriez toujours être en mesure d'atteindre le résultat souhaité en plaçant ce code dans votre fonction de rappel instance.requestPaymentMethod comme ceci:

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

Merci pour votre aide, requestPaymentMethod ne fonctionne que lorsque nous faisons le paiement par carte de crédit, il ne fonctionne pas avec paypal checkout –

+0

@NikulPanchal pouvez-vous poster votre formulaire html complet avec le script afin que je puisse l'exécuter localement? Des erreurs sont-elles consignées? Le code ci-dessus fonctionne pour moi lors de la soumission du formulaire. – Carter