Comment connecter Paystack à Shopify Flow

Paystack est une plateforme de paiement largement utilisée à travers l'Afrique. Elle vous informe des prélèvements, virements, abonnements et remboursements. Workflow Webhooks transforme cet appel en un déclencheur « Shopify Flow », afin que votre boutique puisse y réagir : attribuer une balise à un client, ajouter une note à une commande, envoyer un e-mail interne, mettre à jour un métachamp… tout ce qu’Shopify Flow permet de faire.

Ce guide décrit l'ensemble du processus : Paystack envoie les données, Workflow Webhooks les reçoit et les vérifie, puis Shopify Flow effectue l'opération. La signature HMAC de Paystack est vérifiée à chaque requête, de sorte que seul Paystack puisse déclencher votre workflow.

Ce que vous pouvez construire

  • Identifiez un client d'Shopify qui a effectué son paiement via la passerelle de paiement Paystack.
  • Ajoutez une note de commande une fois le remboursement effectué.
  • Envoyez un e-mail au personnel lorsqu'un prélèvement récurrent lié à un abonnement échoue.

Exemples d'événements à envoyer : charge.success, transfer.success, subscription.disable, refund.processed.

Avant de commencer

  • Workflow Webhooks installé sur votre boutique Shopify.
  • Shopify Flow installée, disponible gratuitement sur la Boutique d'Shopify.
  • Un compte Paystack disposant des autorisations nécessaires pour créer des webhooks.

Étape 1 - Créez le webhook sur Workflow Webhooks

  1. Ouvrez Workflow Webhooks -> Webhooks -> « Créer un webhook » et attribuez-lui un nom que vous reconnaîtrez dans Shopify Flow, tel que Paystack events.
  2. Dans la section « Authentification », sélectionnez « HMAC ».
  3. Dans la section « Fournisseur de signature », sélectionnez Paystack. L'application remplit automatiquement les champs « en-tête », « algorithme », « payload signé » et « fenêtre de relecture » ; vous n'avez rien d'autre à configurer.
  4. Pour l'instant, ne renseignez pas le champ « secret » et cliquez sur « Enregistrer ». Copiez l'URL du webhook qui s'affiche sur la page.

Consultez la page Authentification pour connaître les autres modes d'authentification, et la page Mappage de la charge utile et variables de flux pour choisir les champs qui seront transmis à Shopify Flow.

Étape 2 - Ajouter le point de terminaison dans Paystack

Dans le tableau de bord Paystack, ouvrez « Paramètres » -> « Clés API et webhooks », puis définissez l'URL du webhook en indiquant l'URL que vous avez copiée.

Comment trouver votre clé de signature Paystack

Votre clé secrète Paystack (sk_...). Paystack effectue la signature à l'aide de la clé du compte, et non d'une clé secrète propre à chaque webhook.

La documentation de Paystack consacrée aux signatures de webhooks, disponible à l'adresse, contient le libellé exact et les captures d'écran correspondant à votre compte.

Collez ce secret dans le champ « Secret » du webhook sur Workflow Webhooks, puis enregistrez. À partir de ce moment, chaque livraison Paystack est vérifiée avant d'atteindre Shopify Flow.

Ce que cette vérification permet de vérifier

Quoi ? Valeur
En-tête de signature x-paystack-signature
Emplacement de la signature La valeur complète de l'en-tête
Ce qui est signé {body}
Signature HMAC-SHA512, codé en hexadécimal
Horodatage Non utilisé par cet expéditeur
Protection contre la relecture Aucune - cet expéditeur ne signe pas l'horodatage ; par conséquent, toute signature valide reste valide
Le secret À utiliser sous forme de texte brut. Copiez-collez-le exactement tel que l'expéditeur l'a indiqué.

Dans le payload signé, {body} correspond au corps brut de la requête, octet par octet.

Toute requête qui ne respecte pas l'une de ces conditions est rejetée avec le message 401, est enregistrée dans Historique et dépannage et ne déclenche jamais de workflow.

Étape 3 - Créer le workflow Shopify Flow

  1. Dans « Shopify Flow », créez un workflow et sélectionnez le déclencheur « Workflow Webhooks ».
  2. Cliquez sur « Enregistrer les événements », puis envoyez un événement test depuis Paystack (ou utilisez l'option « Envoyer un test » dans Workflow Webhooks) afin que Shopify Flow apprenne la structure de vos données.
  3. Chaque webhook dont vous disposez déclenche le même déclencheur de flux ; veuillez donc ajouter une première condition sur l’identifiant du webhook afin de limiter ce workflow à Paystack uniquement. L’identifiant est indiqué sur la page du webhook.
  4. Ajoutez vos actions : identifiez un client, ajoutez une note, envoyez un e-mail interne, mettez à jour un métachamp.
Shopify Flow
Dans Shopify Flow, sélectionnez « Choisir un déclencheur », ouvrez Workflow Webhooks et sélectionnez « Déclencheur Webhook ».
Condition de Shopify Flow : l'identifiant du webhook est identique à celui d'un webhook
La première étape de chaque workflow : une condition portant sur l'identifiant du webhook, afin que le workflow ne s'exécute que pour ce webhook.
Le workflow final : déclencheur « Webhook », une condition sur l'identifiant du webhook, puis envoi d'un e-mail interne sur la branche « True »
Le workflow final : un déclencheur, une condition basée sur l'identifiant du webhook, puis votre action sur la branche « True ».

Étape 4 - Testez-le de bout en bout

Déclenchez un événement réel dans Paystack. Dans « Workflow Webhooks » -> « Historique », vous devriez voir l'appel avec le statut « Success ». Si la signature était incorrecte, vous obtiendrez à la place une entrée indiquant un échec avec le motif correspondant. La page Vérification des webhooks signés explique le fonctionnement de l'outil de vérification de signature, qui vous indique précisément quelle étape a échoué.

Une requête a été enregistrée dans l'historique avec ses en-têtes de requête, sa payload, son statut, sa durée et ses identifiants
Un événement « livré » dans « History » : le statut « Success » signifie que Shopify Flow l'a accepté.
La signature ne correspond pas▾

Dans cette commande : le secret (cause la plus courante : un espace supplémentaire ou une clé provenant d’un environnement incorrect), le fait que l’expéditeur utilise le secret d’un point de terminaison différent, et le fait que quelque chose entre Paystack et l’application réécrive le corps de la requête. Les signatures portent sur les octets bruts ; par conséquent, un proxy qui reformate le JSON les invalide. Le testeur de signature disponible sur la page du webhook affiche le texte exact qui a été signé.

Je reçois un code 401 à chaque requête▾

Vérifiez que l'authentification du webhook est configurée sur HMAC avec le fournisseur Paystack sélectionné, que le secret est renseigné et que Paystack envoie ses requêtes à l'URL exactement telle qu'elle apparaît dans l'application, y compris le code à la fin.

Rien n'apparaît dans l'historique▾

La requête n'est jamais parvenue à destination. Vérifiez à nouveau l'URL dans Paystack et consultez le journal de transmission de Paystack pour voir la réponse qu'il a reçue. Un code d'erreur 404 indique un webhook incorrect ou supprimé, tandis qu'un code 429 signifie que vous avez dépassé la limite d'appels de votre forfait - voir Forfaits et utilisation.

The workflow runs for inappropriate events▾

Chaque webhook de votre boutique déclenche le même déclencheur Flow. Ajoutez une condition sur l'identifiant du webhook comme première étape du workflow, ou affinez les événements que vous envoyez depuis Paystack.

Connexes