VibeFox Flutterwave for OpenCart — Guida
Requisiti
OpenCart: 3.0.x (testato su 3.0.5.0) o 4.0.2 e successivi (testato su 4.1.0.3).
PHP: 8.0 o successiva.
Account Flutterwave: ti servono le chiavi segrete del tuo account Flutterwave, dalla dashboard di Flutterwave alla voce Settings, API keys: FLWSECK_TEST-… per la modalità test e FLWSECK-… per la modalità live. Vengono usate solo le chiavi segrete. Le chiavi pubbliche e di crittografia non servono. Inoltre configuri un webhook con un hash segreto a tua scelta (vedi Configurazione).
Valute: l'ordine viene sempre addebitato nella valuta dell'ordine. L'estensione non limita da sola paesi o valute; Flutterwave mostra un errore se il tuo account non supporta la valuta. Puoi limitare dove viene offerto Flutterwave con Geo Zone e Total.
Chiave di licenza VibeFox: si acquista su vibefox.net. Una chiave funziona su un solo dominio.
Installazione
Il download è un unico file zip con i pacchetti per entrambe le versioni di OpenCart. Decomprimilo sul tuo computer. Contiene README.txt, il pacchetto per OpenCart 3 wcp_flutterwave_payment-oc3-(version).ocmod.zip e il pacchetto per OpenCart 4 wcp_flutterwave_payment.ocmod.zip. Installa solo il pacchetto per la tua versione di OpenCart. La chiave di licenza è la stessa per entrambe le versioni.
OpenCart 3
1. Nell'amministrazione vai su Extensions > Installer, clicca su Upload e scegli il file wcp_flutterwave_payment-oc3-(version).ocmod.zip. L'estensione non contiene modifiche OCMOD, quindi Extensions > Modifications non deve essere aggiornato. In alternativa all'installer, puoi copiare il contenuto della cartella upload di questo pacchetto nella cartella principale del negozio.
2. Vai su Extensions > Extensions e scegli il tipo Payments. Trova VibeFox Flutterwave Payment e clicca su Install (il pulsante verde +). L'utente amministratore deve avere il permesso di modificare l'elenco delle estensioni di pagamento.
3. Clicca su Edit (il pulsante con la matita) per aprire la pagina delle impostazioni. Incolla la tua chiave di licenza VibeFox in License key, nel blocco della licenza in alto nella pagina, e clicca su Activate (vedi Chiave di licenza).
4. Inserisci le tue chiavi segrete, configura il webhook nella dashboard di Flutterwave e inserisci lo stesso hash segreto nell'estensione (vedi Configurazione).
5. Attiva Enable/Disable e clicca su Save. Prova un pagamento in modalità test, poi attiva Live mode.
OpenCart 4
1. Nell'amministrazione vai su Extensions > Installer, clicca su Upload e scegli il file wcp_flutterwave_payment.ocmod.zip. Non rinominare il file: OpenCart 4 ricava il codice dell'estensione dal nome del file, e un pacchetto rinominato non funziona.
2. Il pacchetto compare nell'elenco delle estensioni installate nella stessa pagina. Clicca accanto ad esso su Install (il pulsante verde +).
3. Vai su Extensions > Extensions e scegli il tipo Payments. Trova VibeFox Flutterwave Payment, clicca su Install (il pulsante verde +), poi su Edit (il pulsante con la matita).
4. Inserisci la chiave di licenza, le chiavi segrete e il webhook come nei passaggi da 3 a 5 per OpenCart 3. La pagina delle impostazioni e i suoi campi sono uguali nelle due versioni. Cambia solo l'URL del webhook (vedi Webhook).
Una nuova installazione parte con il metodo di pagamento disattivato e in modalità test.
Configurazione
Tutte le impostazioni si trovano nella pagina dell'estensione: Extensions > Extensions > Payments > VibeFox Flutterwave Payment > Edit. Le sezioni sono elencate a sinistra; il pulsante Save sotto l'elenco salva l'intera pagina. Sopra le impostazioni la pagina mostra Live mode: real payments are accepted. oppure Test mode: no real money is charged. Ti avvisa quando la chiave segreta della modalità attuale è vuota, quando nel campo della chiave live in modalità live c'è una chiave di test (FLWSECK_TEST-…), oppure quando nel campo della chiave di test in modalità test c'è una chiave live (FLWSECK-…); in tal caso il metodo di pagamento viene nascosto al checkout finché non si corregge. Ti avvisa anche quando non è impostato alcun hash segreto del webhook: i webhook vengono allora rifiutati e i pagamenti vengono confermati solo quando il cliente torna nel tuo negozio. Senza il permesso di modificare l'estensione, la pagina mostra le impostazioni ma non può salvarle.
Al salvataggio, Title deve avere da 1 a 128 caratteri, Sort Order deve essere vuoto o un numero intero, Total deve essere vuoto o un numero pari o superiore a 0, e la zona geografica e gli stati dell'ordine selezionati devono esistere. Altrimenti non viene salvato nulla e la pagina indica cosa correggere. I problemi con le chiavi non impediscono il salvataggio.
Flutterwave
Enable/Disable: Enable Flutterwave Payment attiva o disattiva il metodo di pagamento. Predefinito: disattivato.
Title: il titolo del metodo di pagamento che i clienti vedono al checkout. È anche il nome del metodo di pagamento salvato nell'ordine. Predefinito: Flutterwave. Obbligatorio, fino a 128 caratteri.
Description: la descrizione del metodo di pagamento mostrata nel passaggio Confirm Order, sopra il pulsante di conferma. Predefinito: Pay securely via Card, Bank Transfer, USSD, Mobile Money via Flutterwave.
Sort Order: la posizione di Flutterwave tra i metodi di pagamento al checkout. Lascia vuoto oppure inserisci un numero intero.
Geo Zone: offri Flutterwave solo per gli indirizzi di pagamento della zona geografica selezionata. Predefinito: All zones. Le zone geografiche si configurano in System > Localisation > Geo Zones.
Total: il totale del carrello, nella valuta predefinita del negozio, che un ordine deve raggiungere prima che venga offerto Flutterwave. Lascia vuoto per offrire Flutterwave con qualunque totale.
Chiavi API
Copia le chiavi segrete dalla dashboard di Flutterwave alla voce Settings, API keys (la sezione contiene un link). La modalità test e la modalità live hanno chiavi diverse.
Live mode: accetta pagamenti reali. Disattivala per la modalità test. La modalità test usa la chiave segreta di test e non viene addebitato denaro reale. La modalità live usa la chiave segreta live. Predefinito: disattivato (modalità test). Finché la modalità test è attiva, i clienti vedono TEST MODE - no real payments will be processed. al passaggio Confirm Order.
Test Secret Key: la tua chiave segreta di test di Flutterwave (FLWSECK_TEST-...).
Live Secret Key: la tua chiave segreta live di Flutterwave (FLWSECK-...).
Le chiavi salvate e l'hash segreto non vengono mai mostrati di nuovo. Il campo resta vuoto e mostra Saved — leave empty to keep it. Inserisci un nuovo valore solo per cambiarlo. Per rimuovere un valore salvato, seleziona Clear the saved value sotto il campo e clicca su Save.
Webhook
Il webhook conferma i pagamenti anche quando il cliente non torna nel tuo negozio. Nella dashboard di Flutterwave, alla voce Settings, Webhooks, inserisci l'URL mostrato in Webhook URL di questa sezione e un hash segreto a tua scelta, sia in modalità test sia in modalità live. Su OpenCart 3 l'URL ha questo aspetto: https://your-store/index.php?route=extension/payment/wcp_flutterwave_payment/webhook, su OpenCart 4 così: https://your-store/index.php?route=extension/wcp_flutterwave_payment/payment/wcp_flutterwave_payment.webhook. Viene costruito a partire dall'indirizzo del tuo negozio. Deve essere raggiungibile da internet tramite HTTPS. Copia l'URL esattamente come lo mostrano le impostazioni. L'estensione reagisce a questo evento:
Gli altri eventi vengono ignorati.
Secret Hash: l'hash segreto del webhook. Deve corrispondere al valore nelle impostazioni del webhook della tua dashboard di Flutterwave. Flutterwave lo invia con ogni webhook, e lo stesso valore viene usato per la modalità test e la modalità live. I webhook senza un hash segreto valido vengono rifiutati. Senza il webhook, un pagamento viene confermato solo quando il cliente torna nel tuo negozio.
Pagamento
Payment Options: metodi di pagamento separati da virgole da mostrare nella pagina di Flutterwave, per esempio card, banktransfer, ussd, mobilemoney. Lascia vuoto per mostrare tutti i metodi attivi sul tuo account. L'elenco viene ripulito al salvataggio (minuscole, senza duplicati).
Autocomplete Orders: gli ordini pagati ricevono il Complete Order Status invece del Paid Order Status. Predefinito: disattivato.
Ordini
OpenCart crea l'ordine nel passaggio Confirm Order senza stato (un ordine mancante). Riceve uno stato solo dopo che Flutterwave ha confermato il pagamento tramite l'API. Ogni campo qui sotto elenca i tuoi stati ordine di OpenCart.
Paid Order Status: lo stato dopo un pagamento confermato. Predefinito: In lavorazione.
Complete Order Status: lo stato dopo un pagamento confermato quando Autocomplete Orders è attivo. Predefinito: Completato.
Awaiting Payment Status: il cliente è tornato mentre il pagamento è ancora in attesa presso Flutterwave (bonifico bancario, USSD, mobile money). L'ordine mantiene questo stato finché il webhook non lo conferma. Predefinito: In attesa.
On Hold (Review) Status: i pagamenti il cui importo o la cui valuta non corrispondono all'ordine, oppure che arrivano dopo l'annullamento dell'ordine, ricevono questo stato e una nota che ne spiega il motivo. Predefinito: In attesa, perché OpenCart non ha lo stato On hold. Puoi creare un tuo stato in System > Localisation > Order Statuses e selezionarlo qui.
Failed Status: un pagamento in attesa di un ordine in attesa è fallito presso Flutterwave. Predefinito: Fallito.
Refunded Status: impostato dopo che il pagamento è stato rimborsato interamente dalla pagina dell'ordine. Predefinito: Rimborsato.
Avanzate
Debug log: registra gli eventi dell'API di Flutterwave per il debug in flwv_debug.log.php, nella cartella dei log di OpenCart (storage/logs). Il file non può essere aperto dal web e, al raggiungimento di 5 MB, viene spostato in flwv_debug.old.log.php. Errori e avvisi vengono sempre registrati. Chiavi, hash segreto e dati dei clienti non vengono mai registrati. Predefinito: disattivato.
Log: mostra la dimensione e le ultime voci del log. Clicca su Clear log per svuotarlo.
Delete data on uninstall: alla disinstallazione dell'estensione rimuove le sue impostazioni e i log. I dati di pagamento salvati sugli ordini vengono sempre conservati. Predefinito: disattivato.
Importa / Esporta
Export: Download JSON salva le impostazioni in un file JSON. Le chiavi segrete e l'hash segreto non vengono esportati.
Import: incolla un JSON esportato in precedenza e clicca su Import per ripristinare le impostazioni. Le chiavi salvate e l'hash segreto vengono mantenuti.
Checkout
Nel passaggio Payment Method il cliente sceglie il metodo di pagamento (per impostazione predefinita Flutterwave). Nel passaggio Confirm Order il cliente vede la tua descrizione e la nota You will be redirected to the Flutterwave checkout page. OpenCart crea l'ordine in questo passaggio, ancora senza stato. Su OpenCart 4 il cliente sceglie il metodo di pagamento con il pulsante Choose del blocco del metodo di pagamento, nella finestra Payment method options, e clicca su Confirm Order in fondo alla pagina di checkout. Quando il cliente clicca su Confirm Order, l'estensione crea un pagamento Flutterwave per il totale dell'ordine nella valuta dell'ordine, con l'indirizzo e-mail del cliente, il telefono e il nome dell'indirizzo di pagamento, il nome e il logo del tuo negozio, e Payment for order seguito dal numero dell'ordine, e reindirizza il cliente alla pagina di checkout di Flutterwave. È richiesto un indirizzo e-mail valido. Lì il cliente paga con uno dei metodi attivi sul tuo account (o con quelli elencati in Payment Options).
Dopo il pagamento il cliente torna nel tuo negozio. L'ordine viene segnato come pagato solo quando Flutterwave lo conferma: tramite il webhook oppure tramite un controllo lato server quando il cliente torna. Quindi l'ordine riceve il suo stato nel modo standard di OpenCart, con le consuete e-mail dell'ordine e l'aggiornamento del magazzino, e il cliente vede la pagina di successo dell'ordine di OpenCart. Se il pagamento è ancora in attesa, per esempio un bonifico bancario, un pagamento USSD o mobile money, l'ordine riceve Awaiting Payment Status e la pagina mostra anche Your payment is being confirmed by Flutterwave. You will receive an e-mail as soon as it is confirmed. Quando Flutterwave conferma il pagamento, l'ordine passa allo stato pagato e il cliente riceve una e-mail. Se l'ordine è stato messo in attesa di verifica, per esempio perché l'importo pagato non corrisponde all'ordine, la pagina mostra Your payment was received and your order is being reviewed. We will contact you if anything is needed. Se un pagamento in attesa fallisce successivamente e il cliente torna all'ordine, la pagina mostra Your Flutterwave payment was not completed. Please contact us about this order.
Se Flutterwave non è raggiungibile quando il cliente torna, una pagina Payment confirmation indica Your payment is being confirmed by Flutterwave. Your order will be confirmed as soon as Flutterwave confirms it — please do not pay again. con i pulsanti Check again e Back to checkout. Il webhook imposta lo stato dell'ordine non appena arriva.
Se il pagamento viene rifiutato, il cliente torna al checkout con Your payment was declined. You can try again or choose another payment method. Se il cliente annulla nella pagina di Flutterwave, il messaggio è Payment was cancelled. You can try again or choose another payment method. Se il pagamento non è stato completato, il messaggio è The payment was not completed. You can try again or choose another payment method. Se il pagamento non ha potuto essere verificato, il messaggio è Payment verification failed. Please contact support. L'ordine resta senza stato e il carrello viene conservato, così il cliente può pagare di nuovo. Su OpenCart 4 questi messaggi vengono mostrati sopra la pagina di checkout.
OpenCart 3 crea un nuovo ordine ogni volta che viene mostrato il passaggio Confirm Order; OpenCart 4 aggiorna l'ordine del checkout, quindi un nuovo tentativo paga lo stesso ordine. Ogni tentativo riceve un proprio riferimento. Prima di un nuovo pagamento, i pagamenti aperti e in attesa di questo ordine e di altri ordini dello stesso carrello delle ultime 24 ore vengono verificati presso Flutterwave. Se uno di questi risulta pagato, conferma il suo ordine e il cliente va alla pagina di successo invece di pagare di nuovo. Se un altro ordine dello stesso carrello è già stato pagato con Flutterwave, non viene avviato nemmeno un nuovo pagamento. Un vecchio link di pagamento che viene pagato più tardi viene comunque accettato. Se lo stesso carrello viene pagato due volte, per esempio in due schede del browser, solo il primo pagamento assegna uno stato al suo ordine: l'altro ordine resta senza stato, e l'ordine pagato riceve una nota che ti chiede di rimborsare il secondo pagamento nella dashboard di Flutterwave.
OpenCart 4 mantiene l'ordine nel checkout finché non viene mostrata la pagina di successo. Se nel frattempo quell'ordine è stato chiuso senza un pagamento (per esempio perché il suo pagamento in attesa è fallito o l'hai annullato), il cliente torna al checkout con il messaggio sul pagamento rifiutato, e il successivo Confirm Order paga un nuovo ordine del carrello. Se hai chiuso l'ordine dopo che era stato pagato, il messaggio è This order can no longer be paid (it was closed by the store). Please confirm your order again. Se quell'ordine è già pagato ma il carrello è cambiato da allora, compresa una nuova quantità, il messaggio è Your previous order is already paid. Please confirm the order again: the cart will be paid with a new order. Un ordine pagato non viene mai mostrato come pagato per un carrello diverso.
Se Flutterwave non riesce ad avviare il pagamento, il cliente resta al passaggio Confirm Order con un breve messaggio, per esempio Flutterwave is temporarily unavailable. Please try again in a moment or choose another payment method. Il motivo tecnico viene scritto nel log.
Il webhook e l'URL di ritorno funzionano anche quando il negozio è in modalità manutenzione, perché OpenCart 3 lascia passare le richieste delle estensioni di pagamento, e su OpenCart 4 l'estensione aggiunge per esse un'azione di avvio (startup action).
L'estensione accetta solo pagamenti singoli. Non ha un checkout integrato o in modale sul tuo sito, né carte salvate, abbonamenti, pagamenti suddivisi o piani di pagamento. I link di pagamento ospitati non possono essere annullati tramite l'API di Flutterwave, quindi un vecchio link può ancora essere pagato.
Ordini e rimborsi
Stati dell'ordine
Senza stato (missing order): il cliente è stato inviato a Flutterwave e non ha pagato, il pagamento è stato rifiutato o annullato, oppure Flutterwave non ha ancora confermato il pagamento. In Sales > Orders questi ordini vengono mostrati solo con il filtro Order Status impostato su Missing Orders.
Paid Order Status (predefinito In lavorazione) o Complete Order Status (predefinito Completato): il pagamento è stato confermato. Si usa Complete Order Status quando Autocomplete Orders è attivo. Una nota mostra l'importo, il metodo di pagamento, il riferimento Flutterwave, la transazione e la modalità.
Awaiting Payment Status (predefinito In attesa): il cliente è tornato mentre il pagamento era ancora in attesa presso Flutterwave. L'ordine passa allo stato pagato quando Flutterwave conferma il pagamento.
On Hold (Review) Status (predefinito In attesa): l'importo o la valuta verificati non corrispondevano all'ordine, oppure il pagamento è arrivato dopo che all'ordine era stato assegnato uno stato senza pagamento, per esempio Annullato. Vengono registrati l'importo e la valuta effettivamente pagati, e la nota lo spiega. Evadi l'ordine o rimborsa il pagamento. Se l'ordine aveva già un altro stato di lavorazione, viene aggiunta solo una nota.
Failed Status (predefinito Fallito): Flutterwave ha segnalato che l'ultimo tentativo di pagamento di un ordine in attesa è fallito o è stato annullato. La nota mostra il motivo. I tentativi precedenti e gli ordini pagati non vengono modificati.
Refunded Status (predefinito Rimborsato): il pagamento è stato rimborsato interamente tramite l'estensione.
Se arriva un secondo pagamento per un ordine già pagato, l'ordine non viene modificato. Una nota ti chiede di rimborsare il duplicato nella dashboard di Flutterwave.
Le note sono voci della History dell'ordine che il cliente non vede.
Scheda VibeFox Flutterwave Payment
In Sales > Orders apri un ordine pagato con Flutterwave. In fondo alla pagina dell'ordine, accanto a History e Additional, la scheda VibeFox Flutterwave Payment mostra la Transaction reference, la Mode (Test o Live), lo Status del pagamento, il Transaction ID, la Flutterwave reference, il Payment type, gli importi Paid / refunded, il modulo di rimborso, lo storico dei rimborsi e le Flutterwave notes dell'ordine. La scheda viene mostrata agli utenti che hanno accesso all'estensione.
Rimborsi
Nella scheda inserisci l'Amount (viene compilato l'importo non ancora rimborsato), facoltativamente un Reason (optional), e clicca su Refund via Flutterwave. Conferma la domanda Refund this amount through Flutterwave? This cannot be undone. Sono supportati rimborsi totali e parziali. Ti serve il permesso di modificare l'estensione (si imposta in System > Users > User Groups). I rimborsi vengono effettuati nell'importo e nella valuta addebitati da Flutterwave, quindi dopo una differenza di importo o di valuta puoi rimborsare fino a quanto il cliente ha effettivamente pagato, non il totale dell'ordine. Il rimborso viene inviato con la chiave segreta della modalità in cui è stato effettuato il pagamento (test o live), quindi quella chiave deve essere impostata. Se Flutterwave rifiuta il rimborso, la scheda mostra l'errore e non viene registrato alcun rimborso. Un rimborso riuscito viene aggiunto allo storico dei rimborsi e alle note, con l'ID del rimborso e lo stato (completato, oppure avviato con lo stato indicato da Flutterwave). Un rimborso totale imposta l'ordine sul Refunded Status senza notificare il cliente e senza riportare i prodotti in magazzino, come una modifica manuale dello stato. Un rimborso parziale non cambia lo stato. I rimborsi sono disponibili una volta che Flutterwave ha confermato il pagamento.
I resi di prodotti in Sales > Returns non restituiscono denaro tramite Flutterwave. I rimborsi effettuati nella dashboard di Flutterwave non vengono sincronizzati di nuovo in OpenCart. Se necessario, aggiorna manualmente lo stato dell'ordine.
Chiave di licenza
L'estensione funziona con una chiave di licenza VibeFox di vibefox.net. Il blocco della licenza License — VibeFox Flutterwave Payment è il primo blocco di Extensions > Extensions > Payments > VibeFox Flutterwave Payment > Edit, sopra le impostazioni. Incolla la chiave in License key e clicca su Activate. Dopodiché il blocco mostra la chiave mascherata, lo stato (per esempio la data fino alla quale la licenza è attiva e il tuo dominio) e i pulsanti Check now per verificare di nuovo lo stato, Change key per inserire un'altra chiave e Remove key per rimuovere la chiave da questo negozio. Più sotto ci sono la riga Product: opencart-payment-flutterwave e il link Manage licenses and domains in your account, che apre il tuo account su vibefox.net. Solo gli utenti amministratori con il permesso Modify sull'estensione possono cambiare la chiave. I testi del blocco seguono la lingua dell'amministrazione (sono inclusi inglese e russo).
Se la chiave non viene accettata, il blocco indica il motivo, per esempio Key not found, This key belongs to another product, Domain limit reached oppure License expired on seguito da una data. Dopo aver cambiato l'indirizzo del negozio, o dopo aver liberato uno slot di dominio nel tuo account, clicca su Check now. Se il server delle licenze non è raggiungibile, l'estensione continua a funzionare con l'ultimo stato noto.
Una chiave funziona su un solo dominio: l'indirizzo del negozio della configurazione di OpenCart. Rimuovere la chiave dal negozio non libera il suo slot di dominio. Liberalo nel tuo account su vibefox.net.
Senza una chiave attiva, Flutterwave non viene mostrato ai clienti al checkout. Se un pagamento viene avviato comunque, il cliente vede This payment method is not available. Please choose another one. Un utente amministratore che ha effettuato l'accesso all'amministrazione nello stesso browser continua a vedere il metodo di pagamento nel negozio, contrassegnato come (unlicensed — visible to admins only), così puoi configurare e testare l'estensione prima di acquistare una chiave. Su OpenCart 4 questa anteprima non è disponibile: il negozio non vede l'accesso dell'amministratore, quindi senza una chiave attiva il metodo di pagamento è nascosto a tutti. Dopo aver aperto una volta la pagina Edit, nella Dashboard dell'amministrazione compare un promemoria. Chiudilo con × per nasconderlo per 7 giorni. Gli ordini esistenti non sono interessati: i pagamenti già avviati vengono comunque confermati e i rimborsi funzionano.
Quando una licenza scade, l'estensione continua a funzionare, ma aggiornamenti e supporto richiedono il rinnovo. Lo stato viene verificato di nuovo automaticamente quando apri la Dashboard dell'amministrazione o la pagina Edit: una volta al giorno nei primi 14 giorni dopo l'inserimento della chiave, poi una volta alla settimana. Non serve alcun cron job. La disinstallazione dell'estensione rimuove sempre la chiave di licenza e lo stato della licenza.
Risoluzione dei problemi
Flutterwave non compare al checkout: verifica che la licenza sia attiva, che Enable/Disable sia attivo e che la chiave segreta della modalità attuale sia compilata e corrisponda alla modalità: una chiave di test (FLWSECK_TEST-…) in modalità test, una chiave live (FLWSECK-…) in modalità live. La pagina delle impostazioni mostra un avviso in caso contrario. Controlla anche che l'indirizzo di pagamento rientri nella Geo Zone selezionata e che l'ordine raggiunga il Total impostato nelle impostazioni.
Il pagamento è andato a buon fine, ma l'ordine resta senza stato: il webhook non funziona. Nella dashboard di Flutterwave verifica che l'URL del webhook sia esattamente quello mostrato in Webhook URL, nella modalità che usi (test o live), e che il suo hash segreto coincida con Secret Hash nell'estensione. I bonifici bancari, i pagamenti USSD e mobile money in attesa restano in attesa finché Flutterwave non li conferma. L'ordine riceve il suo stato anche quando il cliente torna nel negozio dopo il pagamento. Attiva Debug log e controlla il campo Log nella pagina dell'estensione.
Il webhook risponde Invalid hash o Secret hash not configured: l'hash segreto nella dashboard di Flutterwave è diverso da quello nell'estensione, oppure l'estensione non ne ha. Inserisci lo stesso valore in entrambi i punti.
Il webhook risponde Verification failed, Busy, retry later oppure Order could not be updated, retry later: Flutterwave non è stato raggiunto per verificare il pagamento, la transazione non è ancora visibile, l'ordine era in elaborazione da un'altra richiesta, oppure non è stato possibile impostarne lo stato. Flutterwave ripete il webhook. Il log mostra il motivo.
L'URL del webhook mostra Empty body nel browser: è normale. L'URL accetta solo webhook da Flutterwave.
Il cliente vede Payment gateway is not properly configured: la chiave segreta della modalità attuale manca oppure appartiene all'altra modalità.
Il cliente vede This payment method is not available: la sessione di checkout non corrisponde più all'ordine, oppure il metodo di pagamento nel frattempo è stato disattivato. Il cliente ricarica il checkout.
Il cliente vede We could not match this payment to an order: il link di ritorno non appartiene a un pagamento di questo ordine. Se il cliente è stato addebitato, cerca il pagamento nella dashboard di Flutterwave.
Flutterwave mostra un errore nella sua pagina, oppure il cliente vede Flutterwave could not start the payment: il tuo account Flutterwave potrebbe non supportare la valuta dell'ordine o le opzioni di pagamento selezionate.
L'ordine è nello stato in attesa dopo il pagamento: leggi le note nella scheda VibeFox Flutterwave Payment (vedi Stati dell'ordine), poi evadi l'ordine o rimborsa il pagamento.
Nella scheda non c'è il modulo di rimborso: la scheda indica il motivo: il pagamento non è ancora confermato, è rimborsato interamente, il tuo gruppo utenti non ha il permesso di modificare l'estensione, oppure la chiave segreta della modalità del pagamento non è configurata.
Il rimborso non riesce con un messaggio sulla modalità: il pagamento è stato effettuato in modalità test o live, e la chiave segreta di quella modalità non è configurata. Inseriscila e riprova.
Il rimborso risponde Another operation on this payment is running: in quel momento era in corso l'invio di un altro rimborso dello stesso ordine. Attendi un momento, controlla lo storico dei rimborsi e riprova se necessario.
Per gli sviluppatori, l'estensione attiva gli eventi di OpenCart flwv_payment_request (dati inviati a Flutterwave) e flwv_currency_decimals (precisione della valuta).
Disinstallazione
Vai su Extensions > Extensions, scegli il tipo Payments e clicca su Uninstall (il pulsante rosso −) accanto a VibeFox Flutterwave Payment. La chiave di licenza e lo stato della licenza di questa estensione vengono sempre rimossi. OpenCart rimuove sempre le proprie impostazioni dell'estensione: Enable/Disable, Sort Order, Geo Zone, Total e gli stati degli ordini della sezione Orders, che al reinstallare tornano ai valori predefiniti. Viene rimosso anche l'evento OpenCart dell'estensione (su OpenCart 4 i suoi eventi e la sua azione di avvio, che lascia passare il webhook e l'URL di ritorno in modalità manutenzione). Se Delete data on uninstall è attiva, vengono rimosse le altre impostazioni (titolo, descrizione, modalità, chiavi, hash segreto, opzioni di pagamento, completamento automatico, interruttore del debug log) e il log. Se è disattiva, vengono conservate per una reinstallazione successiva. I record dei pagamenti e dei rimborsi Flutterwave vengono sempre conservati, quindi gli ordini pagati in precedenza possono essere rimborsati anche dopo una reinstallazione. Gli ordini esistenti mantengono le proprie note di pagamento.
Su OpenCart 4, per rimuovere anche i file dell'estensione, vai su Extensions > Installer dopo la disinstallazione, clicca su Uninstall (il pulsante arancione −) accanto a VibeFox Flutterwave Payment nell'elenco delle estensioni installate, poi su Delete (il pulsante rosso con il cestino) per rimuovere il pacchetto caricato.
Flutterwave è un marchio del rispettivo proprietario. Questa estensione non è affiliata a Flutterwave né approvata da Flutterwave.
