Come collegare Paystack a Shopify Flow

Paystack è una piattaforma di pagamento ampiamente utilizzata in tutta l’Africa. La piattaforma vi avvisa in merito ad addebiti, bonifici, abbonamenti e rimborsi. Workflow Webhooks trasforma tale notifica in un Trigger “Shopify Flow”, consentendo al vostro negozio di reagire di conseguenza: assegnare un Tag a un cliente, aggiungere una nota all’ordine, inviare un’e-mail interna, aggiornare un metacampo - qualsiasi operazione che Shopify Flow sia in grado di eseguire.

La presente guida illustra l’intero percorso: Paystack invia, Workflow Webhooks riceve e verifica, Shopify Flow esegue l’operazione; la firma HMAC di Paystack viene verificata in ogni richiesta, pertanto solo Paystack può avviare il Suo workflow.

Cosa potete realizzare

  • Tag un cliente di Shopify che ha effettuato il pagamento tramite il sistema di pagamento Paystack.
  • Si prega di aggiungere una nota all’ordine una volta completato il rimborso.
  • Si prega di inviare un’e-mail al personale qualora un addebito ricorrente relativo a un abbonamento non vada a buon fine.

Eventi tipici da inviare: charge.success, transfer.success, subscription.disable, refund.processed.

Prima di iniziare

  • Workflow Webhooks installato sul Suo negozio Shopify.
  • Shopify Flow installata, disponibile gratuitamente dall’App Store all’indirizzo Shopify.
  • Un account su Paystack con l'autorizzazione a creare webhook.

Fase 1 - Creare il webhook all'indirizzo Workflow Webhooks

  1. Acceda a Workflow Webhooks -> Webhook -> Crea webhook e assegni al webhook un nome che potrà riconoscere in Shopify Flow, ad esempio Paystack events.
  2. Nella sezione "Autenticazione", selezionare HMAC.
  3. Nella sezione “Fornitore di firma”, selezionate Paystack. L’app compila automaticamente i campi relativi all’intestazione, all’algoritmo, al payload firmato e alla finestra di replay: non è necessario configurare nient’altro.
  4. Per il momento lasci il campo "Segreto" vuoto e clicchi su "Salva". Copi l'URL del webhook visualizzato nella pagina.

Per informazioni sulle altre modalità di autenticazione, consulti il sito Autenticazione; per scegliere quali campi vengono trasmessi a Shopify Flow, consulti il sito Mappatura del payload e variabili di flusso.

Fase 2 - Aggiungere l'endpoint in Paystack

Nella dashboard di Paystack, apra Impostazioni -> Chiavi API e Webhook e imposti l'URL del Webhook sull'URL che ha copiato.

Come individuare il proprio segreto di firma Paystack

La Sua chiave segreta Paystack (sk_...). Paystack effettua la firma utilizzando la chiave dell'account, non una chiave segreta specifica per ogni webhook.

La documentazione ufficiale di Paystack sulle firme dei webhook, disponibile all'indirizzo, riporta il testo esatto e le schermate relative al Suo account.

Inserisca tale codice segreto nel campo "Secret" del webhook all'indirizzo Workflow Webhooks e salvi. Da quel momento in poi, ogni consegna Paystack verrà verificata prima di raggiungere Shopify Flow.

Cosa verifica questo codice

Cosa Valore
Intestazione della firma x-paystack-signature
Dove si trova la firma Il valore completo dell'intestazione
Cosa è stato firmato {body}
Firma HMAC-SHA512, codificato in esadecimale
Data e ora Non utilizzato da questo mittente
Protezione contro la riproduzione Nessuna - questo mittente non appone una firma sul timestamp, pertanto ogni firma valida rimane valida
Il segreto Da utilizzare come testo semplice. Incollatelo esattamente come lo presenta il mittente

Nel payload firmato, {body} rappresenta il corpo della richiesta non elaborato, byte per byte.

Una richiesta che non soddisfi uno qualsiasi di questi requisiti viene respinta con l'errore 401, viene registrata in Cronologia e risoluzione dei problemi e non avvia mai un workflow.

Fase 3 - Creare il workflow Shopify Flow

  1. In "Shopify Flow", crei un workflow e selezioni il trigger "Workflow Webhooks".
  2. Clicchi su “Registra eventi”, quindi invii un evento di prova da Paystack (oppure utilizzi l’opzione “Invia prova” su Workflow Webhooks) in modo che Shopify Flow possa apprendere la struttura dei Suoi dati.
  3. Ogni webhook di cui disponete attiva lo stesso trigger di Shopify Flow; pertanto, aggiungete una prima condizione relativa all’ID del webhook per limitare questo workflow esclusivamente a Paystack. L’ID è riportato nella pagina dedicata ai webhook.
  4. Aggiunga le sue azioni: contrassegni un cliente, aggiunga una nota, invii un’e-mail interna, aggiorni un metacampo.
Shopify Flow
In Shopify Flow, selezioni "Select a trigger", apra Workflow Webhooks e scelga "Webhook Trigger".
Condizione del flusso: l’ID del webhook è uguale all’ID di un webhook
Il primo passo di ogni workflow: una condizione relativa all’ID del webhook, in modo che il workflow venga eseguito solo per questo webhook.
Il workflow completo: trigger webhook, una condizione relativa all’ID del webhook, quindi invio di un’e-mail interna nel ramo “True”
Il workflow completato: trigger, condizione basata sull’ID del webhook, quindi la Sua azione nel ramo “True”.

Fase 4 - Eseguire un test end-to-end

Attivare un evento reale in Paystack. In “Workflow Webhooks” -> “History” dovrebbe essere visibile la richiesta con lo stato “Success”. Se la firma non era corretta, verrà invece visualizzata una voce con lo stato “Failed” e il motivo corrispondente; all’indirizzo Verifica dei webhook firmati è disponibile il tester di firma che indica esattamente quale fase non è andata a buon fine.

Un'invocazione aperta in History con le intestazioni della richiesta, il payload, lo stato, la durata e gli identificatori
Un evento "Consegnato" in Storia: lo stato "Successo" indica che Shopify Flow lo ha accettato.
La firma non corrisponde▾

In questo ordine: il segreto (la causa più comune è uno spazio in più o una chiave proveniente da un ambiente errato), se il mittente sta utilizzando il segreto di un endpoint diverso e se qualcosa tra Paystack e l’app riscrive il corpo del messaggio. Le firme coprono i byte grezzi, pertanto un proxy che riformatta il JSON le invalida. Il tester di firme presente nella pagina del webhook mostra il testo esatto che è stato firmato.

Ricevo un errore 401 ad ogni richiesta▾

Verifichi che l'autenticazione del webhook sia impostata su HMAC con il provider Paystack selezionato, che il codice segreto sia stato inserito e che Paystack invii i dati all'URL esattamente come indicato dall'app, compreso il codice alla fine.

Nella cronologia non compare nulla▾

La richiesta non è mai arrivata. Verifichi nuovamente l’URL in Paystack e consulti il registro di consegna di Paystack per verificare la risposta ricevuta. Un errore 404 indica un webhook errato o eliminato, mentre un errore 429 significa che ha superato il limite di invocazioni previsto dal Suo piano; si veda Piani e utilizzo.

Il workflow viene eseguito per eventi non corretti▾

Ogni webhook del Suo negozio attiva lo stesso trigger di Shopify Flow. Aggiunga una condizione relativa all**’ID** del webhook come primo passo del workflow, oppure restringa la selezione degli eventi che invia da Paystack.

Correlati