Passa al contenuto
Crea account
o
Accedi
Il logo della documentazione Stripe
/
Chiedi all'IA
Crea un account
Accedi
Inizia
Pagamenti
Ricavi
Per piattaforme e marketplace
Gestione del denaro
Strumenti di sviluppo
Panoramica
Informazioni sui pagamenti con Stripe
Eseguire l'upgrade dell'integrazione
Analisi dei dati sui pagamenti
Pagamenti online
PanoramicaTrovare il caso d'uso più adattoManaged Payments
Utilizzare Payment Links
Creare una pagina di pagamento
Creare un'integrazione iniziale
Creare un'integrazione in-app
Metodi di pagamento
Aggiungere modalità di pagamento
    Panoramica
    Opzioni di integrazione delle modalità di pagamento
    Gestire i metodi di pagamento predefiniti nella Dashboard
    Tipi di metodi di pagamento
    Carte
    Pagare con il saldo Stripe
    Criptovaluta
    Addebiti bancari
    Reindirizzamenti bancari
    Trasferimenti bancari
    Bonifici (Sources)
    Acquista ora, paga dopo
      Affirm
      Afterpay / Clearpay
        Accettare un pagamento
        Messaggi sul sito
      Alma
      Billie
      Capchase Pay
      Klarna
      Kriya
      Mondu
      Pagamento su fattura
      Scalapay
      SeQura
      Sunbit
      Zip
    Pagamenti in tempo reale
    Voucher
    Wallet
    Abilitare metodi di pagamento locali per Paese
    Metodi di pagamento personalizzati
Gestire i metodi di pagamento
Pagare più velocemente con Link
Interfacce di pagamento
Payment Links
Checkout
Elements per il Web
Elements in-app
Scenari di pagamento
Flussi di pagamento personalizzati
Acquisizione flessibile
Orchestrazione
Pagamenti di persona
Terminal
Altri prodotti Stripe
Financial Connections
Criptovaluta
Climate
Pagina inizialePagamentiAdd payment methodsBuy now, pay laterAfterpay / Clearpay

Accettare un pagamento Afterpay o Clearpay

Scopri come accettare Afterpay (nota anche come Clearpay nel Regno Unito), una modalità di pagamento utilizzata in Stati Uniti, Canada, Regno Unito, Australia e Nuova Zelanda.

Copia pagina

L’accettazione di Afterpay nella tua app consiste nella visualizzazione di una vista web con cui il cliente deve autenticare il proprio pagamento. Il cliente torna quindi alla tua app e tu puoi verificare immediatamente se il pagamento ha avuto esito positivo o negativo.

Nota

Prima di avviare l’integrazione, assicurati che il tuo account sia idoneo per Afterpay accedendo alle impostazioni dei metodi di pagamento.

Configura Stripe
Lato server
Lato client

Innanzitutto, devi creare un account Stripe. Registrati ora.

Lato server

Per questa integrazione sono necessari endpoint sul server che comunicano con l’API Stripe. Utilizza le nostre librerie ufficiali per accedere all’API Stripe dal tuo server:

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Lato client

L’SDK per Android di Stripe è open source e completamente documentato.

Per installare l’SDK, aggiungi stripe-android al blocco dependencies del tuo file app/build.gradle:

build.gradle.kts
Kotlin
plugins { id("com.android.application") } android { ... } dependencies { // ... // Stripe Android SDK implementation("com.stripe:stripe-android:21.17.0") // Include the financial connections SDK to support US bank account as a payment method implementation("com.stripe:financial-connections:21.17.0") }

Nota

Per ulteriori informazioni sulla versione più recente e su quelle precedenti dell’SDK, consulta la pagina Releases su GitHub. Per ricevere una notifica quando viene pubblicata una nuova versione, imposta il controllo delle versioni per il repository.

Configura l’SDK con la tua chiave pubblicabile di Stripe in modo che possa inviare le richieste all’API Stripe, ad esempio nella sottoclasse Application:

Kotlin
import com.stripe.android.PaymentConfiguration class MyApp : Application() { override fun onCreate() { super.onCreate() PaymentConfiguration.init( applicationContext,
"pk_test_TYooMQauvdEDq54NiTphI7jx"
) } }

Nota

Usa le chiavi di test durante i test e le chiavi della modalità live quando pubblichi l’app.

I nostri esempi di codice Stripe utilizzano inoltre OkHttp e GSON per inviare richieste HTTP a un server.

Creare un PaymentIntent
Lato server
Lato client

Un PaymentIntent è un oggetto che rappresenta la tua intenzione di riscuotere un pagamento da un cliente e traccia il ciclo di vita del processo di pagamento in ogni sua fase.

Lato server

Innanzitutto crea un PaymentIntent sul tuo server e specifica l’importo da riscuotere e la valuta. Se hai già un’integrazione che utilizza l’API Payment Intents, aggiungi afterpay_clearpay all’elenco dei tipi di metodi di pagamento per il tuo PaymentIntent.

Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "currency"="usd" \ -d "payment_method_types[]"="afterpay_clearpay"

Altre opzioni delle modalità di pagamento

Puoi specificare un parametro reference facoltativo nelle opzioni dei metodi di pagamento per il tuo PaymentIntent che imposta un identificativo interno dell’ordine per il pagamento. Sebbene queste informazioni non siano generalmente visibili né all’attività né al cliente, il team di assistenza interno di Afterpay può accedervi durante le richieste di assistenza manuali. L’identificatore ha un limite di 128 caratteri e può contenere solo lettere, cifre, caratteri di sottolineatura, barre rovesciate e trattini.

Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "currency"="usd" \ -d "payment_method_types[]"="afterpay_clearpay" \ -d "payment_method_options[afterpay_clearpay][reference]"="order_123"

Lato client

Nel PaymentIntent restituito è presente una chiave privata client, che il client può utilizzare per completare la procedura di pagamento in modo sicuro anziché specificare tutto l’oggetto PaymentIntent. Sul lato client, richiedi un PaymentIntent dal tuo server e memorizza la chiave privata client.

Kotlin
class AfterpayPaymentActivity: AppCompatActivity() { private lateinit var paymentIntentClientSecret: String override fun onCreate(savedInstanceState: Bundle?) { // ... startCheckout() } private fun startCheckout() { // Request a PaymentIntent from your server and store its client secret } }

Raccogliere i dati relativi alla modalità di pagamento
Lato client

Perché il pagamento vada a buon fine, Afterpay ha bisogno che siano presenti i dati di fatturazione. Nella tua app, acquisisci dal cliente i dati di fatturazione necessari:

  • Nome e cognome
  • Indirizzo email
  • Indirizzo di fatturazione completo

Crea un PaymentMethodCreateParams con questi dati.

Inoltre, anche se i dettagli di spedizione non sono obbligatori, possono aiutare a migliorare i tassi di autenticazione. Per raccogliere i dettagli di spedizione, acquisisci dal cliente quanto segue:

  • Nome completo
  • Indirizzo di spedizione completo

Crea un ConfirmPaymentIntentParams.Shipping con questi dati.

Kotlin
val billingDetails = PaymentMethod.BillingDetails( name = "Jenny Rosen", email = "jenny@rosen.com", address = Address.Builder() .setLine1("1234 Market St") .setCity("San Francisco") .setState("CA") .setCountry("US") .setPostalCode("94111") .build() ) val paymentMethodCreateParams = PaymentMethodCreateParams.createAfterpayClearpay(billingDetails) // Shipping details are optional but recommended to pass in. val shippingDetails = ConfirmPaymentIntentParams.Shipping( name = "Jenny Rosen", address = Address.Builder() .setLine1("1234 Market St") .setCity("San Francisco") .setState("CA") .setCountry("US") .setPostalCode("94111") .build() )

Inviare il pagamento a Stripe
Lato client

Recupera la chiave privata client dal PaymentIntent che hai creato nel passaggio 2 e chiama il metodo PaymentLauncher confirm. Verrà visualizzata una vista web dove il cliente potrà completare il pagamento sul sito web o sull’app della propria banca. In seguito, viene chiamato onActivityResult con il risultato del pagamento.

Kotlin
class AfterpayPaymentActivity : AppCompatActivity() { // ... private lateinit var paymentIntentClientSecret: String private val paymentLauncher: PaymentLauncher by lazy { val paymentConfiguration = PaymentConfiguration.getInstance(applicationContext) PaymentLauncher.Companion.create( this, paymentConfiguration.publishableKey, paymentConfiguration.stripeAccountId, ::onPaymentResult ) } private fun startCheckout() { // ... // Shipping details are optional but recommended to pass in. val confirmParams = ConfirmPaymentIntentParams .createWithPaymentMethodCreateParams( paymentMethodCreateParams = paymentMethodCreateParams, clientSecret = paymentIntentClientSecret, shipping = shippingDetails ) paymentLauncher.confirm(confirmParams) } private fun onPaymentResult(paymentResult: PaymentResult) { when (paymentResult) { is PaymentResult.Completed -> { // show success UI } is PaymentResult.Canceled -> { // handle cancel flow } is PaymentResult.Failed -> { // handle failures // (for example, the customer may need to choose a new payment // method) } } } }

FacoltativoAggiungere voci riga al PaymentIntent

FacoltativoSeparare l'autorizzazione dall'acquisizione

FacoltativoGestire gli eventi successivi al pagamento

FacoltativoTestare l'integrazione Afterpay

Pagamenti non riusciti

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, il PaymentMethod viene scollegato e lo stato dell’oggetto PaymentIntent diventa 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). In caso contrario, l’oggetto PaymentMethod verrà scollegato e lo stato dell’oggetto 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 erroreAzione consigliata
payment_intent_payment_attempt_failedErrore generico che indica che il pagamento Afterpay non è riuscito. Può trattarsi anche di un rifiuto che non appare come un codice di errore di rifiuto.
payment_method_provider_declineAfterpay ha rifiutato il pagamento del cliente. Successivamente, il cliente dovrà contattare Afterpay per richiedere ulteriori informazioni.
payment_intent_payment_attempt_expiredIl cliente non ha mai completato il pagamento nella pagina di pagamento di Afterpay e la sessione di pagamento è scaduta. Stripe fa scadere automaticamente i Payment Intent non autorizzati 3 ore dopo la creazione del pagamento iniziale.
payment_method_not_availableAfterpay ha riscontrato un errore relativo al servizio e non è in grado di completare la richiesta. Riprova più tardi.
amount_too_smallInserisci un importo compreso nei limiti di transazione predefiniti di Afterpay per il Paese.
amount_too_largeInserisci un importo compreso nei limiti di transazione predefiniti di Afterpay per il Paese.
Questa pagina è stata utile?
SìNo
Hai bisogno di aiuto? Contatta l'assistenza clienti.
Partecipa al nostro programma di accesso anticipato.
Dai un'occhiata al nostro registro delle modifiche.
Domande? Contattaci.
LLM? Leggi llms.txt.
Realizzato da Markdoc