После обширного прочтения на грязном сайте документации Paypal это краткое руководство по ExpressCheckout, работающее в 2013 году. Я хотел, чтобы детали товара отображались на странице оплаты PayPal и на странице истории транзакций продавца.
Ссылки на документацию Paypal
Вы можете позвонитьСледуйте методам URL непосредственно в веб-браузере, соответственно обновите параметры токена и payerid.
Это цифровой товар, поэтому плата за доставку и обработку не взимается.Строка одного элемента.Сумма и налоги указаны.Не требуется подтвержденный адрес доставки, поля адреса доставки, запрещенная заметка в свободном тексте, плательщику не требуется учетная запись PayPal и не требуется регистрация ( solutiontype = sole ).Активируйте раздел кредитной карты на сайте PayPal ( посадочная страница = биллинг ).Используйте индивидуальное название бренда на сайте PayPal.Используйте настраиваемое поле, чтобы указать собственное значение для целей отслеживания.В истории транзакций на сайте продавца должен быть указан элемент (указать данные о методах SetExpressCheckout и DoExpressCheckoutPayment).
Метод SetExpressCheckout открывает новую транзакцию
https://api-3t.sandbox.paypal.com/nvp?
USER=<userid>
&PWD=<pwd>
&SIGNATURE=<mysig>
&METHOD=SetExpressCheckout
&VERSION=98
&PAYMENTREQUEST_0_PAYMENTACTION=SALE
&REQCONFIRMSHIPPING=0
&NOSHIPPING=1
&ALLOWNOTE=0
&SOLUTIONTYPE=Sole
&LANDINGPAGE=Billing
&BRANDNAME=MY+WEBSHOP+TITLE
&PAYMENTREQUEST_0_AMT=22.22
&PAYMENTREQUEST_0_TAXAMT=4.30
&PAYMENTREQUEST_0_ITEMAMT=17.92
&PAYMENTREQUEST_0_DESC=mypurdesc
&PAYMENTREQUEST_0_CUSTOM=custom1
&PAYMENTREQUEST_0_CURRENCYCODE=EUR
&L_PAYMENTREQUEST_0_NUMBER0=itemid1
&L_PAYMENTREQUEST_0_NAME0=MyItem1
&L_PAYMENTREQUEST_0_DESC0=Item1+description
&L_PAYMENTREQUEST_0_QTY0=1
&L_PAYMENTREQUEST_0_AMT0=17.92
&L_PAYMENTREQUEST_0_TAXAMT0=4.30
&RETURNURL=https://myserver.com/webapp/paypal.jsp%3Fcmd=successexp
&CANCELURL=https://myserver.com/webapp/paypal.jsp%3Fcmd=cancelexp
Ответ должен содержать ACK= Успех или ACK = SuccessWithWarning, прочитайте значение TOKEN
Перенаправьте браузер пользователя на сайт Paypal, введите значение токена
https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=<token>
Пользователь использует учетную запись PayPal или кредитную карту.Paypal перенаправляет пользователя на возврат или отмену URL.URL-адрес назначения перенаправления получает значения параметров token и PayerID .Транзакция еще не завершена, мы должны вызвать метод doExpressCheckoutPayment.
Показать диалог подтверждения на экране (с помощью кнопки ОК, ОТМЕНА) или просто зафиксировать транзакцию и показать «Спасибо, покупка завершена» сообщение.Пользователь уже принял платеж на сайте PayPal и ожидает, что транзакция будет завершена.
Вы можете зафиксировать транзакцию в том же обработчике запроса-ответа или с помощью асинхронной фоновой задачи.Сайт Paypal может быть временно недоступен, поэтому не ожидайте, что он сразу же заработает.
Подтвердите транзакцию, если перенаправление прошло успешно, используйте токен и payerid
https://api-3t.sandbox.paypal.com/nvp?
USER=<userid>
&PWD=<pwd>
&SIGNATURE=<mysig>
&METHOD=DoExpressCheckoutPayment
&VERSION=98
&PAYMENTREQUEST_0_PAYMENTACTION=SALE
&PAYMENTREQUEST_0_AMT=22.22
&PAYMENTREQUEST_0_TAXAMT=4.30
&PAYMENTREQUEST_0_ITEMAMT=17.92
&PAYMENTREQUEST_0_CURRENCYCODE=EUR
&L_PAYMENTREQUEST_0_NUMBER0=itemid1
&L_PAYMENTREQUEST_0_NAME0=MyItem1
&L_PAYMENTREQUEST_0_QTY0=1
&L_PAYMENTREQUEST_0_AMT0=17.92
&L_PAYMENTREQUEST_0_TAXAMT0=4.30
&token=<token>
&payerid=<payerid>
Read ACK= Поля «Успешно» и «Подтвердить»
ACK=Success
PAYMENTINFO_0_PAYMENTSTATUS=Completed
PAYMENTINFO_0_ACK=Success
PAYMENTINFO_0_AMT=22.22 total amount must match
PAYMENTINFO_0_FEEAMT=0.99 (just for fun, read paypal comission fee)
PAYMENTINFO_0_CURRENCYCODE=EUR currency must match
(Необязательно) Чтение подробностей транзакции из Paypal
Вы можете использовать это во время рабочего процесса транзакции или в любое время, если токен сохранен для дальнейшего использования.использовать.
https://api-3t.sandbox.paypal.com/nvp
?USER=<userid>
&PWD=<pwd>
&SIGNATURE=<mysig>
&METHOD=GetExpressCheckoutDetails
&VERSION=98
&token=<token>
Чтение параметров ответа.
ACK=Success
CHECKOUTSTATUS=PaymentActionCompleted
PAYMENTREQUEST_0_AMT=22.22
PAYMENTREQUEST_0_TAXAMT=4.30
PAYMENTREQUEST_0_CURRENCYCODE=EUR
(Необязательно) Считывание и сохранение идентификатора транзакции, идентификатора корреляции и идентификатора токена и запись в журналируемую таблицу.
PAYMENTREQUEST_0_TRANSACTIONID=11E585715B622391E
CORRELATIONID=4534b683c335f
Я готов получать комментарии, если есть какие-либо логические ошибки.