PSP без верификации
Приём оплат по картам Visa\MasterCard без верификации
Интеграция заключается во встраивании платежной кнопки в сайт партнера. При клике по этой кнопке производится отправка данных на адрес системы GarryPay.
Информация
Для обеспечения безопасности, отправляемые данные должны быть криптографически подписаны.
Интеграция через платежную кнопку
Код платежной кнопки должен выглядеть следующим образом:
<form action="https://merch-dev.garrypay.com/button" method="post">
<input
type="hidden"
name="data"
value="eyJtZXJjaGFudF9pZCI6IjE1YWU2Yzg4LWJiMGItNGY3Ny1hZjkxLTZhMGNkNWI0NGRlZCIsInB1cmNoYXNlX2lkIjozMTUsImFtb3VudCI6IjMzMTYuMDAiLCJjdXJyZW5jeSI6IlJVQiIsImxhbmciOiJydSIsInBheW1lbnRfbWV0aG9kIjoicDJwIiwiY2FsbGJhY2siOiJodHRwczpcL1wvbWVyY2hhbnQtc2l0ZS5jb21cL2NhbGxiYWNrX3VybCJ9"
>
<input
type="hidden"
name="sign"
value="YjNjOTNhOWE2ZmRlYjIyOTc5ZjMxMTdiMzQ1YmM3YmE2MGI1NjNhOTU0Zjc2NjcyNjc4ZTUzNmVmYjU4MWFjMQ=="
>
</form>
Пример кода
Данные для поля data готовятся следующим образом
- JS
- PHP
import crypto from "crypto";
const data = new Buffer(JSON.stringify({
merchant_id: "ef73bed1-2591-4a91-a74e-fe68b4e2e4e0"
purchase_id: "234-12",
amount: "300",
currency: "USD",
lang: "ru",
payment_method: "card",
success_url: "https://merchant_site.com/success",
error_url: "https://merchant_site.com/error",
})).toString("base64")
const hmac = crypto.createHmac("sha256", key);
hmac.update(data);
const sign = Buffer.from(hmac.digest("hex")).toString("base64");
$params = [
'merchant_id' => 'ef73bed1-2591-4a91-a74e-fe68b4e2e4e0',
'purchase_id' => '234-12',
'amount' => 300,
'currency' => 'USD',
'lang' => $lang,
'payment_method' => 'card',
'success_url' => 'https://merchant_site.com/success',
'error_url' => 'https://merchant_site.com/error',
];
$data = base64_encode(json_encode($params));
$sign = base64_encode(hash_hmac('sha256', $data), $secret));
Т.е. JSON объект нужно транслировать в строку и закодировать в Base64.
Допустимые поля
Имя | Тип | По умолчанию | Описание |
---|---|---|---|
merchant_id | string | Обязательное | ID вашего мерчанта |
purchase_id | string | Обязательное | Уникальный ID покупки |
amount | string | Обязательное | Сумма в указанной валюте |
currency | string | Обязательное | Валюта в которой платим USD |
lang | string | en | Язык платежного интерфейса, en / ru |
success_url | string | undefined | URL страницы на которую направляется пользователь в случае удачного совершения платежа |
error_url | string | undefined | URL страницы на которую направляется пользователь в случае ошибки |