API Google Кошелька позволяет вашим пользователям добавлять объект в Google Кошелек из Интернета. Пользователи могут добавлять свои карты прямо с вашего сайта.
В этом справочнике представлены сведения об элементе HTML g:savetoandroidpay
, который отображает кнопку API Google Кошелька, а также веб-токен JSON , который описывает ваш веб-сервис для Google.
API Google Кошелька JavaScript
Для автоматического анализа HTML-тегов g:savetoandroidpay
при загрузке включите стандартный JavaScript.
<script src="https://apis.google.com/js/platform.js" type="text/javascript"></script>
Для приложений AJAX и явного отображения кнопок API Google Кошелька включите параметр "parsetags": "explicit"
.
<script src="https://apis.google.com/js/platform.js" type="text/javascript"> {"parsetags": "explicit"} </script>
g:savetoandroidpay
HTML-тег
Тег пространства имен g:savetoandroidpay
определяет размещение и различные атрибуты кнопки «Добавить в Google Кошелек». Используйте этот тег, если вы визуализируете серверную часть HTML и JWT.
<g:savetoandroidpay jwt="JWT" onsuccess="successHandler" onfailure="failureHandler" />
Поле | Тип | Необходимый | Описание |
---|---|---|---|
height | Нить | Н | Высота отображаемой кнопки. Возможные значения: small (высота 30 пикселей) и standard (высота 38 пикселей). height по умолчанию small . Обратитесь к кнопкам API Google Кошелька , чтобы увидеть примеры кнопок с различными настройками height . |
jwt | Нить | Да | API Google Кошелька JWT. |
onsuccess | Нить | Н | Строковое имя функции обработчика обратного вызова для успешного сохранения. |
onfailure | Нить | Н | Строковое имя функции обработчика обратного вызова при ошибке сохранения. Этой функции передается объект ошибки, содержащий errorCode и errorMessage. |
onprovidejwt | Нить | Н | Строковое имя функции-обработчика предоставления JWT. Целью этой функции является перехват и потенциальное манипулирование данными JWT перед добавлением объекта в Google Кошелек. Эта функция не принимает никаких параметров и должна возвращать JWT в виде строки. При реализации обработчика событий исходные данные JWT можно получить в поле this.getOpenParams().renderData.userParams.jwt . |
size | Нить | Н | Ширина отображаемой кнопки. Вы можете установить size matchparent , чтобы ширина соответствовала ширине родительского элемента. Или оставьте size неопределенным, чтобы ширина соответствовала ширине text . Обратитесь к кнопкам API Google Кошелька , чтобы увидеть примеры кнопок с различными настройками size . |
text | Нить | Н | Устарело |
textsize | Нить | Н | Если указан textsize=large , отображается значительно увеличенный размер текста и размера кнопок для случаев с особыми требованиями к пользовательскому интерфейсу. |
theme | Нить | Н | Тема кнопки для отображения. Возможные значения: dark и light . Тема по умолчанию dark . Обратитесь к кнопкам API Google Кошелька , чтобы увидеть примеры кнопок с различными настройками theme . |
API Google Кошелька JWT
JWT API Google Кошелька определяет объекты и классы для сохранения.
JSON-представление
{ "iss": "example_service_account@developer.gserviceaccount.com", "aud": "google", "typ": "savetowallet", "iat": 1368029586, "payload": { "eventTicketClasses": [{ ... //Event ticket Class JSON }], "eventTicketObjects": [{ // Event ticket Object JSON }], "flightClasses": [{ // Flight Class JSON }], "flightObjects": [{ // Flight Object JSON }], "giftCardClasses": [{ // Gift card Class JSON }], "giftCardObjects": [{ // Gift card Object JSON }], "loyaltyClasses": [{ // Loyalty Class JSON }], "loyaltyObjects": [{ // Loyalty Object JSON }], "offerClasses": [{ // Offer Class JSON }], "offerObjects": [{ // Offer Object JSON }], "transitClasses": [{ // Transit Class JSON }], "transitObjects": [{ // Transit Object JSON }] }, "origins": ["http://baconrista.com", "https://baconrista.com"] }
Поля
Поле | Тип | Необходимый | Описание |
---|---|---|---|
iss | Нить | Да | Ваш аккаунт службы Google Cloud сгенерировал адрес электронной почты. |
aud | Нить | Да | Аудитория. Аудиторией объектов API Google Кошелька всегда будет google . |
typ | Нить | Да | Тип JWT. Аудитория объектов API Google Кошелька всегда будет savetowallet . |
iat | Целое число | Да | Выдается в секундах с начала эпохи. |
payload | Объект | Да | Объект полезной нагрузки. |
payload.eventTicketClasses | Множество | Н | Класс билета мероприятия, который нужно сохранить. |
payload.eventTicketObjects | Множество | Н | Объект билета события, который необходимо сохранить. |
payload.flightClasses | Множество | Н | Класс полета, который необходимо сохранить. |
payload.flightObjects | Множество | Н | Объект полета, который необходимо сохранить. |
payload.giftCardClasses | Множество | Н | Класс подарочной карты, который нужно сохранить. |
payload.giftCardObjects | Множество | Н | Объект подарочной карты, который нужно сохранить. |
payload.loyaltyClasses | Множество | Н | Класс лояльности, который нужно сохранить. |
payload.loyaltyObjects | Множество | Н | Лояльность. Объект для сохранения. |
payload.offerObjects | Множество | Н | Предложите Объект для сохранения. |
payload.offerClasses | Множество | Н | Предложите класс, чтобы сэкономить. |
payload.transitObjects | Множество | Н | Транзитный объект для сохранения. |
payload.transitClasses | Множество | Н | Транзитный класс для сохранения. |
origins | Множество | Да | Массив доменов, которые необходимо одобрить для функции сохранения JWT. Кнопка API Google Кошелька не будет отображаться, если поле origins не определено. Потенциально вы можете получить сообщения «Загрузка запрещена X-Frame-Options» или «Отказ от отображения» в консоли браузера, если поле происхождения не определено. |
Ваш закодированный JWT должен выглядеть примерно так:
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJnb29nbGUiLCJvcmlnaW5zIjpbImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSJdLCJpc3MiOiJzMmFwLXRvb2wuZ29vZ2xlLmNvbUBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20iLCJpYXQiOjE1NTE5ODcxNTEsInR5cCI6InNhdmV0b3dhbGxldCIsInBheWxvYWQiOnsib2ZmZXJPYmplY3RzIjpbeyJpZCI6IjMyMDI0MTMyNDE4NDM2OTk0MDEuMDFfT2ZmZXJPYmplY3RJZCJ9XX19.maHX40WWT29TC_kEb90EKQBH9AiTYAZR3153K8UI7fznVnfjVdlwsH_GKTECV3PGXdNnKCcmatUbKsONC0bxrnAHYG02kuvA1D3hSctz_amU66ntsvGIDe13mpxTzhI8fPvt9KMP1iaO7uOJuLQIHwipu4uRFAjyFaHGVaSFaP9c53qQyb_Zgyyk50M-MhH2n4kDpstNCqUJKWaadQkOWjrtMjwGzQ_ME04lbR4wb_mfK1A7Rc1UieWkxM9aMl5TOPubBKxKRRk_CqillN8XoTl9MI5RRGPuElVO28zGpYlFS6BarzDaaUfmbRZGvfF8ZiKrHZKxVrJjfZIJ2TCcDw
gapi.savetoandroidpay.render
Эта функция позволяет явно отображать кнопку API Google Кошелька.
gapi.savetoandroidpay.render("dom-container",{ "jwt": "JWT", "onsuccess": "successHandler", "onfailure": "failureHandler" });
Поле | Тип | Необходимый | Описание |
---|---|---|---|
dom-container | Нить | Да | Идентификатор контейнера для размещения кнопки API Google Кошелька. |
jwt | Нить | Да | JWT определяет содержимое для сохранения. |
onsuccess | Нить | Н | Строковое имя функции обработчика обратного вызова для успешного сохранения. |
onfailure | Нить | Н | Строковое имя функции обработчика обратного вызова при ошибке сохранения. Этой функции передается объект ошибки, содержащий errorCode и errorMessage. |
onprovidejwt | Нить | Н | Строковое имя функции-обработчика предоставления JWT. Цель этой функции — перехватить данные JWT и потенциально манипулировать ими до того, как объект будет добавлен в Google Кошелек. Эта функция не принимает никаких параметров и должна возвращать JWT в виде строки. При реализации обработчика событий исходные данные JWT можно получить в поле this.getOpenParams().renderData.userParams.jwt . |
Коды ошибок и сообщения API Google Кошелька
В следующих таблицах перечислены коды ошибок и сообщения об ошибках по умолчанию, передаваемые в объекте ошибки функции обратного вызова при сбое, когда объект не удается успешно сохранить с помощью кнопки JavaScript.
{ "errorCode": "errorCode", "errorMessage": "errorMessage" }
errorCode | errorMessage |
---|---|
SERVICE_FAILURE | На сервере Google Кошелька произошла ошибка. |
CLASS_NOT_FOUND | Класс, указанный в объекте, не найден. |
CLASS_MISMATCH | Объект должен присутствовать, иметь тот же тип и должен ссылаться на вложенный класс. |
ORIGIN_MISMATCH | Происхождение кнопки не соответствует указанному в списке происхождения. |
INVALID_NUM_TYPES | Можно указать только один тип объекта. |
INVALID_SIGNATURE | Подпись не удалось проверить. |
INVALID_DUPLICATE_IDS | Дублирование объектов или классов не допускается. |
INVALID_JWT | Неверный JWT. |
INVALID_EXP_IAT | Срок действия JWT истек или он был выпущен в будущем. |
INVALID_AUD | Недопустимое значение поля AUD. |
INVALID_TYP | Недопустимое значение поля TYP. |
INVALID_NUM_OBJECTS | Для карт лояльности, подарочных карт и предложений можно указать ровно один объект и не более одного класса. |
MALFORMED_ORIGIN_URL | Неверный исходный URL. URL-адрес должен содержать протокол и домен. |
MISSING_ORIGIN | Необходимо указать происхождение. |
MISSING_FIELDS | В закрытом объекте или классе отсутствовали обязательные поля. |
Локализация
Язык кнопки JavaScript меняется в зависимости от следующих критериев:
- Если пользователь вошел в Google, кнопка отображается на предпочитаемом языке, указанном в профиле учетной записи Google пользователя. Пользователь может прочитать «Изменить язык» , чтобы узнать, как изменить предпочтительный язык своей учетной записи Google.
- Если пользователь не вошел в систему Google, кнопка использует значение
ACCEPT-LANGUAGE
в HTTP-заголовке.
Если вы заметили, что кнопка не отображается на правильном языке в соответствии с приведенной выше логикой или если формулировка неестественна, обратитесь в нашу службу поддержки .
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2024-10-29 UTC.