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

Двухэтапные транзакции (Cashout с предавторизацией)

Алгоритм работы

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

Финализация платежа

Данная операция применяется для операции двухэтапная выплата. Адрес отправки подтверждения https://ecommerce.pult24.kz/payment/processing/end 

Формат данных:

Название переменной Тип переменной Описание переменной
ID string Идентификатор транзакции в системе Kassa24 Business. Может быть получен 2 способами при создании транзакции или при получении Callback из поля id.
action string Тип действия. Может принимать значения “approve” для подтверждения и “reject” для отмены транзакции соответственно.

Пример тела запроса:

{
    "ID":"1234567890123",
    "action":"approve"
}

Пример успешного ответа:

{
    "status":2
}

Пример неуспешного ответа.

В поле error будет содержаться описание ошибки.

{
    "status":3
    "error":"Карта клиента заблокирована"
}

Описание поля status

Описание статусов и действия при двухэтапных транзакциях:

Код статуса Описание статуса Порядок действий
2 Операция успешна Запросите статус или дождитесь коллбэк.
3 Банк отклонил транзакцию Запросите статус подтверждения (что транзакция неуспешна) или дождитесь коллбэк.
4 Транзакция не найдена Проверьте запрос либо обратитесь в поддержку, так как данная транзакция не найдена в системе.
5 Ошибка системы Возникли некоторые системные неполадки. Обратитесь в поддержку с предоставлением номера транзакции и тела запроса.
31 Ошибка Повторите попытку позже.
51 Возможно, транзакция находится в обработке Дождитесь коллбэк либо запросите статус транзакции. Если транзакция находится в холде, повторите проведение транзакции.

Если вы получили нестандартный ответ, обратитесь в техподдержку Касса24 с предоставлением тела ответа нашей системы.

Иные возможные ошибки:

Нет соединения с интернетом Если сайт находится в хостинге, обратитесь в техподдержку хостинга. Если сайт находится на другом сервисе, запросите информацию у данного сервиса.
Ошибка таймаута запроса Проверьте, находится ли наш сервис в черном списке вашего сервиса. Если он находится в черном списке, обратитесь в техподдержку вашего сервиса для получения информации о таймауте. Если наш сервис не находится в черном списке, сообщите в техподдержку Касса24.


Коды статусов и действия при их получении

Название статуса Значение статуса Описание статуса Порядок действий
CREATED 0 Транзакция создана
RECREATED 1 Транзакция создана заново (повторная попытка)
PROCESSING_STARTED 110 Пользователь получил форму эквайринга. Отправка Callback не требуется
PROCESSING_IN_PROGRESS 111 Получен нефинальный статус эквайринга
PROCESSING_WAIT_CONFIRM 112 Ожидается ввод кода подтверждения
FINALIZING_IN_PROGRESS 113 Транзакция в процессе финализации
CANCELLING_IN_PROGRESS 114 Транзакция в процессе отмены
ATTEMPT_FAILED 130 Попытка провалилась в процессе оплаты Повторите запрос подтверждения
PROCESSING_HOLDED 120 Пользователь успешно забронировал платеж (холд/блок денег на карте) Подтвердите либо отклоните транзакцию
PH_CALLBACK_SUCCESS 121 Отправка коллбэка по захолдированному платежу успешна Система ждет действий с вашей стороны
PH_CALLBACK_FAILED 122 Отправка коллбэка по захолдированному платежу ошибочна Повторите запрос статуса транзакции. Далее подтвердите либо отклоните платеж.
PH_FINISHED 240 Транзакция успешно финализирована
PH_FINISH_ERROR 242 Транзакция финализирована с ошибкой. Повторная финализация невозможна / не имеет смысла
PROCESSING_SUCCESS 210 Транзакция успешно проведена. Отправка Callback не требуется Пометьте в вашей системе транзакцию как неуспешную
PS_CALLBACK_SUCCESS 211 Транзакция проведена. Callback отправлен и успешно обработан В вашей системе транзакция должна пометиться как успешно проведенная
PS_CALLBACK_FAILED 212 Транзакция проведена. Callback отправлен, но не обработан со стороны мерчанта Проверьте интеграцию, так как наша система не получила корректный ответ от вашей системы
PROCESSING_FAILED 220 Транзакция отклонена банком. Callback не отправлялся Пометьте в вашей системе транзакцию как неуспешную
PF_CALLBACK_SUCCESS 221 Транзакция отклонена банком. Callback отправлен и успешно обработан Ваша система ответила корректно и пометила транзакцию как неуспешную
PF_CALLBACK_FAILED 222 Транзакция отклонена банком. Callback отправлен, но не обработан со стороны мерчанта Проверьте интеграцию, так как наша система не получила корректный ответ от вашей системы
TIMEOUT 230 Срок ввода данных в форме оплаты истек. Callback не отправлялся Пометьте в вашей системе транзакцию как неуспешную
T_CALLBACK_SUCCESS 231 Срок ввода данных в форме оплаты истек. Callback отправлен и успешно обработан Ваша система ответила корректно и пометила транзакцию как неуспешную
T_CALLBACK_FAILED 232 Срок ввода данных в форме оплаты истек. Callback отправлен, но не обработан со стороны мерчанта Проверьте интеграцию, так как наша система не получила корректный ответ от вашей системы
PAYMENT_CANCELLED 250 Двухэтапная транзакция отменена. Callback не отправлялся Пометьте транзакцию как неуспешную или отмененную
PAYMENT_CANCELLED 251 Двухэтапная транзакция отменена. Callback отправлен и успешно обработан Ваша система пометила транзакцию как неуспешную или отмененную
PAYMENT_CANCELLED 252 Двухэтапная транзакция отменена. Callback отправлен, но не обработан со стороны мерчанта Проверьте интеграцию, так как наша система не получила корректный ответ от вашей системы
PAYMENT_REFUNDED 260 По транзакции был осуществлен возврат. Callback не отправлялся Пометьте возврат как неуспешный или отмененный
PAYMENT_REFUNDED 261 По транзакции был осуществлен возврат. Callback отправлен и успешно Ваша система пометила возврат как успешный
PAYMENT_REFUNDED 262 По транзакции был осуществлен возврат. Callback отправлен, но не обработан со стороны мерчанта Проверьте интеграцию, так как наша система не получила корректный ответ от вашей системы

Коды HTTP-ответов

200 Запрос успешно выполнен Обработать полученную информацию
201 Транзакция успешно создана Перенаправить пользователя по полученной ссылке
400 Ошибочные входные данные, или невозможно обработать запрос с такими данными Проверьте корректность данных запроса и повторно отправьте запрос позже
404 Запрашиваемая сущность не найдена Проверьте данные запроса и адрес, по которому вы пытаетесь получить или отправить данные
500/502 Ошибка сервера Обратитесь в техподдержку

Пример кода запроса на подтверждение

$dataArray=array(
    "ID"=>"1234567890123",
    "action"=>"approve"
);
$data_string = json_encode ($dataArray, JSON_UNESCAPED_UNICODE);
$curl = curl_init( "https://ecommerce.pult24.kz/payment/processing/end");
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);
if($result->status!=1){
    throw new Exception($result->error);
}