Symbole variable — référence pour le suivi du paiement. Pour tracer un paiement, nous ajoutons 4 chiffres à la fin du montant ; par exemple, en USDT sur le réseau Tron, 6 décimales. Les deux premières sont utilisées, par ex. 10.55 (10 dollars 55 cents), et avec le symbole variable cela donne 10.550001. C'est en fait 1000 fois moins qu'un centime — l'acheteur ne surpaie pas. Mais le paiement peut être suivi.
Lorsque en mode Merchant vous aurez utilisé jusqu'à 10 000 codes, une nouvelle adresse USDT sera ajoutée automatiquement pour les 10 000 codes suivants — et ainsi de suite à l'infini. Cela permet de servir même une grande boutique avec des milliers de commandes par jour.
Sinon, il faudrait utiliser une adresse distincte pour chaque paiement. Puis payer des frais réseau pour rassembler tous les fonds sur une seule adresse. Par exemple, si vous avez 100 paiements sur 100 adresses, pour rassembler les fonds sur une seule adresse (pour un échange, etc.), il faudrait payer la commission 100 fois (0.9$ à chaque fois). Nous avons contourné cela grâce aux numéros de référence décrits ci-dessus.
Your server must be able to accept a POST request to the address you specified as the webhook. Here is an example in Javascript (Express.js framework)
app.post('/mi_webhook_subscription/', bodyParser.json(), (request, response) => {
try {
let eventObj = request.body;
const signature = request.headers['mitilena-signature'];
if (signature === endpointSecretMitilenaNewOur) {
if (!eventObj.statusObj) {
return response.status(400).send('Error, no object.');
}
let hookObj = eventObj.statusObj;
...
We will send you an object in JSON format. The object will have the following fields, as well as a secret key. Your private secret key:
You should only process requests to your webhook that contain this key.
statusObj = {
mitilenaInvoiceId: 'auto-683dc5-03f2c0-e3f06a-example-string', // never undefined
yourPaymentId: 'stringOrNull', // never undefined
yourProductName: 'stringOrNull', // never undefined
yourProductId: 'stringOrNull', // never undefined
secretKey: 'your-unique-secret-key', // never undefined,
stableCoinAmount: 0, // number, never undefined
stableCoinSymbol: 'USDT', // never undefined
stableCoinBlockchain: 'tether-trc20', // never undefined
stableCoinContractAddress: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t', // string | null
localCurrencyAmount: 0, // number, never undefined
localCurrencyCode: 'EUR', /// ISO 4217 currency code, never undefined
wasPaid: true, // true | false, never undefined
}
/* payment time === webhook call time.
We try to send a request immediately after the payment is detected
!!!
If the secret key is incorrect or at least one field is
undefined - this is a fake request, do not set the order
as paid in your system! */
Lorsque vous recevez un tel objet et l'avez vérifié, vous pouvez marquer la commande dans votre base de données comme payée. Nous avons une description plus complète sur notre blog.