Если Вы собираетесь прикручивать на сайте поддержку оплаты через PayPal, а точнее Website Payments Pro (WPP), а точнее Direct Recurring Payments, то скорее всего вы уже ознакомились с документацией от самого сервиса: Integrating Recurring Payments.
Но если Вы раньше не прикручивали именно этот тип платежей, то Вы, наверняка, ещё не подозреваете о некоторых особенностях его тестирования.
Вообще, для тестирования оплаты через PayPal существует песочница, пользоваться которой довольно просто — надо всего лишь зарегистрироваться на https://developer.paypal.com, затем создать тестовый аккаунт. В данном случае, создавать аккаунт проще методом «Create a preconfigured account», выбрать надо Account Type = Website Payments Pro (WPP), остальное по желанию. И вуаля — на странице Test Accounts у Вас появится аккаунт продавца для WPP.
Но мы то помним, что нам нужен именно Direct Recurring Payments WPP, поэтому логинимся продавцом на https://www.sandbox.paypal.com и заходим в его профиль.
Здесь нам нужны 2 вещи:
1) ссылка «Request API credentials», перейдя по которой выбираем «Option 1» >> ссылка «Set up PayPal API credentials and permissions». А затем «Option 2» > ссылка «View API Signature». С этой страницы сохраняем себе: API Username, API Password, Signature, что соответствует параметрам USER, PWD, SIGNATURE в запросах к PayPal API (подробнее см. документацию).
2) ссылка «Instant Payment Notification preferences», перейдя по которой и нажав кнопку «Choose IPN Settings», можно установить URL вашего слушателя сообщений от PayPal. (зачем это нужно, можно узнать там )
И вот Вы, воодушевившись, пишите свою форму для приёма платежей от пользователя, и отправив первые тестовые запросы на PayPal получаете мессагу типа:
DPRP Is Disabled For This Merchant
Чешете затылок, перепроверяете все параметры, пароли, урлы и снова получаете «DPRP Is Disabled For This Merchant». Трёте виски и гуглите по этому поводу в интернетах, и возможно натыкаетесь на инструкции типа этих. Но то, что Вам в таком положении действительно требуется, так это вот эта ветка форума PayPal developer network.
Потому что по каким то необъяснимым причинам, сервис PayPal считает нормальным не фиксить этот баг как минимум с февраля 2010 года. Вместо этого пэйпаловцы добрадушно предлагают писать в эту ветку мыло тестового аккаунта-WPP, чтобы каким-то хитрым образом (недоступным простым смертным) включить вам эти самые DPRP.
Итак, если требуется, то регистрируемся, и затем пишем что то типа:
И ждём около суток (ну или как повезёт в зависимости от Вашего часового пояса, календарных праздников и настроения модераторов)
Получив заветное:
от юзера со значком PayPal X в его профиле (слева),
можно наконец начинать интеграцию Website Payments Pro, Direct Recurring Payments.
Ах, да и ещё небольшой момент: после создания профиля (CreateRecurringPaymentsProfile) обязательно проверьте его статус (через GetRecurringPaymentsProfileDetails), велика вероятность, что статус в ответе на первый запрос будет не совсем корректным.
Надеюсь, что сей небольшой очерк сэкономит хорошим, читающим хабр людям один-два дня времени и пучок нервов :)
Но если Вы раньше не прикручивали именно этот тип платежей, то Вы, наверняка, ещё не подозреваете о некоторых особенностях его тестирования.
Вообще, для тестирования оплаты через PayPal существует песочница, пользоваться которой довольно просто — надо всего лишь зарегистрироваться на https://developer.paypal.com, затем создать тестовый аккаунт. В данном случае, создавать аккаунт проще методом «Create a preconfigured account», выбрать надо Account Type = Website Payments Pro (WPP), остальное по желанию. И вуаля — на странице Test Accounts у Вас появится аккаунт продавца для WPP.
Но мы то помним, что нам нужен именно Direct Recurring Payments WPP, поэтому логинимся продавцом на https://www.sandbox.paypal.com и заходим в его профиль.
Здесь нам нужны 2 вещи:
1) ссылка «Request API credentials», перейдя по которой выбираем «Option 1» >> ссылка «Set up PayPal API credentials and permissions». А затем «Option 2» > ссылка «View API Signature». С этой страницы сохраняем себе: API Username, API Password, Signature, что соответствует параметрам USER, PWD, SIGNATURE в запросах к PayPal API (подробнее см. документацию).
2) ссылка «Instant Payment Notification preferences», перейдя по которой и нажав кнопку «Choose IPN Settings», можно установить URL вашего слушателя сообщений от PayPal. (зачем это нужно, можно узнать там )
И вот Вы, воодушевившись, пишите свою форму для приёма платежей от пользователя, и отправив первые тестовые запросы на PayPal получаете мессагу типа:
DPRP Is Disabled For This Merchant
Чешете затылок, перепроверяете все параметры, пароли, урлы и снова получаете «DPRP Is Disabled For This Merchant». Трёте виски и гуглите по этому поводу в интернетах, и возможно натыкаетесь на инструкции типа этих. Но то, что Вам в таком положении действительно требуется, так это вот эта ветка форума PayPal developer network.
Потому что по каким то необъяснимым причинам, сервис PayPal считает нормальным не фиксить этот баг как минимум с февраля 2010 года. Вместо этого пэйпаловцы добрадушно предлагают писать в эту ветку мыло тестового аккаунта-WPP, чтобы каким-то хитрым образом (недоступным простым смертным) включить вам эти самые DPRP.
Итак, если требуется, то регистрируемся, и затем пишем что то типа:
Hi,
I'd like my test account to be enabled for DPRP:
<имя вашего юзера>
Thanks!
И ждём около суток (ну или как повезёт в зависимости от Вашего часового пояса, календарных праздников и настроения модераторов)
Получив заветное:
Hi <Ваш ник>,
DPRP is already enabled for your account.
от юзера со значком PayPal X в его профиле (слева),
можно наконец начинать интеграцию Website Payments Pro, Direct Recurring Payments.
Ах, да и ещё небольшой момент: после создания профиля (CreateRecurringPaymentsProfile) обязательно проверьте его статус (через GetRecurringPaymentsProfileDetails), велика вероятность, что статус в ответе на первый запрос будет не совсем корректным.
Надеюсь, что сей небольшой очерк сэкономит хорошим, читающим хабр людям один-два дня времени и пучок нервов :)