Aller au contenu

Le suivi sur votre page ou votre application signale à Frak qu’une commande se prépare. Les récompenses ne sont déclenchées que lorsque votre backend confirme que la commande est réelle à l’aide d’un webhook signé. Cela garantit que les récompenses restent liées à des ventes réelles et payées.

Cette étape est la même, que votre front-end soit un site web ou une application mobile.

  1. Le front-end enregistre la commande. La carte post-achat, trackPurchaseStatus ou l’appel d’achat du SDK mobile envoie customerId, orderId et token pour que Frak commence à écouter cette commande.

  2. Votre backend la confirme. Lorsque la commande est payée (ou remboursée, annulée), votre serveur envoie un webhook à Frak avec les mêmes identifiants et une signature HMAC.

  3. Frak déclenche la récompense. Une fois la signature vérifiée et le statut égal à confirmed, Frak envoie l’interaction PurchaseCompleted, qui permet de verser des récompenses en fonction de vos campagnes actives.

Votre URL de webhook et votre clé secrète de signature se trouvent dans le tableau de bord professionnel, dans la section Purchase Tracker de votre espace marchand. Signez l’ensemble du corps de la requête avec HMAC SHA-256 et envoyez-le dans l’en-tête x-hmac-sha256.

import crypto from "node:crypto";
async function sendPurchaseWebhook(order: {
id: string;
customerId: string;
status: "pending" | "confirmed" | "cancelled" | "refunded";
token: string;
currency?: string;
totalPrice?: string;
}) {
const body = JSON.stringify(order);
const hmac = crypto
.createHmac("sha256", process.env.FRAK_WEBHOOK_SECRET)
.update(body)
.digest("hex");
await fetch(process.env.FRAK_WEBHOOK_URL, {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-hmac-sha256": hmac,
// Use "true" while testing, "false" in production
"x-test": "false",
},
body,
});
}
await sendPurchaseWebhook({
id: "order_456",
customerId: "cust_123",
status: "confirmed",
token: "a-unique-order-token",
currency: "EUR",
totalPrice: "99.99",
});

Consultez la référence du webhook d’achat pour voir la charge utile complète (y compris les articles de la commande) et l’endpoint de suivi des achats pour l’appel côté page.