PAYMENT-SIGNATURE, puis réessaie avec la même requête.
La différence est que le paiement des commandes appartient à l’API de la plateforme et nécessite un jeton de compte ; tandis que l’appel direct à l’API IA de x402.acedata.cloud peut utiliser uniquement X402, sans nécessiter d’API Token.
Préparer la commande
Accédez à la console Ace Data Cloud, sélectionnez la commande à payer, et notez l’ID de la commande. Si vous n’avez pas encore de commande, vous pouvez créer une commande en attente de paiement sur la page des forfaits. Le prix de la commande est celui affiché sur la page, et leamount dans la réponse X402 402 est la base finale de signature.
Créer un jeton de compte
Les requêtes de paiement des commandes nécessitent un jeton de compte. Ouvrez la page des Token de la plateforme, et créez un token au formatplatform-v1-....
Les requêtes suivantes utilisent :
Déclencher 402
Envoyez d’abord une requête sansPAYMENT-SIGNATURE :
accepts :
x402Version est 2, network utilise l’identifiant CAIP-2, et le champ du montant est amount.
Résultat d’exécution du programme après création d’une commande de 10 Credits et déclenchement de 402 :
Les enregistrements de transaction suivants sont des exemples de tests historiques sous l’ancienne politique ; les montants et les hachages de transaction sont conservés tels quels. Les nouvelles commandes X402 ne bénéficient plus de remises selon le moyen de paiement ; veuillez utiliser le amount de cette réponse 402 comme base pour la signature et le paiement.
- Après la création réussie de la commande, l’état est
Pending, et aucun paiement on-chain n’a encore été effectué. - La première requête
pay/ne contient pasPAYMENT-SIGNATURE, elle renvoie donc HTTP 402. acceptsfournit simultanément Baseexactet Solanaexact, ce tutoriel sélectionne ensuite Base.- Le prix lors de la création de la commande est
1.26, et lors du paiement durant l’ancienne politique de remise de paiement X402, le montant réel de signature et de règlement est de1.2USDC, correspondant à1200000atomic USDC.
resource est un champ renvoyé par le serveur et participant à la signature, le client ne doit pas réécrire lui-même le protocole, le chemin ou l’ID de commande qu’il contient.
Signer et réessayer
Le paiement des commandes peut réutiliser@acedatacloud/x402-client ou la fonction de signature de bas niveau de acedatacloud-x402. Voici un exemple TypeScript :
exact :
status 200indique que l’interface de paiement des commandes de la plateforme a accepté cettePAYMENT-SIGNATURE.has_x_payment_response Trueindique que l’en-tête de réponse contient le reçuPAYMENT-RESPONSEencodé en Base64.settle_header.success=Trueetnetwork=baseindiquent que le Facilitator a terminé le règlement Base.- Le statut final de la commande est
Finished, lepay_wayestX402, et lepay_idenregistre le hachage de la transaction on-chain. - L’événement
Transfersur BaseScan montre que l’adresse de paiement a transféré1200000USDC atomic à l’adresse de réception de la plateforme, soit1.2USDC.
Réponse réussie et reçu
Après le succès du paiement de la commande, le corps de la réponse contient les informations de la commande. La plateforme inclut également dans l’en-tête de réponsePAYMENT-RESPONSE une settlement response encodée en Base64 ; après décodage, les champs courants incluent :
Si vous avez besoin d’effectuer un rapprochement, il est recommandé de conserver simultanément l’ID de la commande, l’adresse du portefeuille payeur,
transaction et le statut final de la commande.
Points d’attention
- Le paiement de la commande nécessite un jeton de compte de plateforme et ne peut pas être effectué uniquement avec une signature de portefeuille X402.
amountutilise les USDC atomic units ;1200000représente1.2USDC.- Ne composez pas vous-même l’adresse de réception ou l’adresse de l’actif ; référez-vous à
acceptsdans la réponse 402. - Si la même
PAYMENT-SIGNATUREest soumise à plusieurs reprises, le Facilitator appliquera une protection contre la relecture basée sur le nonce.
Réponse en cas d’échec du paiement
Le premier HTTP 402 sansPAYMENT-SIGNATURE est un défi de paiement normal et ne représente pas un échec de paiement. En cas d’échec de vérification ou de règlement après signature, la chaîne standard error est toujours conservée comme solution de compatibilité, et une structure d’erreur stable est renvoyée dans extensions.acedatacloud.paymentError :
code, et revenir à un échec de paiement générique pour les codes inconnus. charged est un champ à trois états : false n’est renvoyé que lorsqu’un refus est explicitement effectué avant le règlement ; l’absence du champ indique que l’état du débit est inconnu et ne peut pas être interprétée comme « non débité ». Une fois que la commande est passée à Failed, elle ne peut pas être réessayée avec la même commande ; veuillez créer une nouvelle commande après avoir corrigé le problème du portefeuille.
N’enregistrez ni ne soumettez la PAYMENT-SIGNATURE complète, la signature du portefeuille, le payload d’autorisation, les diagnostics bruts du Facilitator ou les réponses RPC. Pour le dépannage du service client, seuls l’ID de la commande et le code d’erreur public sont nécessaires.
