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

Выплата (Cashout)

Выплата — это платеж в обратную сторону, т. е. по завершении операции деньги получает клиент, а не мерчант.

Для выплат необходимо к стандартному запросу на создание транзакции добавить в JSON элемент type со значением 1 ("type":1)

  1. Пользователь своими действиями запускает процесс оплаты или выплаты (например, нажимает кнопку Оплатить).
  2. Сервер должен сгенерировать платежную информацию и отправить еe в Pult24.Ecommerce (см. Отправка данных).
  3. Если данные переданы корректно, в ответ вернется URL, куда следует перенаправить пользователя для ввода карты и номер выплаты/платежа в системе Kassa24 Business.
  4. После того как пользователь подтвердит введенную информацию, на указанный endpoint для коллбэков будет выслано сообщение с информацией о выплате/платеже (сообщение высылается для успешных, неуспешных и просроченных выплат).

Пример запроса на создание выплаты

Переменные

Название переменной Тип переменной Описание переменной Обязательность (да/нет)
merchantId string Продублировать логин в это поле Да
amount int Сумма платежа в тиынах (1 тенге = 100 тиын) Да
orderId string Номер платежа в системе принимающей стороны Да
returnUrl string URL-адрес, на который будет перенаправлен пользователь после оплаты Нет
callbackUrl string URL-адрес, на который будет отправлена информация после изменения платежа Нет
description string Параметр, являющий собой короткое описания платежа. Если указан, то будет отображен пользователю на форме оплаты Нет
metadata objeсt Параметр, в котором могут содержаться любые поля и значения, необходимые мерчанту для приема и обработки платежа на своей стороне при получении callback’а, т. е. содержимое metadata без изменений будет отправлено в callback после завершения обработки платежа в системе Kassa24 Business Нет
demo boolean Если true, то платеж будет произведен в демо-режиме, при котором средства не списываются со счета пользователя и не перечисляются на счет коммерсанта. По умолчанию false Нет
customerData objeсt Параметр, в котором могут содержаться элементы email (необязательно), phone (необязательно), которые будут автоматически подставлены в форму оплаты Нет
type 1 Тип транзакции. 1 указывает то что это выплата Да

Пример JSON

{
"type":1,
"orderId":"1234567890",
"merchantId":"1",
"account":"youremail@example.com",
"amount":10000,
"returnUrl":"https://yoursite.kz/payment/complete",
"callbackUrl":"https://yoursite.kz/callback?order=1234567890",
"description":"Test payment for youremail@example.com",
"customerData":{
"email":"youremail@example.com",
"phone":"7773724757"
},
“metadata”:{
“session”:” 3135c7fe-272f-46d0-a5f8-1ab2a59ac17c”
}
}

В ответ на создание выплаты будет возвращен номер выплаты в системе Kassa24 Business и url для перенаправления:

{
"url":"ecommerce.pult24.kz/payment/view?id=9876543210",
"id":"9876543210"
}

После того как клиент введет номер карты, приходит ответ (Callback).

Пример Callback

{
"orderId":"123",
"id":"123",
"account":"my@example.com",
"amount":10000,
"commission":100,
"commissionIncluded":true,
"attempt":1,
"returnUrl":"https://my.site.kz/",
"callbackUrl":"https://my.site.kz/",
"date":"2006-01-02T15:04:05",
"dateOut":"2006-01-02T15:04:05",
"status":1,
"errCode":0,
"errMessage":"Ошибок нет",
“metadata”:{
“session”:” 3135c7fe-272f-46d0-a5f8-1ab2a59ac17c”
}
}

Пример кода для создания выплаты

public function createCashout (array $data){

if($data["amount"]<=0){
throw new Exception('цена не указана или меньше 0');
}
$dataArray=array(
"type"=> 1,
"merchantId"=> $data["MerchId"],
"callbackUrl"=> $data["callback"],
"orderId" => $data['orderId'],
"description"=> $data['description'],
"demo" => $data['demo'],
"returnUrl" => $data['returnUrl']
);

if (isset($data['email'])|| isset($data['phone'])){
$dataArray['customerData']=array(
"email" => isset($data['email'])?$data['email']:"",
"phone" => isset($data['phone'])?$data['phone']:""
);
}
if (isset($data['metadata'])){
$dataArray["metadata"]=$data['metadata'];
}

$data_string = json_encode ($dataArray, JSON_UNESCAPED_UNICODE);
$curl = curl_init( "https://ecommerce.pult24.kz/payment/create");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
$headers = array(
"Content-Type: application/json",
"Authorization: Basic " . base64_encode($data["login"].':'.$data["pass"]),
'Content-Length: ' . strlen($data_string)
);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
if(curl_exec($curl) === false)
{
throw new Exception(curl_error($curl));
}
$result = curl_exec($curl);
curl_close($curl);
$result=json_decode($result);
return $result;
}