Как проверить, добавлен ли пропуск в Google Wallet?

Я использую новый Google Wallet API implementation("com.google.android.gms:play-services-pay:16.1.0") для добавления пропусков в приложение Google Wallet.

Вот образец:

import com.google.android.gms.pay.PayClient

private val walletClient: PayClient = Pay.getClient(this)
walletClient.savePassesJwt(passJwtToken, this, addToGoogleWalletRequestCode)

Работает корректно, добавляет пропуск в Google Wallet. Если он был добавлен ранее, на экране появится сообщение о том, что пропуск уже добавлен в Wallet.

Но я не могу найти способ, как проверить, был ли пропуск уже добавлен в Google Wallet, чтобы отображался правильный текст на кнопке. Потому что в гайдлайнах есть два типа кнопок :

Как проверить, был ли уже добавлен пропуск?

из документации и codelab Нашел только как проверить статус доступности платного API

2
0
176
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я спросил Google, и вот ответ, который я получил

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

Означает ли это, что мы НЕ можем проверить, был ли пропуск добавлен в Google Wallet? ТОЛЬКО Google Кошелек будет отправлять соответствующий почтовый запрос на нашу конечную точку, когда пользователь добавляет или удаляет событие?

user21098583 26.05.2023 09:28

Вы также можете попробовать прослушать ActivityResult Developers.google.com/wallet/retail/loyalty-cards/… Других способов я не знаю...

George Shalvashvili 27.05.2023 15:06

Спасибо за ваш ответ. На самом деле, я имею в виду, можем ли мы найти способ проверить, добавили ли пользователи пропуск? Когда они откроют приложение в следующий раз, они увидят в нашем приложении кнопку «Просмотреть в Google Wallet».

user21098583 29.05.2023 04:22

В их кодлабе есть проблема, на которую нет ответа github.com/google-pay/wallet-android-codelab/issues/2. В их библиотеке com.google.android.gms:play-services-pay для этого нет полезных API. После изучения в течение 2-3 дней я просто сдался. На Андроиде вроде как это сделать нельзя, надо делать через BE

George Shalvashvili 30.05.2023 17:28

К сожалению, API не проверяет, добавлен ли пропуск в настоящий момент в Wallet пользователя.

Лучший способ реализовать что-то подобное — использовать функцию обратного вызова, сохраняя идентификатор пользователя вместе с идентификатором прохода в вашей таблице данных, а затем опрашивая таблицу данных каждый раз, когда кнопка загружается, чтобы увидеть, сохранил ли пользователь уже свой проход. Это требует дополнительной разработки; однако это возможно реализовать. Кроме того, обратите внимание, что, к сожалению, наша служба поддержки не сможет помочь с этим.

Выше приведен ответ службы поддержки Google Wallet, и нам обязательно нужно реализовать это через BE.

Другие вопросы по теме