Интеграция страницы вывода
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>