Présentation
Les remboursements peuvent être initiés par une action active de l'utilisateur (en appuyant sur le bouton "Rembourser") ou peuvent être déclenchés automatiquement au nom de l'utilisateur. Quel que soit le déclencheur, une demande de remboursement asynchrone sera envoyée par Google à l'intégrateur de paiement. L'intégrateur doit accuser réception de la demande et informer Google une fois le remboursement effectué.
Fonctionnement du flux
Processus de remboursement
Voici un exemple de procédure de remboursement asynchrone lancée par l'utilisateur:
Voici la liste des objets dans le schéma ci-dessus:
- Utilisateur: il s'agit de la personne qui souhaite obtenir un remboursement total ou partiel.
- Serveur Google: serveur backend de Google qui envoie la commande de remboursement à l'intégrateur de paiement.
- Intégrateur de paiement: intégrateur qui transmet la demande de remboursement à l'émetteur approprié.
- Émetteur: émetteur utilisé pour le paiement, qui accepte la demande de remboursement.
Dans cet exemple, le remboursement est initié par l'utilisateur.
- L'utilisateur envoie le remboursement au serveur Google.
- Google appelle le point de terminaison
AsynchronousRefund
de l'intégrateur de paiements. - L'intégrateur envoie une réponse
Acknowledged
à Google. - L'intégrateur appelle le point de terminaison
Refund
approprié sur l'émetteur. - L'émetteur traite le remboursement et répond à l'intégrateur avec
Success
. - L'intégrateur appelle le point de terminaison
RefundResultNotification
sur le serveur Google pour informer Google du résultat. - Google accepte les
RefundResultNotification
. - Google met à jour les fonds disponibles de l'utilisateur.
- L'utilisateur reçoit un remboursement.
Bonnes pratiques et autres considérations
Étant donné que certains produits Google, tels qu'AdWords, acceptent les remboursements tant qu'un crédit existe sur le compte. Par conséquent, les demandes de remboursement de transactions devraient être acceptées pour une durée indéterminée. S'il existe une limitation technique, le délai de remboursement doit être aussi long que votre plate-forme le permet.
Les remboursements ne peuvent être refusés que si le solde de la transaction d'origine n'est pas suffisant pour couvrir le montant du remboursement, ou si le compte a été clôturé ou est en attente, et que l'intégrateur n'est pas en mesure d'envoyer cette somme à l'utilisateur.
Les remboursements peuvent être effectués quelques secondes après la capture. Les délais de remboursement sont laissés à la discrétion de Google.
Un remboursement ne doit en aucun cas être considéré comme un remboursement total. Le champ refundAmount
doit toujours être pris en compte lors du remboursement sur le compte.
Plusieurs remboursements partiels doivent être acceptés. Par exemple, imaginons qu'une transaction d'une valeur de 11 $ait lieu et qu'un utilisateur puisse obtenir un remboursement partiel de 4 $, 5 $ et 1 $pour la transaction d'origine. Dans ce cas, les trois remboursements sont associés au même captureRequestId
, mais à des valeurs requestId
différentes. En outre, cette transaction ne présenterait que 1 $.
Imaginons maintenant un achat de 12 €. Dans cet exemple, l'utilisateur peut effectuer deux remboursements, chacun de 6 €. Si ces deux remboursements ont des valeurs requestId
différentes (et le même captureRequestId
), ils doivent être traités comme des remboursements distincts pour la même transaction. Dans ce cas, l'utilisateur ne disposera plus de 0 $pour la transaction une fois le remboursement effectué.