Panoramica
I rimborsi possono essere avviati da un'azione attiva dell'utente (premendo il pulsante "Rimborsa") oppure possono essere attivati automaticamente per conto dell'utente. Indipendentemente dall'attivazione, verrà inviata una richiesta di rimborso asincrona da Google all'integratore dei pagamenti. L'integratore deve confermare la richiesta e informare Google una volta completato il rimborso.
Come funziona il flusso
Flusso di rimborso
Ecco un esempio di flusso di rimborso asincrono avviato dall'utente:
Ecco l'elenco degli oggetti nel diagramma riportato sopra:
- Utente: si tratta della persona che vuole un rimborso totale o parziale.
- Server di Google: il server di backend di Google che invia il comando di rimborso all'integratore dei pagamenti.
- Integratore pagamenti: l'integratore che inoltra la richiesta di rimborso all'emittente appropriato.
- Emittente: l'emittente utilizzato per il pagamento, che accetta la richiesta di rimborso.
In questo esempio, il rimborso viene avviato dall'utente.
- L'utente avvia il rimborso al server di Google.
- Google chiama l'endpoint
AsynchronousRefund
dell'integratore dei pagamenti. - L'integratore invia una risposta
Acknowledged
a Google. - L'integratore chiama l'endpoint
Refund
appropriato sull'emittente. - L'emittente elabora il rimborso e risponde all'integratore con
Success
. - L'integratore chiama l'endpoint
RefundResultNotification
sul server di Google per informare Google del risultato. - Google riconosce i
RefundResultNotification
. - Google aggiorna i fondi disponibili dell'utente.
- L'utente riceve un rimborso.
Best practice e altre considerazioni
Poiché alcuni prodotti Google, come AdWords, supportano i rimborsi a condizione che nell'account esista credito, pertanto le richieste di rimborso delle transazioni devono essere supportate per un periodo indefinito. Se esiste una limitazione tecnica, il periodo di rimborso deve essere quanto consentito dalla tua piattaforma.
I rimborsi possono essere rifiutati solo se il saldo della transazione originale non è sufficiente a coprire l'importo del rimborso o se l'account è stato chiuso o è in sospeso e l'integratore non ha la possibilità di inviare questo denaro all'utente.
I rimborsi possono essere avviati entro pochi secondi dall'acquisizione. Le tempistiche dei rimborsi sono a discrezione di Google.
Un rimborso non deve mai essere considerato come un rimborso totale. Il campo refundAmount
deve sempre essere preso in considerazione per il rimborso dell'account.
Devono essere supportati più rimborsi parziali. Ad esempio, supponiamo che si verifichi una transazione del valore di 11,00 € e che un utente possa ottenere correttamente rimborsi parziali di 4,00 €, 5,00 € e 1,00 € dalla transazione originale. In questo caso, tutti e tre i rimborsi avranno lo stesso captureRequestId
, ma valori requestId
diversi. Inoltre, a questa transazione saranno rimasti solo $1,00.
Ora immaginiamo un acquisto di 12,00 €. Per questo esempio, l'utente può effettuare due rimborsi, ciascuno di 6,00 €. Se questi due rimborsi hanno valori diversi per requestId
(e lo stesso captureRequestId
), devono essere trattati come rimborsi separati nella stessa transazione. In questo caso, una volta completati i rimborsi, l'utente non potrà effettuare la transazione senza costi aggiuntivi.