Transaction Events API

В этом руководстве для разработчиков рассказывается, как упростить процесс передачи в Google сведений о транзакциях Google Pay. После того как пользователь подтвердит транзакцию Google Pay, Transaction Events API сообщит в Google о платеже и обо всех событиях, связанных с заказом. Мы рекомендуем использовать Transaction Events API, поскольку он помогает нам оперативно принимать решения на основе имеющихся данных и более тщательно анализировать риски для продавца.

Необходимые изменения API

Чтобы настроить обратные вызовы для API, выполните следующие действия:

  1. Заполните поле transactionInfo.transactionId в запросе PaymentDataRequest.

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

  2. Создайте общий аккаунт Google.

    Сообщите о нем своим коллегам и попросите Google добавить его в список разрешенных. На этом этапе вы можете обратиться за помощью к менеджеру аккаунтов, однако создать аккаунт вам нужно будет самостоятельно. Ни у кого, кроме вас, не должно быть доступа к этому аккаунту Google.

  3. Создайте проект Google Cloud.

    После того как Google добавит аккаунт разработчика в список разрешенных, оператор должен будет войти в этот аккаунт и открыть Google Cloud Console. Далее разработчику следует создать проект для интеграции. Не используйте этот аккаунт Google для создания других проектов.

  4. Создайте новый платежный аккаунт Cloud или убедитесь, что в проекте включена оплата.
  5. Включите Transaction Events API с помощью VGW API.

    Transaction Events API относится к семейству интерфейсов VGW API. Чтобы получить доступ к нужной конечной точке, следует включить VGW API в проекте. Для этого активируйте Cloud Shell в Google Cloud Platform и выполните следующую команду:

    gcloud services enable vgw.googleapis.com
    
  6. Создайте сервисный аккаунт в проекте и зарегистрируйте его.

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

  7. После того как ваш сервисный аккаунт будет добавлен в список разрешенных, выполните следующие действия, чтобы совершить авторизованный вызов API:

    1. В следующем запросе к Transaction Events API используйте кратковременный токен.

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

      https://www.googleapis.com/auth/facilitated.transaction.event.service
    2. Составьте тело запроса для уведомления о событии.

      Существует девять типов событий, например AuthorizationSucceeded и AuthorizationDeclined. Составьте запрос для уведомления о соответствующем событии.

    3. Отправьте уведомление о транзакции. Для этого выполните следующие действия:

      1. Отправьте запрос HTTP на адрес:
        https://billpaynotification.googleapis.com/secure-serving/gsp/v2/facilitatedTransaction/eventNotification/{merchant_id}
        
      2. Передайте токен OAuth в заголовок следующим образом:

        Authorization: Bearer {token}

      3. Убедитесь, что merchant_id в запросе совпадает с идентификатором продавца в Google Pay Business Console.

    Кроме того, к запросу предъявляются определенные требования.

    • Каждый запрос должен иметь уникальный идентификатор requestId.
    • Временная метка requestTimestamp не может отличаться от текущего времени более чем на 60 секунд в большую или меньшую сторону.

    • merchantId в заголовке совпадает с идентификатором продавца в Google Pay Business Console.
    • Основная версия запроса – 2, что соответствует "v2" в URL.
    • Идентификатор transactionId должен совпадать с transactionInfo.transactionId, заданным в запросе PaymentDataRequest.