For the complete documentation index, see llms.txt. This page is also available as Markdown.

Génération de signature

ASTUCE (TIP)

Les commerçants peuvent suivre les étapes ci-dessous pour générer la signature de la requête, et la plateforme vérifiera la signature après réception de la requête. Si la vérification de la signature échoue, la requête est refusée et le code d'état (status code) approprié est renvoyé.

Préparation (Preparation)

Les commerçants doivent s'inscrire avec un numéro de commerçant et créer une application de paiement via le back-office marchand pour obtenir APP_ID et APP_SECRECT.

Condition

Toutes les interfaces de la méthode POST dans ce document doivent valider la signature, et les autres interfaces n'ont pas besoin d'être validées pour le moment.

Génération (Generation)

La chaîne de signature comporte quatre lignes, un paramètre par ligne. La ligne se termine par \n (saut de ligne, la valeur d'encodage ASCII est 0x0A), et n'ajoutez pas de \n sur la dernière ligne. Si le paramètre lui-même se termine par \n, vous devez également ajouter un \n.

URL\n
Request timestamp\n
Request random string\n
Request message body

Prenons la demande de commande (order inquiry) comme exemple.

La première étape consiste à obtenir l'URL absolue de la requête et à supprimer la partie nom de domaine pour obtenir l'URL signée participante. S'il y a des paramètres de requête, l'URL doit être complétée par '? ' et la chaîne de requête correspondante. (Voir le code ci-dessous)

/v1/transaction/query

La deuxième étape consiste à obtenir l'horodatage actuel (millisecondes) du système lorsque la requête est lancée. C'est-à-dire le nombre total de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 GMT jusqu'à présent, en tant qu'horodatage de la requête. La plateforme refusera de traiter les requêtes effectuées il y a longtemps, veuillez garder l'heure du propre système du commerçant précise.

La troisième étape consiste à générer une chaîne aléatoire (random string) de 32 bits.

La quatrième étape consiste à obtenir le corps du message de la requête dans la requête (request body).

La cinquième étape consiste à construire la chaîne de signature de la requête selon les règles précédentes comme suit :

Chiffrement (Encryption)

Prenons le processus de chiffrement javascript comme exemple :

Exemple après chiffrement :

Concaténer (Concatenate)

Le format de concaténation des informations de signature est le suivant : app_id=APP_ID, mch_id=ID du commerçant, nonce_str=La chaîne aléatoire générée à l'étape 3, timestamp=L'horodatage généré à l'étape 2, signature=Chaîne de signature cryptographique.

En-tête HTTP (HTTP header)

L'API du document transmet la signature via un en-tête HTTP Authorization. Authorization se compose de deux parties : le type d'authentification et les informations de signature. Le type d'authentification ne prend en charge que TTPAY-AES-256-ECB pour le moment.

En-tête d'autorisation comme suit : (Remarques : exemple car la composition peut contenir des sauts de ligne, les données réelles doivent figurer sur une seule ligne)

Enfin, nous pouvons créer une requête HTTP qui contient une signature.

Code de démonstration (Demo code)

Mis à jour