API PayCraft
## Документация
Для корректной работы приложения, мы выдаём пару ключей безопасности (apiPublic и apiPrivate). Приватный ключ (apiPrivate) - используется для генерации signature (чуть ниже). Публичный ключ (apiPublic) - передаётся в хэддере каждого запроса.
*------- https://p2p-lk.paycraft.pro/api/proxy/19/transaction/service/gateway_balance -------*
Запрос:
-Post
Headers
-- ApiPublic: string - публичный ключ приложения
-- Signature: string - подпись, генерируемая на Вашей стороне
Ответ:
- Body
{
"reason": string (Описание ошибки, если запрос не успешный)
"code": uint16 (Внутренний код ошибки, если запрос не успешный)
"usdt_available": float64 (кол-во актуальных средств, USDT)
"usdt_frozen": float64 (кол-во замороженных средств, USDT)
}
*------- https://p2p-lk.paycraft.pro/api/proxy/19/transaction/service/payin_status -------*
Эндпоинт, возвращающий статус сделки в данный момент времени по номеру сделки на вашей стороне, переданного в теле запроса.
Запрос:
-Post
Headers
-- ApiPublic: string публичный ключ приложения
-- Signature: string подпись, генерируемая на Вашей стороне
Body
{
"clientUniqueId": string (ваш уникальный айди транзакции)
}
Ответ:
- Body
{
"clientUniqueId": string (ваш уникальный айди транзакции)
"status": uint8 (Статус. Пример: [1 - pending; 2 - paid / partial; 3 - failed])
"amount": uint64 (Сумма к оплате)
"amountPaid": uint64 (Сумма, которая была фактически оплачена)
"receipt": stiring (Чек в виде url)
"reason": string (Сообщение об ошибки, если запрос не успешный)
"code": uint16 (Внутренний код ошибки, если запрос не успешный)
}
*------- https://p2p-lk.paycraft.pro/api/proxy/19/transaction/service/create_pay_in -------*
Эндпоинт, создающий новую транзакцию на получение рубля.
Запрос:
-Post
Headers
-- ApiPublic: string
-- Signature: string
Body
{
"external_id": string (ваш уникальный айди транзакции)
"amount": uint64 (сумма перевода (обязательно целое число))
"token_name": string (банк. Пример: ["Сбербанк", "Тинькофф", т.д.])
"callback_url": string (путь, по которому мы отправим иформацию, когда транзакция получит финальный статус)
}
Ответ:
- Body
{
"address": string (Номер карты получателя)
"success": bool (Статус заявки)
"currency_name": string ()
"dest_tag": string ()
"description": string (Описание ошибки. Если запрос не ошибочный, то поле пустое)
"standard_code": uint16 (Стандартный код ошибки. Если запрос не ошибочный, то поле пустое)
"internal_code": uint16 (Внутренний код ошибки. Если запрос не ошибочный, то поле пустое)
"external_id": string (ваш уникальный айди транзакции)
}
*------- https://p2p-lk.paycraft.pro/api/proxy/19/transaction/service/receipt -------*
Эндпоинт, возвращающий URL чека оплаты транзакции по номеру транзакции.
Запрос:
-Get
Headers
-- ApiPublic: string
-- Signature: string
Body
{
"clientUniqueId": string (ваш уникальный айди транзакции)
}
Ответ:
- Body
{
"receipt": string (чек в виде url.)
}
*------- https://p2p-lk.paycraft.pro/api/json/{ApiPublic} -------*
Запрос:
-Get
Ответ:
{
"exchange_rate_base": string (Исходный курс)
"exchange_rate_pay_in": string (Курс на приём)
"exchange_rate_payout": string (Курс на выплату)
}
__Формирование Сигнатуры__
- func CalcSignature(secret string, message string) string {
mac := hmac.New(sha512.New, []byte(secret))
mac.Write([]byte(message))
return hex.EncodeToString(mac.Sum(nil))
}
Принимает на вход privateKey (он же secret), берет тело запроса, производит
шифрование по формату sha512, возвращает готовый энкодер hmac, где ключем является privateKey
После чего энкодит переведенное в байты тело запроса
Публичная Последнее обновление: 2024-07-24 10:43:17 AM