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 и ее аффилированных лиц.
Последнее обновление: 2025-11-02 UTC.