Перейти к основному содержимому

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 готовятся следующим образом

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");

Т.е. JSON объект нужно транслировать в строку и закодировать в Base64.

Допустимые поля

ИмяТипПо умолчаниюОписание
merchant_idstringОбязательноеID вашего мерчанта
purchase_idstringОбязательноеУникальный ID покупки
amountstringОбязательноеСумма в указанной валюте
currencystringОбязательноеВалюта в которой платим USD
langstringenЯзык платежного интерфейса, en / ru
success_urlstringundefinedURL страницы на которую направляется пользователь в случае удачного совершения платежа
error_urlstringundefinedURL страницы на которую направляется пользователь в случае ошибки