Variabel symbool — referentie voor betalingsopvolging. Om een betaling te volgen voegen we 4 cijfers toe aan het einde van het bedrag; bijvoorbeeld bij USDT op Tron met 6 decimalen. De eerste twee worden gebruikt, bijv. 10.55 (10 dollar 55 cent), en met variabel symbool wordt dat 10.550001. Dat is feitelijk 1000× minder dan één cent — de koper betaalt niet te veel. Maar jij kunt de betaling traceren.
Wanneer je in Merchant-modus tot 10.000 codes hebt gebruikt, wordt automatisch een nieuw USDT-adres toegevoegd voor de volgende 10.000 codes — en zo oneindig door. Zo kun je zelfs een grote webshop met duizenden orders per dag bedienen.
Anders zou je voor elke betaling een apart adres moeten gebruiken. En daarna netwerkcommissie betalen om alle middelen op één adres te verzamelen. Bijvoorbeeld: bij 100 betalingen op 100 adressen zou je om middelen op één adres te verzamelen (voor exchange enz.) 100 keer commissie moeten betalen ($0.9 per keer). We omzeilden dit met de referencenummers hierboven.
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! */
Wanneer je zo'n object ontvangt en controleert, kun je de order in je database als betaald markeren. We hebben een vollediger beschrijving op onze blog.