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

🌐 Интеграция размещенной страницы оформления заказа

Интеграция с размещенной страницей оформления заказа HaloPay. Клиенты перенаправляются на страницу оформления заказа, размещенную в HaloPay. Самая простая интеграция с минимальной работой интерфейса (front-end).

📦 Шаг 1: Создание платежного ордера

Отправить платежный ордер и получить адрес платежа

**POST** https://api.pay.halochat.io/api/entrust/pre-create

Возвращает адрес получения/QR-код и информацию о заказе

Headers

ИмяТипОписание
X-Sign*StringhmacSHA256 (body (json string)+timestamp+appKey). Руководство по подписи.
X-Timestamp*StringВременная метка в секундах (10 цифр). Запрос действителен в течение двух минут.
X-Appid*StringУникальные учетные данные продавца. Найдите это на странице AppManage.
content-type*Stringapplication/json

Тело запроса (Body)

ИмяТипОбязательноОписание
out_trade_noStringДаID заказа в системе продавца. Уникальный ID для каждого заказа
symbolStringДаСимвол фиатной валюты
amountStringДаСумма (округленная до 2 знаков после запятой)
nameStringНетНазвание продукта
imageStringНетURL-адрес изображения продукта
describeStringНетОписание продукта
time_expireStringНетВремя истечения срока действия (в секундах), 0 означает значение по умолчанию
callback_urlStringНетURL обратного вызова (callback url)

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

{
"out_trade_no": "uz54NEW9TVhLSIDHUSYB4aEFupKoE7I8",
"symbol": "USD",
"amount": "15",
"name": "PRODUCT_NAME",
"image": "https://callback.com/logo.png",
"describe": "CHECKOUT_DESCRIPTION",
"time_expire": 1773750780,
"callback_url": "https://callback.com/"
}

Ответ (Успешно 200)

Header

ИмяЗначениеОбязательноТипОписание
X-Appidh3j6k9m2n...YStringУникальные учетные данные продавца. Найдите это на странице AppManage.
X-Timestamp1677152490YStringВременная метка в секундах (10 цифр). Запрос действителен в течение двух минут.
X-Signe0b78d93...YStringhmacSHA256 (body (json string)+timestamp+appKey). Руководство по подписи.

Body

{
"code": 0,
"msg": "success",
"data": {
"url": "https://checkout.pay.halochat.io/202603172021145994e1572e91672b34",
"time_expire": 1773750780,
"trade_no": "202603172021145994e1572e91672b34"
}
}

Параметры

ИмяЗначениеОбязательноТипОписание
code0trueInteger
messagesuccesstrueString
datatrueObject
data.urlhttps://checkout.pay.halochat.io/202603172021145994e1572e91672b34trueStringАдрес веб-страницы, используемой для оплаты
data.time_expire1773754032trueIntegerКрайний срок оплаты
data.trade_no202603172021145994e1572e91672b34trueStringID заказа HaloPay

Ответ (Сбой 200)

{
"code": 10003,
"msg": "Params Error: Invalid amount",
"data": null
}
ИмяЗначениеОбязательноТипОписание
code10003trueNumber
msgService error, please try againtrueString
datatrueObject
примечание

В качестве меры безопасности мы подписываем возвращаемые данные (и согласно этому должен быть подписан только { code: 0 }, но подписывается все возвращаемое тело). Кроме того, в заголовке ответа будут возвращены Appid, Sign, Timestamp. Метод подписи: hmacSHA256 (body (json string)+timestamp+appKey). Пожалуйста, используйте данные с осторожностью, если проверка подписи не удалась. Это указывает на то, что данные были подделаны.

подсказка

Тело HTTP — это json строка. Добавьте содержимое тела HTTP в подпись. Убедитесь, что содержимое тела совпадает с содержимым подписи. Как только HaloPay получит запрос, содержимое тела будет прочитано, а подпись проверена.

Шаг 2: Настройте Webhook для получения уведомлений о выплатах