Aller au contenu principal

🌐 Intégration de la Page de Paiement Hébergée

Intégrez la page de paiement hébergée par HaloPay. Les clients sont redirigés vers une page de paiement hébergée par HaloPay. Il s'agit de l'intégration la plus simple avec un minimum de travail front-end.

📦 Étape 1 : Créer une commande de paiement

Soumettre l'ordre de paiement et recevoir l'adresse de paiement

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

Renvoie l'adresse de réception/le code QR et les informations sur la commande

Headers

NomTypeDescription
X-Sign*StringhmacSHA256 (body (json string)+timestamp+appKey). Guide de signature.
X-Timestamp*StringHorodatage en secondes (10 chiffres). La demande est valable pendant deux minutes.
X-Appid*StringIdentifiant unique du marchand. Retrouvez-le sur la page AppManage.
content-type*Stringapplication/json

Corps de la Requête (Body)

NomTypeRequisDescription
out_trade_noStringOuiID de commande dans le système du marchand. Un ID unique pour chaque commande
symbolStringOuiSymbole de la monnaie fiduciaire
amountStringOuiMontant (arrondi à 2 décimales)
nameStringNonNom du produit
imageStringNonURL de l'image du produit
describeStringNonDescription du produit
time_expireStringNonDélai d'expiration (secondes), 0 indique la valeur par défaut
callback_urlStringNonURL de rappel (callback)

Exemple de Corps de Requête

{
"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/"
}

Réponse (Succès 200)

Header

NomValeurRequisTypeDescription
X-Appidh3j6k9m2n...YStringIdentifiant unique du marchand. Retrouvez-le sur la page AppManage.
X-Timestamp1677152490YStringHorodatage en secondes (10 chiffres). La demande est valable pendant deux minutes.
X-Signe0b78d93...YStringhmacSHA256 (body (json string)+timestamp+appKey). Guide de signature.

Body

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

Paramètres

NomValeurRequisTypeDescription
code0trueInteger
messagesuccesstrueString
datatrueObject
data.urlhttps://checkout.pay.halochat.io/202603172021145994e1572e91672b34trueStringL'adresse de la page web utilisée pour le paiement
data.time_expire1773754032trueIntegerDate limite de paiement
data.trade_no202603172021145994e1572e91672b34trueStringID de la commande HaloPay

Réponse (Échec 200)

{
"code": 10003,
"msg": "Params Error: Invalid amount",
"data": null
}
NomValeurRequisTypeDescription
code10003trueNumber
msgService error, please try againtrueString
datatrueObject
remarque

Par mesure de sécurité, nous signerons les données retournées (et d'après ceci, seul { code: 0 } devrait être signé, mais cela signe tout le corps retourné). De plus, il renverra Appid, Sign, Timestamp dans l'en-tête de la réponse. La méthode de signature est hmacSHA256 (body (json string)+timestamp+appKey). Veuillez utiliser les données avec prudence si la vérification de la signature échoue. Cela indique que les données ont été altérées.

astuce

Le corps (body) de la requête HTTP est une chaîne json. Ajoutez le contenu du corps de la requête HTTP à la signature. Assurez-vous que le contenu du corps correspond au contenu de la signature. Dès qu'HaloPay recevra la demande, le contenu du corps sera lu et la signature sera vérifiée.

Étape 2 : Configurer le Webhook pour recevoir la notification de paiement