Я внедрил систему регулярных платежей, используя PayPal
и SmartButtons
. Клиент может создать подписку через мою систему, и в конце оформления заказа я создаю подписку:
{
"orderID": "3JR7411152833961C",
"subscriptionID": "I-J8CHJ9UKB8JU",
"facilitatorAccessToken": "A21AAElq71jrRrKHzaxxOeA4o7cOie83F_N-LKMZoAe2mhmaANy-a784yj9DUbSlQPIxtu_O-7XyzHWab23gKVgwhqK9Hjaow"
}
, чтобы активировать подписку и получить платеж, необходимый для ее выполнения, поэтому Я написал этот метод:
let executeAgreement = (paymentToken) => {
paypal.billingAgreement.execute(paymentToken, {}, function (error, billingAgreement) {
if (error) {
console.log(error);
throw error;
}
else {
console.log('Billing Agreement Execute Response');
console.log(JSON.stringify(billingAgreement));
}
});
}
проблема, которую я получил:
ответ: {имя: 'BUSINESS_VALIDATION_ERROR', debug_id: '82426af46aee4', сообщение: 'Ошибка проверки. ', информационная ссылка:' https://developer.paypal.com/docs/api/payments.billing-agreements#errors ', подробности: [[Object]], httpStatusCode: 400}, httpStatusCode: 400}
Я отправляю executeAgreement
идентификатор подписки , но я думаю, проблема в том, что в созданной подписке я только повторно получаю идентификатор подписки, а не paymentToken
, как я могу это исправить?
По существу: как я могу выполнить / активировать подписку, если У меня есть только идентификатор подписки, возвращенный следующим методом:
opts.createSubscription = function (data, actions) {
that.step = that.steps.PAYPAL_EXTERNAL_WINDOW;
return actions.subscription.create({
plan_id: that.paymentData.plan.id,
application_context: {
user_action: "CONTINUE",
shipping_preference: 'NO_SHIPPING'
}
});
}
, описанный выше метод возвращает orderId - subscriptionId - facilitatorAccessToken
, кажется, я не могу активировать идентификатор подписки после того, как пользователь подтвердил повторение оплата с помощью умных кнопок оплаты.