Мне удалось создать тестовую выписку (js + php) на моем сервере, используя метод вставки Braintree.Мне нужно создать подписки для моих клиентов, принимающих PayPal или кредитные карты.Форма оформления заказа (на стороне клиента) работает, и я POST пересылаю ее на страницу php, где я получаю данные формы и создаю клиента, план и т. Д.
Однако у меня есть проблемыпри создании подписки.Я получаю Невозможно использовать paymentMethodNonce более одного раза или аналогичные ошибки.
Вот что я делаю:
- Форма оформления заказа (раскрывающийся) отправляет данные subscription.php? payload_nonce = tokencc_bc_s27k55_c7pcq8_8mvd43_xxcvvf_9p5
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);
Я пытался добавить paymentMethodNonce при создании Customer или при создании paymentMethod и т. Д.. с теми же результатами.
Если в качестве способа оплаты используется «кредитная карта», я могу получить маркер метода оплаты, например:
'paymentMethodToken' => $ result-> customer-> creditCards [0] -> token
Но если это PayPal, то нет кредитных карт [0].Какой правильный метод для достижения того, что мне нужно?
Спасибо!