Я попытался обработать два повторяющихся платежа за один сеанс, используя метод CreateRecurringPaymentsProfile. Вот хронология моих действий:PayPal Express Checkout API. Есть ли способ обрабатывать оба повторяющихся платежа за один сеанс, используя метод CreateRecurringPaymentsProfile?
Сначала я поставил метод SetExpressCheckout:
'METHOD' => 'SetExpressCheckout',
'RETURNURL' => $this->paypalreturnurl,
'CANCELURL' => $this->paypalcancelurl,
'PAYMENTREQUEST_0_CURRENCYCODE' => $this->paypalcurrencycode,
'PAYMENTREQUEST_0_PAYMENTACTION'=> 'SALE',
'L_BILLINGTYPE0' => 'RecurringPayments',
'L_BILLINGAGREEMENTDESCRIPTION0'=> 'Tier 1 + Management Services',
'PAYMENTREQUEST_0_DESC' => 'Tier 1 + Management Services',
'L_PAYMENTREQUEST_0_NAME0' => 'Tier 1',
'L_PAYMENTREQUEST_0_NUMBER0' => '10101',
'L_PAYMENTREQUEST_0_QTY0' => '1',
'L_PAYMENTREQUEST_0_AMT0' => '0.02',
'L_PAYMENTREQUEST_0_DESC0' => 'Description of Tier 1',
'L_PAYMENTREQUEST_0_NAME1' => 'Management Services 8 hours - for $0.01',
'L_PAYMENTREQUEST_0_NUMBER1' => '212121',
'L_PAYMENTREQUEST_0_QTY1' => '1',
'L_PAYMENTREQUEST_0_AMT1' => '0.01',
'L_PAYMENTREQUEST_0_DESC1' => 'Description of Management Services 8 hours - for $0.01',
'PAYMENTREQUEST_0_ITEMAMT' => '0.03',
'PAYMENTREQUEST_0_AMT' => '0.03'
После успешного ответа от метода SetExpressCheckout, первый периодический платеж выполняется успешно с использованием метода CreateRecurringPaymentsProfile. Вот параметры:
'L_PAYMENTREQUEST_0_NAME0' => 'Management Services 8 hours - for $0.01',
'PROFILEREFERENCE' => 'RPInvoice1234',
'PROFILESTARTDATE' => date('Y-m-d') . 'T' . date('H:i:s').'Z',
'SUBSCRIBERNAME' => 'Mr Sub Scriber',
'TOKEN' => urlencode($token),
'DESC' => 'Tier 1 + Management Services',
'AMT' => '0.01',
'BILLINGPERIOD' => 'Month',
'BILLINGFREQUENCY' => '1',
'TOTALBILLINGCYCLES' => '12',
'REGULARTOTALBILLINGCYCLES' => '1',
'VERSION' => '74.0',
'MAXFAILEDPAYMENTS' => '1',
'L_PAYMENTREQUEST_0_AMT0' => '0.01',
'INITAMT' => '0.01',
'L_PAYMENTREQUEST_0_NUMBER0' => '212121',
'L_PAYMENTREQUEST_0_QTY0' => '1',
'L_BILLINGTYPE0' => 'RecurringPayments',
'L_BILLINGAGREEMENTDESCRIPTION0'=> 'Tier 1 + Management Services',
'L_PAYMENTREQUEST_0_ITEMCATEGORY0'=> 'Digital'
После успешного ответа от метода CreateRecurringPaymentsProfile, я попытался создать другой повторяющийся платеж (, к сожалению, без успеха) с использованием аналогичных параметров и снова CreateRecurringPaymentsProfile метода:
'L_PAYMENTREQUEST_0_NAME0' => 'Hosted Saas Tier 1',
'PROFILEREFERENCE' => 'RPInvoice123',
'PROFILESTARTDATE' => date('Y-m-d') . 'T' . date('H:i:s').'Z',
'SUBSCRIBERNAME' => 'Mr Sub Scriber 2',
'TOKEN' => urlencode($token),
'DESC' => 'Hosted Saas Tier 1 + Community Management Services',
'AMT' => '0.02',
'BILLINGPERIOD' => 'Month',
'BILLINGFREQUENCY' => '1',
'TOTALBILLINGCYCLES' => '12',
'REGULARTOTALBILLINGCYCLES' => '1',
'VERSION' => '74.0',
'MAXFAILEDPAYMENTS' => '1',
'L_PAYMENTREQUEST_0_AMT0' => '0.02',
'INITAMT' => '0.02',
'L_PAYMENTREQUEST_0_NUMBER0' => '10101',
'L_PAYMENTREQUEST_0_QTY0' => '1',
'L_BILLINGTYPE0' => 'RecurringPayments',
'L_BILLINGAGREEMENTDESCRIPTION0'=> 'Hosted Saas Tier 1 + Community Management Services',
'L_PAYMENTREQUEST_0_ITEMCATEGORY0'=> 'Digital'
К сожалению этот метод всегда возвращает ту же ошибку, независимо от изменений, которые я сделал:
Профиль описание недействительно, L_ERRORCODE0 = 11581.
Когда я изменяю повторяющиеся платежи заказываем та же ошибка появляется для первого повторяющегося платежа с заголовком «Управление услуги 8 часов - за $ 0,01»!? Проблема в том, что каждый второй повтор возвращает ту же ошибку - «Описание профиля недействительно, L_ERRORCODE0 = 11581.»
Как я могу заставить это работать?
Большое спасибо для вашего ответа я попросил paypal поддержку, но они не ответили конкретно. Я продолжу исследование – Pavel
Я использовал 2 раза SetExpressCheckout, следуя вашей рекомендации, и два повторяющихся платежа создаются с успехом, но этот процесс будет очень смущен для наших клиентов. Поскольку вы предложили пользователю дважды войти в систему, чтобы получить новый токен. Это неприемлемо. – Pavel