PayPal не имеет к этому никакого отношения - все дело в логике, которую вы размещаете на своей «странице возврата» (странице, на которую покупатель возвращается после завершения платежа).
Для простой интеграции Express Checkout вы должны:
1. Вызовите API SetExpressCheckout
2. Поставьте AMT, RETURNURL и CANCELURL
3. Извлеките токен, полученный в ответе SetExpressCheckout.
4. Перенаправить покупателя на https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-xxxtoken-herexxx&useraction=commit
5. Когда покупатель соглашается на оплату и возвращается обратно в ваш RETURNURL, вызовите API GetExpressCheckoutDetails и предоставьте токен для получения PayerID (альтернативно; токен также добавляется в массив GET для вашего RETURNURL)
6. Позвоните в DoExpressCheckoutPayment, чтобы завершить платеж.
7. Теперь, когда платеж завершен, сделайте все, что вам нужно, чтобы убедиться, что транзакция завершена, и предоставьте покупателю доступ к контенту, который вы хотите, чтобы он / она видел (это могла быть сама страница RETURNURL или совершенно другая страница) ,
Примеры вызовов API (NVP) будут выглядеть примерно так:
SetExpressCheckout Request
МЕТОД = SetExpressCheckout & USER = yourAPIuser & PWD = yourAPIpwd & ПОДПИСИ = yourAPIsig & VERSION = 78,0 & AMT = 0,01 & ReturnUrl = http://www.your -return-url.com / & CANCELURL = http://www.cancelurl.com/
SetExpressCheckout Response
......
Ack = Успех
ЗНАК = EC-12345678
.......
GetExpressCheckoutDetails Request
МЕТОД = SetExpressCheckout & USER = yourAPIuser & PWD = yourAPIpwd & SIGNATURE = yourAPIsig & VERSION = 78.0 & TOKEN = EC-12345678
GetExpressCheckoutDetails Response
.....
Ack = Успех
PAYERID = ABCDEFGH
......
DoExpressCheckoutПлатежный запрос
METHOD = SetExpressCheckout & USER = yourAPIuser и PWD = yourAPIpwd & ПОДПИСЬ = yourAPIsig & VERSION = 78,0 & AMT = 0,01 & PAYERID = ABCEDFGH & ЗНАК = EC-12345678
DoExpressCheckoutPayment Response
....
Ack = Успех
PAYMENTSTATUS = завершено
....
Смотрите также
SetExpressCheckout: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_SetExpressCheckout
GetExpressCheckoutDetails: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_GetExpressCheckoutDetails
DoExpressCheckoutPayment: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_DoExpressCheckoutPayment
А также https://www.x.com/> Справочник по API.
Примечание. Я использую «useraction = commit» в URL-адресе перенаправления на PayPal, поскольку это изменит кнопку «Продолжить» в PayPal «Просмотр вашего платежа» на кнопку «Оплатить сейчас». Таким образом, подразумевается, что покупатель будет немедленно снят, как только он нажмет на эту кнопку. Это просто удобно.