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