Последовательность действий пользователя ассоциации

Обзор

Целью потока ассоциации является создание долгоживущего токена (так называемого непрозрачного идентификатора), который, по мнению Платежного интегратора (компании, устанавливающей форму оплаты в нашей системе), и Google представляет собой ссылку между учетной записью пользователя Google и учетная запись пользователя интегратора. Этот долгоживущий токен называется платежным токеном Google ( GPT ). Инструмент – это способ оплаты услуг и товаров в различных экосистемах и торговых площадках Google. Клиент Google может иметь несколько инструментов.

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

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

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

Вот диаграмма, подробно описывающая процесс ассоциации:

Диаграмма последовательности операций ассоциации

Блок-схема ассоциации

Вот список объектов и то, что они представляют:

  • Пользователь : это человек, который хочет добавить способ оплаты в свою учетную запись Google.
  • Пользовательский интерфейс Google : интерфейс Google, где клиент начинает настраивать способ оплаты.
  • Пользовательский интерфейс платежного интегратора : интерфейс интегратора (веб- или Android), к которому клиент имеет доступ для этой учетной записи.
  • Сервер Google : внутренние серверы Google, которые выполняют проверки подлинности и связывают учетную запись интегратора пользователя с GPT (платежным токеном Google).
  • Сервер платежного интегратора : внутренний сервер интегратора, на котором у пользователя есть учетная запись.

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

  1. Пользователь инициирует процесс в пользовательском интерфейсе Google (например, в веб-интерфейсе или интерфейсе приложения).
  2. Пользовательский интерфейс Google отправляет сообщение на сервер Google с запросом аутентификации (запрос данных аутентификации).
  3. Сервер Google отправляет запрос на аутентификацию ( authenticationRequest ) обратно в пользовательский интерфейс Google.
  4. Пользовательский интерфейс Google подключает пользователя к пользовательскому интерфейсу Интегратора платежей ( authenticationRequest ).
  5. Пользователю предлагается ввести свою личность и учетные данные.
  6. Пользовательский интерфейс Интегратора платежей отправляет ответ на сервер Интегратора платежей.
  7. Сервер Payment Integrator проверяет подлинность ответа и отправляет ответ аутентификации ( authenticationResponse ) в пользовательский интерфейс Payment Integrator.
  8. Этот ответ аутентификации пересылается в пользовательский интерфейс Google.
  9. Пользовательский интерфейс Google отправляет сообщение на сервер Google для проверки ответа от интегратора (настройка пользовательского инструмента).
  10. Сервер Google проверяет ответ, проверяя подпись, а затем связывает учетную запись пользователя с Платежным интегратором с помощью GPT и идентификатора ассоциации ( authenticationRequestID , associationID ) в Google.
  11. Сообщение об успешном завершении отправляется на сервер Google.
  12. Сообщение об успешном завершении отправляется в пользовательский интерфейс Google.
  13. Пользователю отправляется сообщение об успехе, в котором говорится, что его инструмент готов к использованию.

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

Несколько инструментов

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

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

Меры предосторожности

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

Срок службы GPT

GPT рассчитан на длительный срок действия и по умолчанию не имеет срока действия. Google настоятельно рекомендует использовать GPT , срок действия которого не истекает. Это позволяет пользователю непрерывно совершать покупки.

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

Другие идентификаторы

Помимо GPT существуют и другие идентификаторы, которыми обмениваются во время ассоциации. Вот их список со ссылками на дополнительную информацию.

  • AssociationId : определенный Google общедоступный токен, идентифицирующий связь между учетной записью клиента в Google и инструментом. В то время как GPT используется только в запросах между серверами, AssociationId является клиентским эквивалентом. ( Дополнительную информацию см. в глоссарии ).
  • AccountId: идентификатор, определенный поставщиком (часто номер учетной записи), используемый для обнаружения мошенничества и понимания взаимоотношений между учетными записями. Агенты по работе с клиентами Google также используют его для выявления, а затем помощи в диагностике проблем клиентов. ( Дополнительную информацию см. в глоссарии ).
  • AccountNickname (или fullAccountNickname ): строка, которую поставщики используют для идентификации своих клиентов. Он также используется в демонстрационных целях. Имя AccountNickname маскируется поставщиком ради SPII , fullAccountNickname не маскируется.