Procédure de remboursement

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:

Processus de remboursement

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.

  1. L'utilisateur envoie le remboursement au serveur Google.
  2. Google appelle le point de terminaison AsynchronousRefund de l'intégrateur de paiements.
  3. L'intégrateur envoie une réponse Acknowledged à Google.
  4. L'intégrateur appelle le point de terminaison Refund approprié sur l'émetteur.
  5. L'émetteur traite le remboursement et répond à l'intégrateur avec Success.
  6. L'intégrateur appelle le point de terminaison RefundResultNotification sur le serveur Google pour informer Google du résultat.
  7. Google accepte les RefundResultNotification.
  8. Google met à jour les fonds disponibles de l'utilisateur.
  9. 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é.