Aller au contenu principal

💳 Intégration Native du Paiement

Avis de mise à jour de l'API

Il y a eu des mises à jour récentes des points de terminaison et des paramètres de l'API. Veuillez vous référer au Journal des modifications pour plus de détails.

Native Checkout API : Les utilisateurs peuvent scanner le code QR ou copier l'adresse sur la page de paiement intégrée à vos sites/applications pour effectuer les paiements.

Intégrez l'API Native Checkout pour créer la page de paiement sur vos sites/applications. Les utilisateurs paient dans vos sites/applications. Pas besoin de les diriger vers des pages externes. Prenez le contrôle total de l'expérience de paiement de vos utilisateurs.

📦 1. Créer une commande

  • Description de l'interface : Soumettez les commandes de paiement via cette interface et obtenez les informations de réception.
  • Adresse de l'interface : POST /api/order/create

Paramètres de la requête

ChampTypeRequisDescription
out_trade_nostringOuiID de commande du marchand
currency_idintOuiID de devise globalement unique
fiat_namestringNonNom de la devise fiduciaire (USD / USDT / JPY / CHF / CAD / NOK / SEK / HKD / SGD / KRW / TWD / CNY / INR / BRL / MXN / ZAR / RUB / TRY / EUR / GBP / AUD / VND / THB)
fiat_amountstringNonMontant de la devise fiduciaire ("1.2")
token_amountstringNonMontant du jeton
callback_urlstringNonURL de rappel (callback)
time_outint64NonHorodatage d'expiration à 10 chiffres, indiquez 0, la valeur par défaut est de 30 minutes (1753513764)

Description des champs de réponse

ChampTypeDescriptionExemple
trade_nostringID de transaction"20250629153045a7b3c9d2e5f8a1b4c6"
chainstringRéseau blockchain"Tron"
tokenstringJeton de crypto-monnaie"TRX"
contractstringAdresse du contrat du jeton"TRX"
amountstringMontant de la transaction"15.724197"
modestringMode de paiement"address"
pay_addressstringAdresse du destinataire"TSg8kWPE2s7z5Lon6bSnZZrYnquGHx2..."
time_expireintegerHorodatage d'expiration1753515371
decimalintegerDécimales du jeton6
chain_idintegerID de chaîne3448148188
equityintegerValeur d'équité1
create_timeintegerHorodatage de création1753513571
amount_collectedstringMontant collecté"0"
need_confirmsintegerConfirmations requises0
already_confirmsintegerConfirmations actuelles0
entrust_urlstringURL de paiement"https://checkout.pay.halochat.io/20260....b876498e0771e1"
refererstringInformations de référence""
chain_infoobjectInformations sur la chaîne{"token": "TRX", "rpc": "...", ...}

Exemple de réponse réussie

{
"code": 0,
"msg": "success",
"data": {
"trade_no": "20260317173635066d54f5b6c7269d41",
"chain": "Tron",
"token": "TRX",
"contract": "TRX",
"amount": "16.556743",
"mode": "address",
"pay_address": "THgSjcyhyxfzrjtS7VYw1vnHvb7QkMsY...",
"time_expire": 1773741995,
"decimal": 6,
"chain_id": 3448148188,
"equity": 1,
"create_time": 1773740196,
"amount_collected": "",
"need_confirms": 0,
"already_confirms": 0,
"entrust_url": "https://checkout.pay.halochat.io/20260317173635066d54f5b6c7269d41",
"referer": "",
"chain_info": {
"token": "TRX",
"abi": "",
"rpc": "https://nile.trongrid.io",
"browser_url": "https://nile.tronscan.org/#/transaction",
"decimal": 6,
"logo": "https://halo-n.oss-ap-southeast-1.aliyuncs.com/png/202505/45d1f4b5-b80f-4331-af78-ec557f97d832.png",
"series": "Tron",
"monitor_chain_id": 3448148188
}
}
}

🔍 2. Interroger la commande

  • Description de l'interface : Utilisez cette interface pour interroger le statut de la commande.
  • Adresse de l'interface : POST /api/order/detail

Paramètres de la requête

ChampTypeRequisDescription
trade_nostringOuiID de transaction

Description des champs de réponse

ChampTypeDescriptionExemple
trade_nostringID de transaction (plateforme)"20250629153045a7b3c9d2e5f8a1b4c6"
out_trade_nostringID de commande du marchand"202401011753513569"
chainstringRéseau blockchain"Tron"
tokenstringJeton de crypto-monnaie"TRX"
contractstringAdresse du contrat du jeton"TRX"
fiat_namestringNom de la devise fiduciaire"USD"
fiat_amountstringMontant fiduciaire à payer"5"
amountstringMontant crypto à envoyer"15.724197"
modestringMode de paiement"address"
pay_addressstringAdresse crypto du destinataire"TSg8kWPE2s7z5Lon6bSnZZrYnquGHx2bsj"
statusstringStatut de la transaction"TO-BE-PAID"
time_expireintegerHorodatage d'expiration (Unix)1753515371
decimalintegerDécimales du jeton6
chain_idintegerID de chaîne3448148188
equityintegerValeur d'équité1
create_timeintegerHorodatage de création (Unix)1753513571
amount_collectedstringMontant collecté"0"
need_confirmsintegerConfirmations requises0
already_confirmsintegerConfirmations actuelles0
entrust_urlstringURL de paiement (si applicable)""
refererstringInformations de référence""
chain_infoobjectInformations sur la chaîne{"token": "TRX", "rpc": "...", ...}

Exemple de réponse réussie

{
"code": 0,
"msg": "success",
"data": {
"trade_no": "20260317173635066d54f5b6c7269d41",
"out_trade_no": "ORDER_1773740195363",
"chain": "Tron",
"token": "TRX",
"contract": "TRX",
"fiat_name": "USD",
"fiat_amount": "5",
"amount": "16.556743",
"mode": "address",
"pay_address": "THgSjcyhyxfzrjtS7VYw1vnHvb7QkMsY7w",
"status": "TO-BE-PAID",
"time_expire": 1773741995,
"decimal": 6,
"chain_id": 3448148188,
"equity": 1,
"create_time": 1773740196,
"amount_collected": "0",
"need_confirms": 0,
"already_confirms": 0,
"entrust_url": "",
"referer": "",
"chain_info": {
"token": "TRX",
"abi": "",
"rpc": "https://nile.trongrid.io",
"browser_url": "https://nile.tronscan.org/#/transaction",
"decimal": 6,
"logo": "",
"series": "",
"monitor_chain_id": 0
}
}
}

💱 3. Taux de change

  • Description de l'interface : Obtenez le taux de change actuel entre le TOKEN et la devise légale.
  • Adresse de l'interface : POST /api/order/exchange-rates

Paramètres de la requête

ChampTypeRequisDescription
currency_idintOuiID de devise globalement unique
fiat_namestringOuiAbréviation de la devise fiduciaire (USD / USDT / JPY / CHF / CAD / NOK / SEK / HKD / SGD / KRW / TWD / CNY / INR / BRL / MXN / ZAR / RUB / TRY / EUR / GBP / AUD / VND / THB)
fiat_amountstringOuiMontant de la devise fiduciaire

Description des champs de réponse

ChampTypeDescription
amountstringMontant
exchange_ratestringTaux de change

Exemple de réponse réussie

{
"code": 0,
"msg": "success",
"data": {
"amount": "0.00001971",
"exchange_rate": "100"
}
}

📋 4. Liste des jetons de l'application (avec solde)

  • Description de l'interface : Retourne les cryptomonnaies pour lesquelles l'encaissement est activé pour l'application actuelle (X-Appid), avec les soldes agrégés par adresse (même base que POST /api/account/balance). Ce n'est pas le catalogue complet de la plateforme ; pour tous les jetons pris en charge, voir §5 Liste de jetons.
  • Adresse de l'interface : POST /api/currency/app-token-list
  • Paramètres de la requête : Corps {}, en-têtes d'authentification identiques aux autres API.

Description des champs de réponse

Objet racine :

ChampTypeDescription
codeintegerCode métier, 0 = succès
msgstringMessage
dataarrayJetons avec encaissement activé et soldes pour l'application

Éléments de data[] :

ChampTypeDescription
currency_idintegerID de devise unique global
chainstringNom de la chaîne
networkstringNom du réseau
tokenstringSymbole du jeton
contractstringAdresse du contrat
chain_idintegerID de chaîne
logostringURL du logo
decimalintegerDécimales du jeton
balancestringSolde total (chaîne décimale)
operable_balancestringSolde utilisable
frozen_amountstringMontant gelé
statusintegerStatut : 1 — activé, 2 — désactivé
transaction_enabledbooleanEncaissement activé (toujours true dans cette réponse)

Exemple de réponse réussie

{
"code": 0,
"msg": "success",
"data": [
{
"currency_id": 46,
"chain": "Tron",
"network": "Nile",
"token": "JST",
"contract": "TF17BgPaZYbxxxxhriubPDsA7ArKoLX3",
"chain_id": 3448148188,
"logo": "https://halo-n.oss-ap-southeast-1.aliyuncs.com/png/202505/xxx-c3f3-4d5d-a9b5-0143d78326f9.png",
"decimal": 18,
"balance": "0.785074013",
"operable_balance": "0.785074013",
"frozen_amount": "0",
"status": 1,
"transaction_enabled": true
}
]
}

📋 5. Liste de jetons

  • Description de l'interface : Obtenez la liste des jetons pris en charge par le système. Pour les jetons avec encaissement activé et les soldes de votre application, utilisez §4 Liste des jetons de l'application.
  • Adresse de l'interface : POST /api/currency/token-list
  • Paramètres de la requête : Aucun

Description des champs de réponse

ChampTypeDescription
currency_idintID de devise globalement unique.
chainstringChaîne
networkstringRéseau
tokenstringJeton
contractstringAdresse du contrat. Si la devise principale actuelle est identique au nom de la devise, la valeur correspondra au nom de la devise.
chain_idintID de chaîne. Seule la série Ethereum a une valeur.
logostringLogo
decimalintPrécision

Exemple de réponse réussie

{
"code": 0,
"msg": "success",
"data": [
{
"currency_id": 46,
"chain": "Tron",
"token": "JST",
"network": "Nile",
"contract": "TF17BgPaZYbxxxxhriubPDsA7ArKoLX3",
"chain_id": 3448148188,
"logo": "https://halo-n.oss-ap-southeast-1.aliyuncs.com/png/202505/xxx-c3f3-4d5d-a9b5-0143d78326f9.png",
"decimal": 18
}
]
}

💸 6. Paiement (Retrait)

  • Description de l'interface : Les marchands peuvent retirer de l'argent vers une adresse spécifiée via cette interface.
  • Adresse de l'interface : POST /api/payout/create

Paramètres de la requête

ChampTypeRequisDescription
currency_idintOuiID de devise globalement unique
amountstringOuiMontant de base de la devise
to_addressstringOuiAdresse du destinataire
callback_urlstringNonAdresse de rappel (adresse de rappel par défaut définie par l'APPID du marchand)
google_codestringNonCode de vérification Google (requis si la vérification est activée pour l'application actuelle)

Exemple de réponse réussie

{
"code": 0,
"msg": "success",
"data": {
"cost": "0.801502",
"actual_receipt": "0.001",
"trade_no": "202603171746187e582d1b789b27ea55",
"estimated_transfer": "0"
}
}

📊 7. Interroger l'état du transfert

  • Description de l'interface : Interrogez le statut de la commande de paiement.
  • Adresse de l'interface : POST /api/payout/detail

Paramètres de la requête

ChampTypeRequisDescription
trade_nostringOuiNuméro de transaction

Description des champs de réponse

ChampTypeDescription
trade_nostringID de transaction
service_chargestringFrais de service
gasstringFrais de GAS
tokenstringDevise
amountstringMontant
target_addressstringAdresse du destinataire
start_timeintHeure de début
created_timeintHeure de création
statusstringStatut de la transaction (CONFIRMING-PROGRESS : En cours de confirmation, PAID : Succès, FAIL : Échec, CANCEL : Annulé, PROGRESS : En attente)

Exemple de réponse réussie

{
"code": 0,
"msg": "success",
"data": {
"service_charge": "0.000002",
"gas": "0.8015",
"amount": "0.001",
"status": "TRANSFER",
"target_address": "TDYiTL3pke3T9BsoTotbKb922WsXQCmSxv",
"start_time": 1773740882,
"created_time": 1773740882,
"trade_no": "202603171748020a09cbb09b4846bc99",
"token": "DK7bKg181cC7pBgX3PxSIH2WdklZ5IPT"
}
}

💰 8. Vérifier le solde

Récupérez les informations de solde d'une seule devise pour une application via cette API.

  • Adresse de l'interface : POST /api/account/balance

Paramètres de la requête

ChampTypeRequisDescription
currency_idintOuiID de devise globalement unique

Description des champs de réponse

ChampTypeDescription
currency_idintID de devise globalement unique
balancestringQuantité restante
balance_usdtstringValeur de la quantité restante convertie en USDT
operable_balancestringLa quantité utilisable (Si le montant de la devise principale dans l'adresse du portefeuille est trop bas pour être collecté, cette adresse de portefeuille ne peut pas être utilisée. Référez-vous au centre personnel => paramètres réseau pour le seuil minimum utilisable.)
operable_balance_usdtstringValeur de la quantité utilisable
chainstringNom de la chaîne
networkstringRéseau
tokenstringJeton
contractstringAdresse du contrat (jeton principal comme nom de jeton abrégé)

Exemple de réponse réussie

{
"code": 0,
"msg": "success",
"data": {
"currency_id": 46,
"balance": "0.785074013",
"operable_balance": "0.785074013",
"operable_balance_usdt": "0.043642",
"balance_usdt": "0.043642",
"chain": "Tron",
"network": "Nile",
"token": "JST",
"contract": "TF17BgPaZYbz8oxbjhriubPDsA7ArKoLX3"
}
}

🖼️ 9. Code QR de paiement statique

  • Description de l'interface : Demandez une adresse de paiement statique indépendante via l'API. Elle rappellera l'adresse de l'interface CallBack de l'APPID correspondant.
  • Adresse de l'interface : POST /api/payment-qr-code/create

Paramètres de la requête

ChampTypeRequisDescription
namestringOuiNom du code QR
currency_idintOuiID de devise globalement unique
amountstringNonMontant de paiement par défaut (peut être "0")

Description des champs de réponse

ChampTypeDescriptionExemple
idintID de code QR unique115
addressstringAdresse de paiement statique"TXd8UKLtLqk5V15v7e3W43ZdNw6berp6DP"

Exemple de réponse réussie

{
"code": 0,
"msg": "success",
"data": {
"id": 115,
"address": "TXd8UKLtLqk5V15v7e3W43ZdNw5berp6DP"
}
}
💡

Cela nécessite l'APPID de l'application de code QR pour effectuer une requête à cette API.


📌 Afficher le code d'erreur