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

Обзор

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

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

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

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

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

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

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

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

  1. Пользователь инициирует возврат средств на сервер Google.
  2. Сервер Google вызывает конечную точку Refund на сервере Интегратора платежей.
  3. Сервер платежного интегратора отвечает «Успешно».
  4. Пользователь получает возврат средств.

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

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

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

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

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

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

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