2015-09-14 5 views
2

Я попытался обработать два повторяющихся платежа за один сеанс, используя метод 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.»

Как я могу заставить это работать?

ответ

1

Наконец, с небольшой помощью от поддержки PayPal, я найти решение, чтобы создать несколько повторяющихся профилей в одном сеансе Экспресс Checkout:

  • Сначала вы должны пройти обе анкеты в методе SetExpressCheckout (первый метод в моем примере), например:

L_BILLINGTYPE0 = RecurringPayments

L_BILLINGAGREEMENTDESCR IPTION0 = Tier 1

и второй продукт

L_BILLINGTYPE1 = RecurringPayments

L_BILLINGAGREEMENTDESCRIPTION1 = Management Services

  • А потом, после того, как покупатель одобрил как в PayPal , вам нужно позвонить CreateRecurringPaymentsProfile дважды:

Один посылает "DESC" со значением "Tier 1" и еще один посылающего "DESC" со значением "Management Services"

Also check this

1

Вы можете вызвать CreateRecurringPaymentsProfile только один раз за один сеанс (один токен). вы должны вызвать SetExpressCheckout, чтобы получить еще один токен.

+0

Большое спасибо для вашего ответа я попросил paypal поддержку, но они не ответили конкретно. Я продолжу исследование – Pavel

+0

Я использовал 2 раза SetExpressCheckout, следуя вашей рекомендации, и два повторяющихся платежа создаются с успехом, но этот процесс будет очень смущен для наших клиентов. Поскольку вы предложили пользователю дважды войти в систему, чтобы получить новый токен. Это неприемлемо. – Pavel