Я использую новый 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
Я спросил Google, и вот ответ, который я получил
На сайте разработчиков описано, как связать с существующим пропуском для ваших пользователей, но это не говорит вам, существует ли уже этот проход. Лучший способ отслеживать, сохранен ли проход или нет, — настроить таблицу, которая ссылается на ваши обратные вызовы, чтобы узнать, сохранен ли проход с данным идентификатором в настоящее время.
Вы также можете попробовать прослушать ActivityResult Developers.google.com/wallet/retail/loyalty-cards/… Других способов я не знаю...
Спасибо за ваш ответ. На самом деле, я имею в виду, можем ли мы найти способ проверить, добавили ли пользователи пропуск? Когда они откроют приложение в следующий раз, они увидят в нашем приложении кнопку «Просмотреть в Google Wallet».
В их кодлабе есть проблема, на которую нет ответа github.com/google-pay/wallet-android-codelab/issues/2. В их библиотеке com.google.android.gms:play-services-pay
для этого нет полезных API. После изучения в течение 2-3 дней я просто сдался. На Андроиде вроде как это сделать нельзя, надо делать через BE
К сожалению, API не проверяет, добавлен ли пропуск в настоящий момент в Wallet пользователя.
Лучший способ реализовать что-то подобное — использовать функцию обратного вызова, сохраняя идентификатор пользователя вместе с идентификатором прохода в вашей таблице данных, а затем опрашивая таблицу данных каждый раз, когда кнопка загружается, чтобы увидеть, сохранил ли пользователь уже свой проход. Это требует дополнительной разработки; однако это возможно реализовать. Кроме того, обратите внимание, что, к сожалению, наша служба поддержки не сможет помочь с этим.
Выше приведен ответ службы поддержки Google Wallet, и нам обязательно нужно реализовать это через BE.
Означает ли это, что мы НЕ можем проверить, был ли пропуск добавлен в Google Wallet? ТОЛЬКО Google Кошелек будет отправлять соответствующий почтовый запрос на нашу конечную точку, когда пользователь добавляет или удаляет событие?