PayPal — это один из самых популярных платежных сервисов, который предоставляет возможность простых, мгновенных и одновременно безопасных платежей через Интернет. Высокие технологии шифрования позволяют проводить финансовые операции или онлайн-покупки на сайте "в один клик". Покупателям не нужно вводить каждый раз данные своих карт, они сохраняются автоматически и при этом полностью защищены от мошенников.
Сегодня PayPal популярен в более чем 200 странах мира, поддерживает более 25 валют и считается стандартом для электронной коммерции. Благодаря большому количеству вариантов интеграций этот сервис подходит для любого интернет-магазина.
Какие задачи можно решать с помощью API Paypal?
- Принимать платежи от клиентов на вашем веб-сайте;
- Решать споры и проблемные ситуации между покупателями и продавцами;
- Осуществлять возврат платежей или отменять не подтвержденные транзакции;
- Проверять статус платежей;
- Получать подробную информацию о каждой транзакции (сумму, дату, другие данные);
- Проверять баланс на своем счете или счетах пользователей.
API PayPal многофункционален и гибок, поэтому его можно интегрировать в различные бизнесы и платформы для улучшения пользовательского опыта и упрощения финансовых операций.
Подключить API Paypal
PayPal предоставляет два API: REST и IPN. Мы рассмотрим REST API, которое будем называть просто "API". Данное API обеспечивает удобное взаимодействие с необходимыми сущностями и использует формат данных JSON для обмена информацией. PayPal предоставляет два окружения: основное и песочницу. Для обеспечения безопасности запросов PayPal использует аутентификацию OAuth 2.0. Поэтому для взаимодействия с API необходимо получить токен доступа. Для его получения нужно отправить POST-запрос на путь "v1/oauth2/token" с параметром "grant_type", значение которого равно "client_credentials", и с передачей заголовка "Authorization" со значением "Basic ". base64_encode("$clientId:$secret").
Полученный токен можно использовать для подписи всех последующих запросов в течение некоторого времени. Данные $clientId и $secret можно получить непосредственно в кабинете PayPal. Там же можно изменить режим работы приложения. За исключением запроса на получение токена доступа, все остальные запросы могут быть отправлены в формате JSON.
Обычно полученного токена достаточно для выполнения платежей, просмотра истории платежей и других операций. Однако, история по умолчанию недоступна, и для ее использования следует разрешить соответствующую опцию в личном кабинете PayPal. В тестовой среде по умолчанию история платежей пуста, и для работы с уже существующими платежами их необходимо создать.
Для некоторых запросов, например, возврат платежа, уровень защиты повышен и требуется дополнительная подпись. Для этого необходимо передать заголовок "PayPal-Auth-Assertion" со значением, которое является конкатенацией точкой base64-зашифрованных JSON-строк, полученных из массивов ['alg' => 'none'] и ['iss' => $clientId, 'email' => $email]. Параметр $clientId был упомянут ранее, а $email представляет собой адрес электронной почты пользователя PayPal, на которую зарегистрирован его аккаунт. Важно отметить, что при использовании среды "песочница" PayPal генерирует тестовый e-mail, поэтому будьте внимательны при проведении тестовых операций.
Кроме того, вместо e-email во втором массиве можно использовать 'payer_id' со значением payer_id аккаунта пользователя. Следует также отметить, что в результирующей строке между двумя шифрованными строками должна быть точка, которую PayPal будет использовать как разделитель.
Например, на языке программирования PHP генерация второй подписи будет выглядеть следующим образом:
private function getPaypalAuthAssertion($email, $clientId) {
$joseHeader = base64_encode(json_encode(['alg' => 'none']));
$payload = base64_encode(json_encode([
'iss' => $clientId,
'email' => $email,
]));
return $joseHeader . '.' . $payload;
}
Для правильной реализации обработки ошибок стоит учесть два типа ситуаций: ошибки доступа, которые могут возникнуть при неудачной попытке получения токена, и ошибки валидации. Поэтому в вашей системе потребуются два механизма для обработки ошибок с разными форматами.
Webhooks Paypal
Webhooks — это механизм, который позволяет PayPal API отправлять уведомления о событиях вашему серверу в реальном времени. С помощью вебхуков ваше приложение может автоматически получать информацию о различных событиях, связанных с вашими транзакциями и аккаунтом PayPal, без необходимости постоянно опрашивать API для получения обновлений. Когда происходит событие, к которому привязан вебхук, PayPal отправляет POST-запрос с данными о событии на указанный вами URL вашего сервера. Таким образом, ваш сервер может реагировать на эти уведомления и выполнять необходимые действия в соответствии с событием.
Например, вы можете использовать вебхуки для следующих сценариев:
- При получении уведомления о завершенном платеже, вы можете обновить статус заказа в вашей системе или предоставить пользователю доступ к вашему контенту или услугам;
- Если покупатель запрашивает возврат средств, вы можете получить уведомление о возврате и обновить статус транзакции в вашей системе;
- Если возникают споры или конфликты, вы можете получать уведомления о них и принимать соответствующие действия.
Для использования вебхуков вам необходимо выполнить следующие шаги:
- Создайте конечную точку на вашем сервере (URL), куда PayPal будет отправлять уведомления о событиях;
- Вам нужно подписаться на конкретные события, которые вы хотите отслеживать. Например, подтверждение платежа, возврат средств, отмена подписки и т. д.;
- При создании вебхука вам необходимо указать токен подлинности (Webhook Verification Token), чтобы ваш сервер мог проверить, что уведомления от PayPal действительны;
- После настройки вебхука рекомендуется протестировать его в тестовой среде, чтобы убедиться, что ваш сервер правильно обрабатывает уведомления.
PayPal предоставляет детальную документацию по работе с вебхуками, включая список поддерживаемых событий и форматы данных, которые вы получите при каждом событии. Убедитесь, что ваш сервер обрабатывает уведомления безопасным и надежным способом, чтобы избежать потери данных или некорректных действий.
Компания Asabix обладает опытом подключения API PayPal и других сервисов. Если вам нужна помощь или услуги по подключению API, свяжитесь с нами любым удобным способом или оставьте заявку на странице интеграция API любой сложности.
Читайте также другие статьи в нашем блоге
Готовы начать?
Свяжитесь с нами!
Украина, Житомир
ул. Витрука 9в
Пн – Пт 9.00 – 19.00
Poland, Warsaw, 00-842
Łucka street 15/204
Пн – Пт 9.00 – 19.00