Интеграция страницы вывода

Cashmost.com предлагает возможность использования нашей страницы выбора платежной системы, куда Вы будете направлять пользователя в случае если он хочет вывести средства с Вашего сайта. Не нужно больше держать у себя постоянно обновляющийся список валют, направлений, курсов и т.д.

Демо можно посмотреть по этой ссылке

Процесс создания заявки на вывод

Вам нужно направить Покупателя на вебсайт SCI cashmost.com (и отправить GET или POST форму запроса платежа) по следующему URL-адресу: https://cashmost.com/payments/merchantwithdrawal

Форма запроса вывода - это форма в формате HTML для запроса вывода, которая генерируется вебсайтом Продавца и используется для передачи данных в SCI cashmost.com

В таблице ниже указанные все приемлемые поля для формы HTML для надлежащего взаимодействия с SCI.

Parameter Required Description
ShopId required Id магазина (ex: c4cfc3ed-d402-48fa-a99f-704fe0cc840f)
UserId required Id пользователя на сайте продавца (ex: 123456)
UserName required UserName пользователя на сайте продавца (ex: user1)
Balance required Сумма доступная к выводу в валюте мерчатна (ex: 0.1234)
Nonce required (Целое число) Дополнительное поле для добавления соли в подпись. Желательно чтобы было уникальное между запросами
Sign required Подпись запроса - hash_hmac('sha512', 'ShopId:UserId:UserName:Balance:Nonce', 'SecretKey')
SuccessUrl optional Сюда перенаправляется пользователь в случае успешной оплаты
ErrorUrl optional Сюда перенаправляется пользователь в случае неуспешной оплаты
StatusUrl optional URL для коллбека со статусом платежа

Пример формы

<form action="https://cashmost.com/payments/merchantwithdrawal/" method="post">
    <input type="hidden" name="ShopId" value="c4cfc3ed-d402-48fa-a99f-704fe0cc840f">
    <input type="hidden" name="UserId" value="123456">
    <input type="hidden" name="UserName" value="user1">
    <input type="hidden" name="Balance" value="0.1234">
    <input type="hidden" name="Nonce" value="11456">
    <input type="hidden" name="Sign" value="3ddbf164e965f996b28a6aea68276cb744a17de8888b64ad5b243336e1b3b28fda78857009042d4a3b1ac77ba6a220cac40211f06c1001db6db467cddaf8afdc">
</form>

Запрос на создание заявки вывода – это POST запрос, который отправляется SCI на страницу или модуль обработки вывода Продавца. Этот запрос представляет собой набор скрытых полей, содержащих информацию о сумме, валюте и платежной системе, выбранные пользователем для вывода средств. В таблице ниже приведены описания полей.

Parameter Description
TransactionId Id заявки на платформе SCI (ex: c4cfc3ed-d402-48fa-a99f-704fe0cc840f)
UserId Id пользователя на сайте продавца (ex: 123456)
PointId Id точки вывода (можно узнать в настройках мерчанта, ex: 12)
CurrencyId Валюта мерчанта
Amount Сумма запрошенная на вывод в валюте мерчанта
Purse Номер кошелька, карты, счета
Nonce Дополнительное поле для добавления соли в подпись. Желательно чтобы было уникальное между запросами
PaySystem Название платежной системы (информационное)
PaySystemCurrencyId Валюта выбранная для вывода
PaySystemAmount Сумма сконвертирована в валюту которую получит пользователь
AmountFromShop Сумма которая будет списана с магазина с учетом комиссии в валюте мерчанта
Sign HASH-строка, составленная из информации, содержащейся в данной форме.
Подписанная секретным ключем в стандартном формате HMAC-SHA512 для защиты

Формирование подписи

Для генерирования цифровой подписи (Sign) Вам необходимо объединить следующие параметры Формы «Статус платежа» в следующем порядке

//TransactionId:UserId:PointId:CurrencyId:Amount:Purse:Nonce
$trId=$_POST['TransactionId'];
$userId=$_POST['UserId'];
$pointId=$_POST['PointId'];
$currencyId=$_POST['CurrencyId'];
$amount=$_POST['Amount'];
$purse=$_POST['Purse'];
$nonce=$_POST['Nonce'];
$ps=$_POST['PaySystem'];
$psCurrencyId=$_POST['PaySystemCurrencyId'];
$psAmount=$_POST['PaySystemAmount'];
$sciSign=$_POST['Sign'];

$secret='xxx'; 
$str=$trId.':'.$userId.':'.$pointId.':'.$currencyId.':'.$amount.':'.$purse.':'.$nonce;
$sign=hash_hmac('sha512',$str,$secret); 
if($sign == $sciSign){
    //Process payment
}

Пример формы

<form action="https://myshop.com/createWithdrawal.html" method="post">
    <input type="hidden" name="TransactionId" value="c4cfc3ed-d402-48fa-a99f-704fe0cc840f">
    <input type="hidden" name="UserId" value="123456">
    <input type="hidden" name="PointId" value="12">
    <input type="hidden" name="CurrencyId" value="USD">
    <input type="hidden" name="Amount" value="10">
    <input type="hidden" name="Purse" value="E123456">
    <input type="hidden" name="Nonce" value="12222222">
    <input type="hidden" name="PaySystem" value="Perfect Money">
    <input type="hidden" name="PaySystemCurrencyId" value="EUR">
    <input type="hidden" name="PaySystemAmount" value="9.5">
    <input type="hidden" name="Sign" value="3ddbf164e965f996b28a6aea68276cb744a17de8888b64ad5b243336e1b3b28fda78857009042d4a3b1ac77ba6a220cac40211f06c1001db6db467cddaf8afdc">
</form>

Ожидаемый ответ

Сайт продавца должен провести все необходимые проверки, валидации и операции списания со счета пользователя, создать заявку на своей стороне и вернуть Id заявки.

Если опция "Автоматическая отправка вывода" в настройках мерчанта включена, то в случае успеха в будет создана заявка на вывод средств по данным реквизитам на сайте cashmost.com.

Ожидается ответ в формате JSON следующего вида:

{"Success":"bool|true:false", "Message": "optional|Описание ошибки в случае неудачи", "OrderId": "string|Id заявки на сайте продавца"}

Форма "Статус платежа" – это форма в формате HTML, которая отправляется SCI на страницу или модуль подтверждения вывода Продавца. Эта форма представляет собой набор скрытых полей, содержащих информацию о выполненном выводе средств. В таблице ниже приведены описания полей.

Parameter Description
ShopId Id магазина (ex: c4cfc3ed-d402-48fa-a99f-704fe0cc840f)
ShopOrderId Номер счета на сайте продавца.
TransactionId Id транзакции в системе cashmost.com
Status Payed, Cancelled, WaitBalance (Заявку необходимо подтвердить в личном кабинете)
Comment optional, Комментарий
Sign HASH-строка, составленная из информации, содержащейся в данной форме.
Подписанная секретным ключем в стандартном формате HMAC-SHA512 для защиты

Формирование подписи

Для генерирования цифровой подписи (Sign) Вам необходимо объединить следующие параметры Формы «Статус платежа» в следующем порядке

//ShopId:ShopOrderId:TransactionId:Status
$shopId=$_POST['ShopId'];
$shopOrderId=$_POST['ShopOrderId'];
$sciSign=$_POST['Sign'];
$transactionId=$_POST['TransactionId'];
$status=$_POST['Status'];

$secret='xxx'; 
$str=$shopId.':'.$shopOrderId.':'.$transactionId.':'.$status;
$sign=hash_hmac('sha512',$str,$secret); 
if($sign == $sciSign){
    //Process payment
}

Пример формы

<form action="https://myshop.com/statusWithdrawal.html" method="post">
    <input type="hidden" name="ShopId" value="c4cfc3ed-d402-48fa-a99f-704fe0cc840f">
    <input type="hidden" name="ShopOrderId" value="c21186a8-87f4-46df-8eb4-b89ab4d41a91">
    <input type="hidden" name="Sign" value="3ddbf164e965f996b28a6aea68276cb744a17de8888b64ad5b243336e1b3b28fda78857009042d4a3b1ac77ba6a220cac40211f06c1001db6db467cddaf8afdc">
    <input type="hidden" name="TransactionId" value="123456789">
    <input type="hidden" name="Status" value="Payed">
    <input type="hidden" name="Comment" value="">
</form>