Поток возврата

Обзор

Возврат средств может быть инициирован активным действием пользователя (нажатием кнопки «Возврат») или может быть инициирован автоматически от имени пользователя. Независимо от триггера, асинхронный запрос на возврат средств будет отправлен от Google платежному интегратору . Интегратор должен подтвердить запрос и уведомить Google после завершения возврата средств.

Как работает поток

Поток возврата

Вот пример асинхронного потока возврата, инициированного пользователем:

Поток возврата

Вот список объектов на диаграмме выше:

  • Пользователь : Это человек, который хочет получить полный или частичный возврат средств.
  • Сервер Google : внутренний сервер Google, который отправляет команду возврата платежному интегратору.
  • Платежный интегратор : интегратор, который пересылает запрос на возврат соответствующему эмитенту.
  • Эмитент : эмитент, использованный для платежа, который принимает запрос на возврат средств.

Возврат в этом примере инициируется пользователем.

  1. Пользователь инициирует возврат средств на сервер Google.
  2. Google вызывает конечную точку AsynchronousRefund интегратора платежей.
  3. Интегратор отправляет в Google ответ Acknowledged .
  4. Интегратор вызывает соответствующую конечную точку Refund у эмитента.
  5. Эмитент обрабатывает возврат и отправляет интегратору сообщение Success .
  6. Интегратор вызывает конечную точку RefundResultNotification на сервере Google, чтобы уведомить Google о результате.
  7. Google подтверждает получение RefundResultNotification .
  8. Google обновляет доступные средства Пользователя.
  9. Пользователь получает возврат средств.

Лучшие практики и другие соображения

Поскольку некоторые продукты Google, такие как Adwords, поддерживают возврат средств до тех пор, пока существует кредит на счете, запросы на возврат транзакций должны поддерживаться в течение неопределенного периода времени. Если существует техническое ограничение, период возврата должен быть настолько продолжительным, насколько позволяет ваша платформа.

В возврате средств можно отклонить только в том случае, если баланса исходной транзакции недостаточно для покрытия суммы возврата, либо учетная запись закрыта или приостановлена, и интегратор не имеет возможности отправить пользователю эти деньги.

Возврат средств может быть инициирован в течение нескольких секунд после захвата. Сроки возврата средств определяются по усмотрению Google.

Возврат никогда не следует рассматривать как полный возврат средств. Поле refundAmount всегда необходимо учитывать при возврате средств на счет.

Должна поддерживаться множественная частичная компенсация. Например, предположим, что произошла транзакция на сумму 11 долларов США, и пользователь может успешно получить частичное возмещение в размере 4 долларов США, 5 долларов США и 1 доллар США из исходной транзакции. В этом случае все три возврата будут иметь один и тот же captureRequestId , но разные значения requestId . Кроме того, в этой транзакции останется всего 1 доллар США.

Теперь давайте представим, что произошла покупка на сумму 12 долларов. В этом примере пользователь может сделать два возмещения, каждый по 6 долларов США. Если эти два возврата имеют разные значения requestId (и один и тот же captureRequestId ), их следует рассматривать как отдельные возвраты по одной и той же транзакции. В этом случае после завершения возмещения у пользователя останется 0 долларов США в транзакции.