VibeFox Braintree for OpenCart — Guida
Requisiti
OpenCart: 3.0.x (testato con 3.0.5.0) o 4.0.2 e successivi (testato con 4.1.0.3).
PHP: 8.0 o successivo.
Account Braintree: ti servono il Merchant ID, la Public Key e la Private Key del tuo account Braintree. Si trovano nel Braintree Control Panel (sandbox: sandbox.braintreegateway.com, live: www.braintreegateway.com), sotto l'icona dell'ingranaggio, API, API Keys. Gli account sandbox e live hanno chiavi diverse. Il 3-D Secure deve essere attivo per il tuo account commerciante Braintree, a meno che tu non imposti 3-D Secure su Disabled. Non serve alcun webhook: i pagamenti con carta vengono confermati subito.
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_braintree_gateway-oc3-(versione).ocmod.zip e il pacchetto per OpenCart 4 wcp_braintree_gateway.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. Nel pannello di amministrazione vai su Extensions > Installer, fai clic su Upload e scegli il file wcp_braintree_gateway-oc3-(versione).ocmod.zip. L'estensione non contiene modifiche OCMOD, quindi non è necessario aggiornare Extensions > Modifications. Invece dell'installer puoi anche copiare il contenuto della cartella upload di questo pacchetto nella cartella radice del tuo negozio.
2. Vai su Extensions > Extensions, scegli il tipo Payments, trova VibeFox Braintree Gateway e fai clic su Install (il pulsante verde +). Il tuo utente amministratore deve avere il permesso di modificare l'elenco delle estensioni di pagamento.
3. Fai clic 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 cima alla pagina, e fai clic su Activate (vedi la sezione Chiave di licenza).
4. Copia il Merchant ID, la Public Key e la Private Key dal Braintree Control Panel nei campi sandbox o live.
5. Attiva Enable/Disable e fai clic su Save. Lascia attivo Sandbox mode ed effettua un ordine di prova con una carta di test sandbox di Braintree, per esempio 4111 1111 1111 1111. Poi inserisci le credenziali live e disattiva Sandbox mode per accettare pagamenti reali.
OpenCart 4
1. Nel pannello di amministrazione vai su Extensions > Installer, fai clic su Upload e scegli il file wcp_braintree_gateway.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. Fai clic su Install (il pulsante verde +) accanto ad esso.
3. Vai su Extensions > Extensions e scegli il tipo Payments. Trova VibeFox Braintree Gateway, fai clic su Install (il pulsante verde +), poi su Edit (il pulsante a forma di matita).
4. Inserisci la chiave di licenza e le credenziali Braintree e prova il pagamento come nei passaggi da 3 a 5 per OpenCart 3. La pagina delle impostazioni e i suoi campi sono uguali in entrambe le versioni.
Una nuova installazione parte con il metodo di pagamento disattivato e la modalità sandbox attiva.
Configurazione
Tutte le impostazioni si trovano nella pagina dell'estensione: Extensions > Extensions > Payments > VibeFox Braintree Gateway > Edit. Le sezioni sono elencate a sinistra; il pulsante Save sotto l'elenco salva l'intera pagina. Quando il metodo di pagamento è attivo ma manca il Merchant ID, la Public Key o la Private Key dell'ambiente selezionato, la pagina ti avvisa che il metodo di pagamento viene nascosto al checkout finché non li inserisci. Mentre la modalità sandbox è attiva, la pagina mostra Sandbox mode is on: test payments, no real money. 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 un numero intero e Total un numero pari o maggiore di 0. Se un campo contiene un errore, non viene salvato nulla e la pagina indica il campo.
Braintree
Enable/Disable: attiva o disattiva i pagamenti con carta Braintree. Il metodo di pagamento viene nascosto al checkout finché non sono compilati Merchant ID, Public Key e Private Key dell'ambiente selezionato. Predefinito: disattivato.
Title: il nome del metodo di pagamento che i clienti vedono al checkout. È anche il nome del metodo di pagamento salvato nell'ordine. Predefinito: Credit / debit card. Obbligatorio, fino a 128 caratteri.
Description: il testo mostrato al cliente nel passaggio Confirm Order, sopra il modulo della carta. Predefinito: Pay securely with your credit or debit card via Braintree.
Sort Order: la posizione di Braintree tra i metodi di pagamento al checkout. Lascialo vuoto o inserisci un numero intero.
Geo Zone: offri Braintree solo per gli indirizzi di pagamento nella zona geografica selezionata. Predefinito: All zones. Le zone geografiche si configurano in System > Localisation > Geo Zones.
Total: il totale del checkout, nella valuta predefinita del negozio, che un ordine deve raggiungere prima che venga offerto Braintree. Lascialo vuoto per offrire Braintree per qualsiasi totale.
Credenziali API
Accedi al Braintree Control Panel (sandbox o live, collegati in questa sezione), fai clic sull'icona dell'ingranaggio, poi su API e API Keys. Lì sono elencate le chiavi pubblica e privata, e il Merchant ID è mostrato nella stessa pagina. La pagina mostra solo i campi delle credenziali dell'ambiente selezionato; entrambi i set restano salvati.
Sandbox mode: usa la sandbox di Braintree (pagamenti di prova, nessun denaro reale). Predefinito: attivo. Disattivalo per accettare pagamenti reali con le credenziali live. Rimborsi, acquisizioni e annullamenti usano sempre l'ambiente in cui l'ordine è stato pagato. Quando è attivo, i clienti vedono SANDBOX / TEST MODE — no real money is charged. al passaggio Confirm Order.
Sandbox Merchant ID e Live Merchant ID: il Merchant ID dell'account sandbox o live.
Sandbox Public Key e Live Public Key: la chiave pubblica di quell'account.
Sandbox Private Key e Live Private Key: la chiave privata di quell'account, salvata esattamente come inserita. Le chiavi private salvate non vengono mai mostrate di nuovo. Il campo resta vuoto e mostra Saved — leave empty to keep it. Inserisci un nuovo valore solo se vuoi cambiarlo. Per rimuovere una chiave salvata, spunta Clear the saved key on save sotto il campo e fai clic su Save.
Sandbox merchant account ID(s) e Live merchant account ID(s): facoltativi. Braintree addebita nella valuta dell'account commerciante. Lascia vuoto per usare il tuo account commerciante predefinito, inserisci un ID (per esempio mystore_EUR) oppure uno per valuta: EUR=mystore_EUR, USD=mystore_USD. Se la valuta addebitata non corrisponde alla valuta dell'ordine, la transazione viene annullata automaticamente e il cliente non viene addebitato.
Pagamento
Transaction type: il modo in cui la carta viene addebitata.
3-D Secure: il 3-D Secure 2 (Strong Customer Authentication, SCA) è obbligatorio per la maggior parte dei pagamenti con carta nello SEE e nel Regno Unito. Deve essere attivo anche per il tuo account Braintree (contatta il supporto Braintree se i pagamenti falliscono con un errore di configurazione del 3-D Secure).
L'esito del 3-D Secure viene verificato sul server, non solo nel browser, prima dell'addebito sulla carta.
Ordini
OpenCart crea l'ordine al passaggio Confirm Order senza stato (un ordine mancante). Riceve uno stato solo dopo che Braintree ha accettato il pagamento con carta. Una carta rifiutata lascia l'ordine senza stato e il cliente resta al passaggio di conferma. Ogni campo seguente elenca gli stati degli ordini del tuo OpenCart.
Order Status After Payment: una vendita è stata acquisita, oppure un'autorizzazione è stata acquisita nella scheda dell'ordine. Predefinito: In lavorazione.
Authorized Status: solo autorizzazione: l'importo è riservato, non ancora pagato. Predefinito: In attesa di pagamento, perché OpenCart non ha lo stato In sospeso; la nota dell'ordine e la scheda dell'ordine lo spiegano. Puoi creare un tuo stato in System > Localisation > Order Statuses e selezionarlo qui.
On Hold (Review) Status: Braintree ha restituito uno stato della transazione inatteso, oppure l'importo o la valuta addebitati non corrispondevano e l'annullamento automatico non è riuscito. Una nota spiega cosa controllare. Predefinito: In attesa di pagamento.
Voided Status: l'autorizzazione è stata annullata nella scheda dell'ordine e l'importo trattenuto viene rilasciato. Predefinito: Annullato.
Refunded Status: il pagamento è stato rimborsato interamente, oppure annullato come rimborso totale prima del regolamento. I rimborsi parziali aggiungono solo una nota. Predefinito: Rimborsato.
Avanzate
Debug log: registra anche le chiamate API e i passaggi del pagamento in wc_btg_debug.log.php, nella cartella dei log di OpenCart (storage/logs). Il file non può essere aperto dal web. Gli errori vengono sempre registrati, anche quando questa opzione è disattivata. Il log non contiene mai chiavi API né dati di carte o clienti. Predefinito: disattivato.
Log: mostra la dimensione e le ultime voci del log. Fai clic su Clear log per svuotarlo.
Delete data on uninstall: se attivo, disinstallare l'estensione rimuove le impostazioni del gateway e il log. Le transazioni e i rimborsi Braintree restano sempre, quindi gli ordini pagati in precedenza possono essere ancora rimborsati, acquisiti o annullati dopo una reinstallazione. Predefinito: disattivato.
Importa / Esporta
Export: Download JSON salva le impostazioni in un file JSON. Le chiavi private non vengono esportate.
Import: incolla il JSON esportato in precedenza e fai clic su Import per ripristinare le impostazioni. Le chiavi private salvate vengono mantenute.
Checkout
Al passaggio Payment Method il cliente sceglie il metodo di pagamento (per impostazione predefinita Credit / debit card). Al passaggio Confirm Order il cliente vede la tua descrizione e il modulo della carta Braintree, caricato da Braintree nella lingua della vetrina. OpenCart crea l'ordine in questo passaggio, ancora senza stato. Quando il cliente fa clic su Confirm Order, il modulo verifica la carta e, con il 3-D Secure attivo, il cliente completa la verifica della propria banca; il totale dell'ordine, l'e-mail e l'indirizzo di fatturazione vengono passati al modulo. Solo un token monouso arriva al tuo negozio. 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. Il modulo della carta compare poi nel blocco di conferma in fondo alla pagina del checkout, sopra il pulsante Confirm Order. Se il negozio non chiede un indirizzo di pagamento (impostazione predefinita di OpenCart 4), il controllo 3-D Secure usa invece l'indirizzo di spedizione.
L'estensione addebita poi il token tramite l'API di Braintree per il totale dell'ordine nella valuta dell'ordine, usando il numero d'ordine di OpenCart come ID ordine in Braintree. Importo e valuta addebitati vengono verificati rispetto all'ordine. L'ordine riceve il suo stato solo quando Braintree accetta il pagamento, nel modo standard di OpenCart, con le consuete e-mail d'ordine e l'aggiornamento delle scorte. Il carrello viene svuotato e il cliente vede la pagina di conferma ordine di OpenCart.
Se il pagamento non riesce, l'ordine resta senza stato, all'ordine viene aggiunta una nota con il motivo e il cliente resta al passaggio Confirm Order con un messaggio, per esempio Your card was declined. Please use another card or contact your bank., 3-D Secure authentication failed. Please try again or use another card. oppure The card security code or billing address could not be verified. Please check your details and try again. Il cliente può inserire di nuovo la carta e riprovare subito. Se la valuta o l'importo addebitati non corrispondono all'ordine, la transazione viene annullata e il cliente vede This payment could not be processed in the currency of your order. Your card has not been charged. Please choose another payment method or contact us.
Un ordine non viene mai addebitato due volte. Un secondo invio mentre il pagamento è in corso mostra This order is already being paid. Please wait a moment and check your e-mail before trying again. Una nuova conferma di un ordine pagato porta direttamente alla pagina di successo; per un pagamento autorizzato mostra A payment for this order has already been received and is awaiting review. Se la carta è stata addebitata ma OpenCart non è riuscito a impostare lo stato dell'ordine, il cliente vede Your payment was received, but the order could not be completed automatically. Please contact us — do not pay again. Il tentativo successivo con lo stesso carrello imposta lo stato di quell'ordine dalla transazione salvata, senza addebitare di nuovo. OpenCart 3 crea un nuovo ordine ogni volta che viene mostrato il passaggio Confirm Order, quindi lo stesso carrello può avere più ordini (OpenCart 4 mantiene un ordine per il checkout e lo aggiorna, quindi dopo una carta rifiutata il cliente paga lo stesso ordine):appena uno di essi è pagato, un altro ordine dello stesso carrello non viene addebitato, e il cliente vede This cart has already been paid with order #…. Please check your order history — do not pay again.
Su OpenCart 4 l'ordine resta nel checkout fino alla visualizzazione della pagina di successo. Se nel frattempo il negozio ha chiuso quell'ordine (per esempio annullato, con l'autorizzazione annullata o rimborsato), oppure se è già pagato e il carrello è cambiato da allora (altri prodotti o quantità), Confirm Order riporta il cliente al checkout, che crea un nuovo ordine del carrello con il proprio pagamento. Lo stesso carrello inviato due volte porta comunque alla pagina di successo senza un secondo addebito.
L'estensione accetta solo pagamenti con carta. Non prevede carte salvate, abbonamenti o pagamenti ricorrenti, PayPal, Venmo, Apple Pay, Google Pay o metodi di pagamento locali, e non ci sono webhook Braintree.
Ordini e rimborsi
Stati degli ordini
Nessuno stato (ordine mancante): il pagamento non è stato effettuato o è stato rifiutato. In Sales > Orders questi ordini vengono mostrati solo con il filtro Order Status impostato su Missing Orders.
Order Status After Payment (predefinito Processing): la carta è stata addebitata (Sale), oppure un'autorizzazione è stata acquisita. Una nota mostra l'importo, l'ID della transazione Braintree e l'esito del 3-D Secure.
Authorized Status (predefinito Pending): i fondi sono solo autorizzati (Authorize only). Una nota ti chiede di acquisire il pagamento nella pagina dell'ordine prima della spedizione.
On Hold (Review) Status (predefinito Pending): Braintree ha restituito uno stato della transazione inatteso, oppure un addebito in valuta o importo errati non è stato annullato automaticamente. La nota spiega cosa controllare nel Braintree Control Panel.
Voided Status (predefinito Canceled): un'autorizzazione è stata annullata.
Refunded Status (predefinito Refunded): il pagamento è stato rimborsato interamente tramite l'estensione.
Le note sono voci della History dell'ordine che il cliente non vede.
Scheda VibeFox Braintree Gateway
In Sales > Orders apri un ordine pagato con Braintree. In fondo alla pagina dell'ordine, accanto a History e Additional, la scheda VibeFox Braintree Gateway mostra il Transaction ID (collegato alla transazione nel Braintree Control Panel del suo ambiente), con l'etichetta Sandbox per i pagamenti sandbox, lo Status della transazione, l'Amount e l'account commerciante, l'esito del 3-D Secure, gli importi Charged / refunded, i pulsanti di acquisizione, annullamento e rimborso, lo storico dei rimborsi e le Braintree notes dell'ordine. La scheda è mostrata agli utenti che hanno accesso all'estensione; i pulsanti richiedono il permesso di modificarla (impostato in System > Users > User Groups).
Acquisizione e annullamento
Per un pagamento autorizzato, fai clic su Capture Braintree payment per addebitare il totale dell'ordine, oppure su Void Braintree authorization per rilasciare l'importo trattenuto e annullare l'ordine. L'acquisizione imposta l'ordine su Order Status After Payment; l'annullamento lo imposta su Voided Status. Se l'azione non riesce, l'errore viene mostrato nella scheda e aggiunto alle note dell'ordine.
Rimborsi
Nella scheda VibeFox Braintree Gateway inserisci l'Amount (viene compilato l'importo non ancora rimborsato), facoltativamente un Reason (optional), e fai clic su Refund via Braintree. Conferma la domanda Rimborsare questo importo tramite Braintree? L'operazione non può essere annullata. Sono supportati rimborsi totali e parziali, sia per un pagamento acquisito sia per un pagamento in revisione. I rimborsi vengono effettuati nell'importo e nella valuta addebitati da Braintree. Braintree rimborsa solo le transazioni regolate, di solito entro 24 ore. Prima del regolamento un rimborso totale viene eseguito come annullamento; un rimborso parziale in quel caso fallisce con un messaggio che invita ad attendere il regolamento. Il rimborso viene inviato all'ambiente (sandbox o live) del pagamento, quindi devono essere impostate le credenziali di quell'ambiente. Se Braintree non accetta il rimborso, la scheda mostra l'errore e nessun rimborso viene registrato. Un rimborso riuscito viene aggiunto allo storico dei rimborsi e alle note. Un rimborso totale imposta l'ordine su Refunded Status; un rimborso parziale non cambia lo stato. Le modifiche di stato dalla scheda non notificano il cliente e non riportano i prodotti in magazzino, come una modifica manuale dello stato.
I resi di prodotti in Sales > Returns non restituiscono denaro tramite Braintree. Le contestazioni (chargeback), i rifiuti in fase di regolamento e i rimborsi effettuati nel Braintree Control Panel non vengono sincronizzati con OpenCart.
Chiave di licenza
L'estensione funziona con una chiave di licenza VibeFox ottenuta su vibefox.net. Il blocco della licenza License — VibeFox Braintree Gateway è il primo blocco di Extensions > Extensions > Payments > VibeFox Braintree Gateway > Edit, sopra le impostazioni. Incolla la chiave in License key e fai clic su Activate. Dopo di che 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 controllare di nuovo lo stato, Change key per inserire un'altra chiave e Remove key per rimuovere la chiave da questo negozio. Sotto si trovano la riga Product: opencart-payment-braintree e il link Manage licenses and domains in your account, che apre il tuo account 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, ad 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 un posto dominio nel tuo account, fai clic 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 dalla configurazione di OpenCart. Rimuovere la chiave dal negozio non libera il suo posto dominio. Libera il posto nel tuo account vibefox.net.
Senza una chiave attiva, Braintree non viene mostrato ai clienti al checkout. Se un pagamento viene comunque avviato, 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 vede ancora il metodo di pagamento nel negozio, contrassegnato da (unlicensed — visible to admins only), così puoi configurare e provare 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, compare un promemoria nella Dashboard dell'amministrazione. Chiudilo con × per nasconderlo per 7 giorni. Gli ordini esistenti non sono interessati: i pagamenti già avviati vengono comunque confermati, e acquisizioni, annullamenti e rimborsi funzionano.
Quando una licenza scade, l'estensione continua a funzionare, ma aggiornamenti e assistenza richiedono un rinnovo. Lo stato viene ricontrollato automaticamente quando apri la Dashboard dell'amministrazione o la pagina Edit: una volta al giorno per i primi 14 giorni dopo l'inserimento della chiave, poi una volta a settimana. Non serve alcun cron job. La disinstallazione dell'estensione rimuove sempre la chiave di licenza e lo stato della licenza.
Risoluzione dei problemi
Braintree non compare al checkout: verifica che la licenza sia attiva, che Enable/Disable sia attivo e che l'ambiente selezionato abbia Merchant ID, Public Key e Private Key. La pagina delle impostazioni mostra un avviso quando una chiave manca. Verifica inoltre che l'indirizzo di pagamento sia nella Geo Zone selezionata e che l'ordine raggiunga il Total impostato nelle impostazioni.
La carta è stata addebitata, ma l'ordine resta senza stato: i pagamenti con carta vengono confermati subito, senza webhook. Controlla le note dell'ordine e il campo Log nella pagina dell'estensione. Se una nota dice che la risposta di Braintree è andata persa, cerca nel Braintree Control Panel una transazione con questo numero d'ordine prima di accettare un altro pagamento. Se lo stato non è stato impostato dopo l'addebito, il tentativo di pagamento successivo con lo stesso carrello lo imposta senza addebitare di nuovo.
Il modulo della carta mostra Could not initialize payment form: le chiavi dell'ambiente selezionato sono errate, oppure l'ID dell'account commerciante non esiste in quell'account. Controlla le chiavi e gli ID degli account commerciante, poi ricarica la pagina.
Il cliente vede Your session has expired. Please refresh the page and try again.: la sessione di checkout è cambiata mentre il modulo era aperto. Il cliente deve ricaricare la pagina del checkout.
Il 3-D Secure fallisce per ogni pagamento: il 3-D Secure deve essere attivo per il tuo account commerciante Braintree. Contatta il supporto Braintree, oppure imposta 3-D Secure su Disabled (non consigliato nello SEE e nel Regno Unito, dove la SCA è obbligatoria).
Al cliente viene comunicato che il pagamento non è stato elaborato nella valuta dell'ordine: Braintree ha addebitato nella valuta dell'account commerciante. Inserisci l'ID dell'account commerciante per la valuta dell'ordine nel campo dell'account commerciante dell'ambiente attuale.
Il cliente vede The order total must be greater than zero to pay by card.: il totale dell'ordine è zero, per esempio dopo un buono sconto. Questi ordini non possono essere pagati con carta.
Un rimborso parziale fallisce subito dopo il pagamento: Braintree può rimborsare solo le transazioni regolate, di solito entro 24 ore. Rimborsa l'importo intero per annullare subito la transazione, oppure fai il rimborso parziale dopo il regolamento.
Nessun pulsante nella scheda, o un messaggio sull'ambiente: il tuo gruppo utenti non ha il permesso di modificare l'estensione, oppure il pagamento è stato effettuato nell'ambiente sandbox o live e le credenziali di quell'ambiente non sono impostate. Inseriscile e riprova.
Disinstallazione
Vai su Extensions > Extensions, scegli il tipo Payments e fai clic su Uninstall (il pulsante rosso −) accanto a VibeFox Braintree Gateway. 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 alla reinstallazione tornano ai valori predefiniti. Se Delete data on uninstall è attivo, vengono rimosse le altre impostazioni del gateway (titolo, descrizione, modalità sandbox, credenziali, account commerciante, tipo di transazione, 3-D Secure, log di debug) e il log. Se è disattivo, vengono conservate per una successiva reinstallazione. Le transazioni e i rimborsi Braintree restano sempre, quindi gli ordini pagati in precedenza possono essere ancora rimborsati, acquisiti o annullati dopo una reinstallazione. Gli ordini esistenti mantengono le proprie note di pagamento.
Su OpenCart 4, per rimuovere anche i file dell'estensione, dopo la disinstallazione vai su Extensions > Installer, fai clic su Uninstall (il pulsante arancione −) accanto a VibeFox Braintree Gateway nell'elenco delle estensioni installate, poi su Delete (il pulsante rosso con il cestino) per rimuovere il pacchetto caricato.
Braintree è un marchio del rispettivo titolare. Questa estensione non è affiliata a Braintree né approvata da Braintree.
