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

Vérification de la signature

ASTUCE (TIP)

Le commerçant peut vérifier la signature de la réponse ou du rappel (callback) en suivant les étapes ci-dessous.

Si la signature de requête du commerçant vérifié est correcte, tokenpay inclut la signature de réponse dans l'en-tête HTTP de la réponse. Nous recommandons aux commerçants de vérifier la signature de la réponse.

De même, tokenpay inclut la signature du paquet de rappel dans l'en-tête HTTP du rappel. Le commerçant doit vérifier la signature du rappel pour s'assurer que le rappel a bien été envoyé par tokenpay.

Concaténer (Concatenate)

Tout d'abord, le commerçant obtient les informations suivantes à partir de la réponse.

  • Horodatage de réponse dans l'en-tête HTTP TTPay-Timestamp.

  • Chaîne aléatoire de réponse dans l'en-tête HTTP TTPay-Nonce.

  • Corps de la réponse (Response Body). Vérifiez l'interface selon l'ordre renvoyé par celle-ci. Un ordre incorrect entraînera l'échec de la vérification.

La chaîne de signature comporte trois 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.

Reply timestamp\n
Reply random string\n
Reply message body

Par exemple, un message de réponse HTTP se présente comme suit :

HTTP/1.1 200 OK
Server: nginx
Date: Tue, 02 Apr 2019 12:59:40 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 2204
Connection: keep-alive
Keep-Alive: timeout=8
Content-Language: zh-CN
TTPay-Nonce: c5ac7061fccab6bf3e254dcf98995b8c
TTPay-Signature: CtcbzwtQjN8rnOXItEBJ5aQFSnIXESeV28Pr2YEmf9wsDQ8Nx25ytW6FXBCAFdrr0mgqngX3AD9gNzjnNHzSGTPBSsaEkIfhPF4b8YRRTpny88tNLyprXA0GU5ID3DkZHpjFkX1hAp/D0fva2GKjGRLtvYbtUk/OLYqFuzbjt3yOBzJSKQqJsvbXILffgAmX4pKql+Ln+6UPvSCeKwznvtPaEx+9nMBmKu7Wpbqm/+2ksc0XwjD+xlvlECkCxfD/OJ4gN3IurE0fpjxIkvHDiinQmk51BI7zQD8k1znU7r/spPqB+vZjc5ep6DC5wZUpFu5vJ8MoNKjCu8wnzyCFdA==
TTPay-Timestamp: 1554209980
Cache-Control: no-cache, must-revalidate

{"app_id":"xxxx"}

Alors la chaîne de signature est :

Réponse (Reply)

La signature de réponse tokenpay est transmise via l'en-tête HTTP TTPay-Signature. (Remarque : il s'agit d'un exemple car la composition peut contenir des sauts de ligne, les données réelles doivent figurer sur une seule ligne)

Jugement (Judgment)

Utilisez la méthode AES-256-ECB pour générer des signatures (vous pouvez vous référer à la génération de signature). La signature générée est comparée à la signature de réponse. Si elles ne correspondent pas, les données ont été altérées.

Mis à jour