Paypal: Почему я получаю «успех» для прямого повторяющегося платежа, если ничего не записано? - PullRequest
3 голосов
/ 12 сентября 2011

Я использую Paypal API (Website Payments Pro) для настройки периодических платежей с клиентами, и в настоящее время я тестирую в песочнице paypal. Paypal требует, чтобы я настроил экспресс-оплату и прямой платеж.

Express Checkout: полностью работает с регулярными платежами. Я получаю ответ «Успех» и вижу профиль платежа в своем тестовом аккаунте. Для этого я использую SetExpressCheckout, чтобы пользователь мог войти в Paypal, войти в систему и быть перенаправлен на страницу по моему выбору. Затем я использую CreateRecurringPaymentsProfile для фактического создания профиля с необходимой информацией.

Прямой платеж: я получаю ответ «об успехе», как описано ниже, но не вижу профиль повторяющегося платежа в тестовом аккаунте. Я просто собираю информацию на своем сайте и отправляю ее в Paypal с помощью CreateRecurringPaymentsProfile.

Вот результат «успеха» моей попытки создания повторяющегося платежа:

ACK: "Success"
AMT: "1%2e00"
AVSCODE: "X"
BUILD: "2075688"
CORRELATIONID: "bbfe83b685c0a"
CURRENCYCODE: "USD"
CVV2MATCH: "M"
TIMESTAMP: "2011%2d09%2d12T14%3a27%3a58Z"
TRANSACTIONID: "62214391KD595633B"
VERSION: "54%2e0"

Я могу попытаться предоставить любые другие детали! Любая помощь приветствуется.


Редактировать: Спасибо за помощь до сих пор. Однако я снова получаю сообщение об успешном завершении без подтверждения транзакции в тестовом аккаунте. Вывод JSON таков:

ACK: "Success"
BUILD: "2085867"
CORRELATIONID: "3e84486e74e80"
PROFILEID: "I%2d4Y707DELPFKD"
PROFILESTATUS: "ActiveProfile"
TIMESTAMP: "2011%2d09%2d12T20%3a13%3a15Z"
VERSION: "78%2e0"

Большое спасибо,

Даниэль Мониз

1 Ответ

2 голосов
/ 12 сентября 2011

Вы не видите профиль, потому что звоните в DoDirectPayment (только для разовых платежей).
Если вы хотите настроить повторяющийся платеж с использованием карты (а не учетной записи PayPal), вы также должны вызвать CreateRecurringPaymentsProfile, но просто указать данные карты, а не токен. Судя по ответу, который вы показываете, вы этого не делаете.

See also https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_CreateRecurringPayments - "Credit Card Details fields".  

A sample call would be:  
METHOD=CreateRecurringPaymentsProfile&  
PROFILESTARTDATE=YYYY-mm-ddTH:i&  
DESC=Test&  
BILLINGPERIOD=Month&  
BILLINGFREQUENCY=12&  
AMT=0.01&  
CREDITCARDTYPE=Visa&  
ACCT=4111111111111111&  
EXPDATE=102012&  
CVV2=111  

Редактировать: я проследил за этим и получил ошибку «Требуется дата начала», которая была решена при замене пробела на T между датой и временем в PROFILESTARTDATE то есть PROFILESTARTDATE = YYYY-mm-ddTH: i

...