Введение в PayPal для C# - разработчики ASP.NET - Express Checkout (Быстрый подсчёт стоимости сделанных покупок)

ОГЛАВЛЕНИЕ

Express Checkout (Быстрый подсчёт стоимости сделанных покупок)

Express Checkout – наиболее гибкое решение интеграции с PayPal. Пользователь перенаправляется на PayPal только для аутентификации и подтверждения того, что он хочет заплатить за ваши услуги, и после этого все выполняется на вашем сайте; вы делаете вызовы к PayPal API в фоновом режиме. Следующее изображение показывает процесс:

Последовательность операций Express Checkout

  1. Вы добавите кнопку PayPal Checkout, вызывающую метод SetExpressCheckout из PayPal API после ее нажатия.
    1. Если данный метод вызывается для разового платежа, будет правильно включить только обязательные поля. Важно установить переменную NOSHIPPING в 1, если вы продаете какой-то онлайн-сервис (это поможет пропустить страницу с информацией о перевозке).
    2. Если этот метод вызывается для установки регулярных платежей, обязательно установите L_BILLINGTYPE0 в RecurringPayments и L_BILLINGAGREEMENTDESCRIPTION0 в правильное описание вашего сервиса.
  2. SetExpressCheckout вернет 20- символьный маркер, однозначно идентифицирующий вашу транзакцию. Этот маркер действителен в течение 3 часов. После его получения перенаправьте пользователя на https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=[TOKEN].
  3. Пользователь проверит информацию о платеже, и если все правильно, введет идентификационные реквизиты. После этого PayPal перенаправит его на URL, который вы задали в RETURNURL при вызове SetExpressCheckout.
  4. После того как произошло обращение к RETURNURL, нужно вызвать метод GetExpressCheckoutDetails и просмотреть данные реальной транзакции; проверьте, что все в порядке.
  5. Осталось лишь завершить транзакцию. В зависимости от того, что вы сделали на шаге 1, есть два варианта действий.
    1. Для разовых платежей вызовите DoExpressCheckoutPayment и отправьте надлежащие переменные.
    2. Для регулярных платежей вызовите метод CreateRecurringPayments. Обязательно нужно вставить поле DESC и согласовать его со значением, введенным в L_BILLINGAGREEMENTDESCRIPTION0 при вызове SetExpressCheckout.

В двух словах, вот и все. Были даны примеры кода, следующие ранее указанной последовательности операций в архиве, прикрепленном к этой статье (в папке API). При желании можно использовать мастер интеграции PayPal Express Checkout для генерации стандартного кода.