Scopri come funziona ad alto livello l'API Payment Request.
API Payment Request
Quando un cliente cerca di acquistare qualcosa sul tuo sito web, il sito deve chiedere al cliente di fornire i dati di pagamento e, facoltativamente, altre informazioni come la preferenza di spedizione. Puoi farlo in modo facile e veloce utilizzando API Payment Request (PR).
Struttura di base
La creazione di un oggetto PaymentRequest
richiede due parametri: payment
di pagamento e dettagli di pagamento. Inoltre, un terzo parametro delle opzioni di pagamento
è facoltativo. Una richiesta di base potrebbe essere creata come segue:
const request = new PaymentRequest(paymentMethods, paymentDetails);
Vediamo come viene creato e utilizzato ogni parametro.
Metodi di pagamento
Il primo parametro, paymentMethods, è un elenco di metodi di pagamento supportati in
di una variabile di array. Ogni elemento dell'array comprende due componenti,
supportedMethods
e, facoltativamente, data
.
Per supportedMethods
, il commerciante deve specificare un metodo di pagamento
Identificatore
ad esempio https://bobbucks.dev/pay
. L'esistenza e i contenuti di data
dipendono da
i contenuti di supportedMethods
e il design del fornitore di app di pagamento.
Entrambe le informazioni devono essere fornite dal fornitore dell'app di pagamento.
// Supported payment methods
const paymentMethods = [{
supportedMethods: 'https://bobbucks.dev/pay',
data: {
... // Optional parameters defined by the payment app provider.
}
}];
Dettagli sul pagamento
Il secondo parametro, paymentDetails, viene passato come oggetto e specifica
i dati di pagamento della transazione. Contiene il valore obbligatorio total
,
che specifica l'importo totale dovuto dal cliente. Questo parametro può anche
facoltativamente, elencare gli articoli acquistati.
Nell'esempio riportato di seguito, l'elenco facoltativo degli articoli acquistati (solo un articolo, case) così come l'importo totale dovuto richiesto. In entrambi i casi, la valuta viene specificata per ogni singolo importo.
const paymentDetails = {
displayItems: [{
label: 'Anvil L/S Crew Neck - Grey M x1',
amount: { currency: 'USD', value: '22.15' }
}],
total: {
label: 'Total due',
amount: { currency: 'USD', value : '22.15' }
}
};
Verificare se il metodo di pagamento è disponibile
Chrome controlla se l'utente e l'ambiente sono pronti per effettuare il pagamento
durante la costruzione di un oggetto PaymentRequest
.
Per verificare se l'utente e l'ambiente sono pronti a effettuare un pagamento, chiama
canMakePayment()
prima di richiamare la procedura di pagamento. Chiamata in corso
canMakePayment()
restituisce true
se il browser supporta almeno un pagamento
specificato nell'oggetto.
request.canMakePayment().then(result => {
if (result) {
// This browser supports the specified payment method.
} else {
// This browser does NOT support the specified payment method.
}
}).catch(e => {
// An exception
});
Scopri di più su PaymentRequest.canMakePayment() su MDN
Il metodo show()
Dopo aver impostato i due parametri e creato l'oggetto request
come mostrato
in alto, puoi chiamare il metodo show()
, che mostra l'utente dell'app di pagamento
a riga di comando.
request.show().then(response => {
// [process payment]
// send to a PSP etc.
response.complete('success');
});
L'aspetto dell'interfaccia utente dell'app di pagamento dipende completamente dall'app di pagamento o il provider di servizi di terze parti. Dopo che il cliente accetta di effettuare un pagamento, viene trasmesso un oggetto JSON. al commerciante contenente tutte le informazioni necessarie per trasferire denaro. Il commerciante potrà quindi inviarlo al PSP per l'elaborazione del pagamento.
Infine, puoi chiudere l'interfaccia utente per la richiesta di pagamento completando la procedura con
response.complete('success')
o response.complete('fail')
a seconda del
il risultato restituito dal PSP.
Successivo
Scopri di più sui pagamenti web.