我已经能够使用Braintree插入方法在服务器中创建测试结帐(js + php)。我需要为接受贝宝或信用卡的客户创建订阅。结帐(客户端)表单正在运行,我将其 POST 到一个php页面,在其中获取表单数据并创建客户,计划等。
但是,创建订阅时遇到问题。我收到不能多次使用paymentMethodNonce 或类似错误。
这就是我的工作
braintree.dropin.create({ authorization: 'sandbox_6vqkmmsy_fs5432wttyb8qpzf', container: '#dropin-container', locale: 'es_ES', paypal: { flow: 'vault' } }, function (createErr, instance) { button.addEventListener('click', function () { instance.requestPaymentMethod(function (err, payload) { // Submit payload.nonce to your server url = 'subscription.html?payload_nonce=' + payload.nonce; window.location.replace(url); }); }); });
$payload_nonce = $_GET['payload_nonce']; $result = Braintree_Customer::create(array( 'firstName' => $name, 'email' => $email, 'company' => $company ));
$resultPM = Braintree_PaymentMethod::create([ 'customerId' => $customerId, 'paymentMethodNonce' => $payload_nonce ]);
$subscriptionData = array( 'paymentMethodNonce' => $payload_nonce, 'planId' => $billingplan ); $result = Braintree_Subscription::create($subscriptionData);
在创建“客户”或创建具有相同结果的PaymentMethod等时,我试图添加paymentMethodNonce。
如果付款方式是“信用卡”,我可以像下面这样获得mayment方法令牌:
'paymentMethodToken'=> $ result-> customer-> creditCards [0]-> token
但是如果是PayPal,则没有信用卡[0]。哪种方法可以满足我的需求?
谢谢!