Accettare un pagamento Afterpay o Clearpay
Attenzione
Stripe automatically presents your customers payment method options by evaluating their currency, payment method restrictions, and other parameters. We recommend that you configure your payment methods from the Stripe Dashboard using the instructions in Accept a payment.
Se vuoi continuare a configurare manualmente le modalità di pagamento che mostri ai clienti con Checkout, usa questa guida (ad esempio, per accettare pagamenti in Subscription mode). In alternativa, procedi con la migrazione alla Dashboard.
Afterpay è una modalità di pagamento monouso con notifica immediata che richiede ai clienti di autenticare i propri pagamenti. I clienti vengono reindirizzati al sito Afterpay dove possono accettare i termini di un piano di rateizzazione. Quando il cliente accetta i termini, Afterpay garantisce la disponibilità dei fondi del cliente e li trasferisce sul tuo account Stripe. Il cliente ripaga direttamente Afterpay nel tempo.
Nota
Before you start the integration, make sure your account is eligible for Afterpay by navigating to your Payment methods settings.
Determinare la compatibilità
Per supportare i pagamenti Afterpay, una sessione di Checkout deve soddisfare tutte le seguenti condizioni:
- Puoi usare solo le voci riga una tantum (i piani di abbonamento ricorrenti non sono supportati).
- I prezzi devono essere indicati nella valuta nazionale.
- È necessario specificare gli indirizzi di spedizione.
Accettare un pagamento
Nota
This guide builds on the foundational accept a payment Checkout integration.
Utilizza questa guida per scoprire come abilitare Afterpay. Mostra le differenze tra l’accettazione di un pagamento con carta e l’uso di Afterpay.
Abilitare Afterpay come modalità di pagamento
Quando crei una nuova sessione di Checkout, devi:
- Aggiungere
afterpay_clearpay
all’elencopayment_method_types
. - Accertarti che tutte le
line_items
utilizzino la tua valuta nazionale. - Raccogli gli indirizzi di spedizione aggiungendo il tuo paese a
shipping_address_collection[allowed_countries]
. Se non raccogli gli indirizzi di spedizione con Checkout, forniscili tramitepayment_intent_data[shipping]
.
Stripe::Checkout::Session.create({ mode: 'payment', payment_method_types: ['card'], payment_method_types: ['card', 'afterpay_clearpay'], line_items: [{ price_data: { currency: 'usd', product_data: { name: 'T-shirt', }, # Make sure the total amount fits within Afterpay transaction amount limits: # https://stripe.com/docs/payments/afterpay-clearpay#collection-schedule unit_amount: 2000, }, quantity: 1, }], shipping_address_collection: { # Specify which shipping countries Checkout should provide as options for shipping locations allowed_countries: ['AU', 'CA', 'GB', 'NZ', 'US'], }, # If you already have the shipping address, provide it in payment_intent_data: # payment_intent_data: { # shipping: { # name: 'Jenny Rosen', # address: { # line1: '1234 Main Street', # city: 'San Francisco', # state: 'CA', # country: 'US', # postal_code: '94111', # }, # }, # }, success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', })
Evadere gli ordini
Utilizza un metodo come i webhook per gestire l’evasione degli ordini, senza aspettare che il cliente torni alla pagina dello stato dei pagamenti.
Gli eventi indicati di seguito vengono inviati al variare dello stato del pagamento:
Nome evento | Descrizione | Passaggi successivi |
---|---|---|
checkout.session.completed | Il cliente ha autorizzato il pagamento inviando il modulo di Checkout. | Attendi che il pagamento vada a buon fine o meno. |
payment_intent.succeeded | Il pagamento del cliente è andato a buon fine. Lo stato del PaymentIntent passa a succeeded . | Evadi l’ordine dei prodotti o dei servizi acquistati dal cliente. |
payment_intent.payment_failed | Il pagamento del cliente è stato rifiutato o non è andato a buon fine per altri motivi. Il PaymentIntent torna in stato requires_payment_method . | Contatta il cliente via email e chiedigli di effettuare un nuovo ordine. |
Ulteriori informazioni sull’evasione degli ordini.
Testare la tua integrazione
Quando testi la tua integrazione di Checkout, seleziona Afterpay come modalità di pagamento e fai clic sul pulsante Paga.
Testa la tua integrazione Afterpay con le tue chiavi API di test visualizzando la pagina di reindirizzamento. Puoi testare il caso di pagamento riuscito autenticando il pagamento sulla pagina di reindirizzamento. Il PaymentIntent passerà da requires_action
a succeeded
.
Per testare il caso in cui l’utente non riesce a effettuare l’autenticazione, usa le tue chiavi API di test e visualizza la pagina di reindirizzamento. In questa pagina, fai clic su Interrompi pagamento di test. Il PaymentIntent passerà da requires_action
a requires_payment_method
.
Per i PaymentIntent con acquisizione manuale in modalità di test, il PaymentIntent non acquisito scade automaticamente 10 minuti dopo che viene concessa l’autorizzazione.
Pagamenti non andati a buon fine
Afterpay decide se accettare o rifiutare una transazione in base a diversi fattori, ad esempio da quanto tempo l’acquirente utilizza Afterpay, l’importo in sospeso che il cliente deve rimborsare o il valore dell’ordine corrente.
Dato che i pagamenti Afterpay hanno un tasso di rifiuto più elevato rispetto a molti metodi di pagamento, dovresti sempre includere opzioni di pagamento aggiuntive nel tuo flusso di pagamento, come ad esempio card
. In questi casi, l’oggetto PaymentMethod sarà scollegato e lo stato del PaymentIntent passerà automaticamente a requires_payment_method
.
Per un PaymentIntent Afterpay con stato requires_action
, i clienti devono completare il pagamento entro tre ore dal reindirizzamento al sito Afterpay (ciò non riguarda i pagamenti rifiutati). Se dopo tre ore non si sarà verificato alcun intervento, l’oggetto PaymentMethod sarà scollegato e lo stato del PaymentIntent passerà automaticamente a requires_payment_method
.
In questi casi, invita il cliente a riprovare con una diversa opzione di pagamento presente nel tuo flusso di completamento della transazione.
Codici di errore
Questi sono i codici di errore più diffusi e le corrispondenti azioni consigliate:
Codice di errore | Azione consigliata |
---|---|
invalid_amount_too_small | Inserisci un importo compreso nei limiti di transazione predefiniti di Afterpay per il paese. |
invalid_amount_too_large | Inserisci un importo compreso nei limiti di transazione predefiniti di Afterpay per il paese. |
payment_intent_invalid_currency | Inserisci la valuta adatta. Afterpay supporta solo transazioni nazionali. |
missing_required_parameter | Controlla il messaggio di errore per sapere di più sul parametro richiesto. |
nonexistent_country | Inserisci un codice ISO del paese di due lettere nella proprietà country nei dettagli di spedizione e addebito. |
payment_intent_redirect_confirmation_without_return_url | Specifica un return_url quando confermi un PaymentIntent con Afterpay. |