Периодические платежи Paypal без единовременной покупки

Я пытаюсь настроить повторяющийся профиль Paypal, но продолжаю получать код ошибки 10525: «Эта транзакция не может быть обработана. Сумма, подлежащая оплате, равна нулю». Я хочу только начать регулярное выставление счетов, а не взимать с них единовременную сумму платежа, а затем повторяющееся выставление счетов сверх этого. (Можно выбрать 13 долларов в месяц или 135 долларов в год).

Из знаний PayPal (https://www.paypal-knowledge.com/infocenter/index?page=content&id=FAQ1441&actp=LIST) Я обнаружил: «Используйте BillingType = RecurringPayments / MerchantInitiatedBilling вместо создания идентификатора повторяющегося профиля / соглашения о выставлении счетов без суммы в долларах».

Однако я уже сделал это.

Кроме того, в API PayPal (https://developer.paypal.com/docs/classic/api/merchant/SetExpressCheckout_API_Operation_NVP/) Я обнаружил: "Установите в этом поле значение 0, если транзакция не включает одноразовую покупку, например, когда вы устанавливаете соглашение о выставлении счетов для повторяющегося платежа, который не взимается сразу. Если в поле установлено значение 0, поля, относящиеся к покупке, игнорируются ".

Но он установлен на «0», поэтому я не уверен, что там делать.

Вот мой список отладки:

2017-11-08 19:39:28 - PayPal Express debug (Call data): {
"METHOD":"SetExpressCheckout",
"MAXAMT":0,
"RETURNURL":"***",
"CANCELURL":"***",
"REQCONFIRMSHIPPING":0,
"NOSHIPPING":1,
"LOCALECODE":"EN",
"LANDINGPAGE":"Login",
"HDRIMG":"***",
"PAYFLOWCOLOR":"FFFFFF",
"CHANNELTYPE":"Merchant",
"ALLOWNOTE":"1",
"PAYMENTREQUEST_0_SHIPPINGAMT":"",
"PAYMENTREQUEST_0_CURRENCYCODE":"USD",
"PAYMENTREQUEST_0_PAYMENTACTION":"Sale",
"L_PAYMENTREQUEST_0_DESC0":"Journal Inside Pages:Unlined, Journal Theme:Mom",
"L_PAYMENTREQUEST_0_NAME0":"The Gratitude Project",
"L_PAYMENTREQUEST_0_NUMBER0":"JNL103",
"L_PAYMENTREQUEST_0_AMT0":0,
"L_PAYMENTREQUEST_0_QTY0":"1",
"L_PAYMENTREQUEST_0_ITEMURL0":"***",
"L_PAYMENTREQUEST_0_ITEMLENGTHVALUE0":"8.00000000",
"L_PAYMENTREQUEST_0_ITEMLENGTHUNIT0":"in",
"L_PAYMENTREQUEST_0_ITEMWIDTHVALUE0":"10.00000000",
"L_PAYMENTREQUEST_0_ITEMWIDTHUNIT0":"in",
"L_PAYMENTREQUEST_0_ITEMHEIGHTVALUE0":"0.00000000",
"L_PAYMENTREQUEST_0_ITEMHEIGHTUNIT0":"in",
"PAYMENTREQUEST_0_ITEMAMT":"0.00",
"PAYMENTREQUEST_0_AMT":0,
"L_BILLINGTYPE0":"RecurringPayments",
"L_BILLINGAGREEMENTDESCRIPTION0":"1 USD every 1 day"}

2017-11-08 19:39:29 - PayPal Express debug (Result): 
"TOKEN=EC%2d67C48949S6014741D&TIMESTAMP=2017%2d11%2d08T19%3a39%3a29Z&CORRELATIONID=a278368193eb9&ACK=Success&VERSION=109%2e0&BUILD=40710629"

2017-11-08 19:39:47 - PayPal Express debug (Call data): 
{"METHOD":"GetExpressCheckoutDetails",
"TOKEN":"EC-67C48949S6014741D"}

2017-11-08 19:39:48 - PayPal Express debug (Result):    "TOKEN=***"

2017-11-08 19:39:48 - PayPal Express debug (Call data): 
{"TOKEN":"EC-67C48949S6014741D",
"PAYERID":"8CKXXNF3MR26N",
"METHOD":"DoExpressCheckoutPayment",
"PAYMENTREQUEST_0_NOTIFYURL":"***",
"RETURNFMFDETAILS":1,
"PAYMENTREQUEST_0_SHIPPINGAMT":"",
"PAYMENTREQUEST_0_CURRENCYCODE":"USD",
"PAYMENTREQUEST_0_PAYMENTACTION":"Sale",
"L_PAYMENTREQUEST_0_DESC0":"Journal Inside Pages:Unlined, Journal Theme:Mom",
"L_PAYMENTREQUEST_0_NAME0":"The Gratitude Project",
"L_PAYMENTREQUEST_0_NUMBER0":"JNL103",
"L_PAYMENTREQUEST_0_AMT0":0,
"L_PAYMENTREQUEST_0_QTY0":"1",
"L_PAYMENTREQUEST_0_ITEMURL0":"***",
"L_PAYMENTREQUEST_0_ITEMLENGTHVALUE0":"8.00000000",
"L_PAYMENTREQUEST_0_ITEMLENGTHUNIT0":"in",
"L_PAYMENTREQUEST_0_ITEMWIDTHVALUE0":"10.00000000",
"L_PAYMENTREQUEST_0_ITEMWIDTHUNIT0":"in",
"L_PAYMENTREQUEST_0_ITEMHEIGHTVALUE0":"0.00000000",
"L_PAYMENTREQUEST_0_ITEMHEIGHTUNIT0":"in",
"PAYMENTREQUEST_0_ITEMAMT":"0.00",
"PAYMENTREQUEST_0_AMT":0,
"L_BILLINGTYPE0":"RecurringPayments",
"L_BILLINGAGREEMENTDESCRIPTION0":"1 USD every 1 day"}

Однако, если я это сделаю, установите PAYMENTREQUEST_0_AMT на "13.00", например, вызов будет выполнен правильно. Однако за первый месяц заказчик будет платить вдвое (всего 26 долларов). Я мог бы установить пробный период на «0», но это исправит только ежемесячную подписку, а не годовую подписку.

Я использую Paypal Express (Sandbox) с Opencart 2.3.0.2. Эта проблема известна через Opencart, но никто ее не исправил. Итак, я пытался исправить это сам. Раньше я не использовал Paypal API, поэтому не знаю, где искать.


person Becca    schedule 08.11.2017    source источник


Ответы (1)


«Установите в этом поле значение 0, если транзакция не включает одноразовую покупку ....» в ссылке https://developer.paypal.com/docs/classic/api/merchant/SetExpressCheckout_API_Operation_NVP/ означает, что для" n "в параметре" PAYMENTREQUEST_n_AMT "вместо этого установлено значение" 0 " из вас установили общую сумму в "0". Таким образом, «MAXAMT» и «L_PAYMENTREQUEST_0_AMT0» не могут быть «0, но должны быть больше 0, чтобы соответствовать вашей общей сумме. Вы запрашиваете сначала вызов SetExpressCheckout API (BillingType = RecurringPayments), и получили ответ с токеном EC и используйте его в CreateRecurringPaymentsProfile. API https://developer.paypal.com/docs/classic/api/merchant/CreateRecurringPaymentsProfile_API_Operation_NVP/

person PP_MTS_Steven    schedule 09.11.2017
comment
Поэтому я установил MAXAMT на сумму, превышающую мою текущую цену (13 долларов), и все равно получаю ошибку 10525. Если я установил L_PAYMENTREQUEST_0_AMT0 для моей повторяющейся цены, я получаю сообщение об ошибке: итоговые суммы товаров в корзине не соответствуют суммам заказа. Если я установлю L_PAYMENTREQUEST_0_AMT0 & PAYMENTREQUEST_n_AMT для моей Периодической цены, мне все равно придется внести первоначальный платеж в размере 13 долларов США и повторяющийся платеж в размере 13 долларов США. Можете ли вы уточнить, какие элементы должны быть настроены для того, чтобы обойти первоначальный платеж и настроить только периодический платеж? - person Becca; 10.11.2017
comment
Нужно ли мне просто инициировать SetExpressCheckout и CreateRecurringPaymentsProfile вместо того, чтобы дополнительно инициировать DoExpressCheckout, если первоначальный платеж не производится? (developer.paypal.com/docs/classic/express-checkout/) - person Becca; 10.11.2017