Полная документация по библиотеке для разных версий Google Pay API доступна на странице com.google.android.gms.wallet. Ниже приведены объекты и методы, которые используются в последней версии Google Pay API (2.0).
Кошелек
Создайте PaymentsClient для тестовой или рабочей среды.
Пример
mPaymentsClient = Wallet.getPaymentsClient( this, new Wallet.WalletOptions.Builder() .setEnvironment(WalletConstants.ENVIRONMENT_TEST) .build() );
PaymentsClient
Клиент для взаимодействия с Google Pay API.
isReadyToPay(IsReadyToPayRequest)
Используйте метод isReadyToPay(IsReadyToPayRequest), чтобы определить, может ли пользователь вернуть способ оплаты из Google Pay API.
Если устройство поддерживает Google Pay и у пользователя уже есть сохраненный способ оплаты или он может его добавить, IsReadyToPay возвращает true. Чтобы определить, сохранил ли пользователь способ оплаты в Google Pay, задайте для параметра IsReadyToPayRequest.existingPaymentMethodRequired значение true.
loadPaymentData(PaymentDataRequest)
Показать окно оплаты Google Pay, в котором можно выбрать способ оплаты и настроить дополнительные параметры.
IsReadyToPayRequest
Создайте объект Java IsReadyToPayRequest, который можно использовать с PaymentsClient.isReadyToPay().
fromJson(java.lang.String)
Создайте объект Java IsReadyToPayRequest из строки в формате JSON. Ожидаемая структура строки в формате JSON описана в справочнике по объекту IsReadyToPayRequest.
PaymentDataRequest
Создайте объект Java PaymentDataRequest, который можно использовать с PaymentsClient.loadPaymentData.
fromJson(java.lang.String)
Создайте объект Java PaymentDataRequest из строки в формате JSON. Ожидаемая структура строки в формате JSON описана в справочнике по объекту PaymentDataRequest.
PaymentData
Обработайте ответ Google Pay API в формате JSON, чтобы использовать его в приложении.
toJson()
Вывод ответа Google Pay API в виде строки в формате JSON. Дополнительную информацию о структуре объекта JSON можно найти в справочнике по объекту PaymentData.
Кнопка оплаты
public void initialize(ButtonOption buttonOptions)
Удобный метод, который используется для инициализации кнопки оплаты Google Pay, оформленной в соответствии с последними требованиями к брендингу Google Pay.
Аргументы
| Название | Описание |
|---|---|
buttonOptions |
Объект, который настраивает кнопку оплаты через Google Pay. Настраиваемые свойства перечислены в разделе ButtonOptions. |
Пример инициализации кнопки оплаты с пользовательскими настройками:
PayButton googlePayPaymentButton = layoutBinding.googlePayPaymentButton; JSONArray paymentMethods = new JSONArray().put(getBaseCardPaymentMethod()); googlePayPaymentButton.initialize( ButtonOptions.newBuilder() .setButtonTheme(ButtonConstants.ButtonTheme.DARK) .setButtonType(ButtonConstants.ButtonType.BUY) .setCornerRadius(100) .setAllowedPaymentMethods(paymentMethods.toString()) .build() );
public void setVisibility(View view)
Этот метод позволяет настроить видимость кнопки оплаты.
Аргументы
| Название | Описание |
|---|---|
View |
|
Пример:
payButton.setVisibility(View.VISIBLE);
public void setOnClickListener(View.OnClickListener listener)
Метод вызывается, когда пользователь нажимает кнопку оплаты через Google Pay.
Аргументы
| Название | Описание |
|---|---|
listener |
Обратный вызов прослушивателя событий, который выполняется, когда событие клика передается кнопке Google Pay. |
BasePaymentDataCallbacksService
Базовый класс сервиса, который размещает обратные вызовы платежных данных, инициированные сервисами Google Play в рамках процесса PaymentsClient.loadPaymentData(PaymentDataRequest).
Расширьте этот сервис в своем приложении и объявите его в файле AndroidManifest.xml с разрешением com.google.android.gms.permission.BIND_PAYMENTS_CALLBACK_SERVICE и фильтром интентов для com.google.android.gms.wallet.callback.PAYMENT_DATA_CALLBACKS.
createPaymentDataCallbacks()
Возвращает реализацию BasePaymentDataCallbacks для обработки входящих событий обратного вызова. Вызывается один раз для каждого события обратного вызова.
BasePaymentDataCallbacks
Абстрактный базовый класс, содержащий обработчики обратных вызовов платежных данных, реализованные продавцом для поддержки динамического ценообразования и авторизации платежей.
onPaymentDataChanged(intermediatePaymentData, onCompleteListener)
Этот метод обрабатывает изменения платежных данных в окне оплаты, например адреса и способа доставки.
Аргументы
Здравствуйте!| Название | Тип | Описание |
|---|---|---|
intermediatePaymentData |
IntermediatePaymentData |
Объект, который содержит выбранный адрес и способ доставки. Подробную информацию можно найти в статье IntermediatePaymentData. |
onCompleteListener |
OnCompleteListener<PaymentDataRequestUpdate> |
Прослушиватель, который возвращает обновленную информацию о транзакции, способах доставки и ошибках в платежных данных. Передайте экземпляр PaymentDataRequestUpdate в complete(). |
Пример
override fun onPaymentDataChanged( intermediatePaymentData: IntermediatePaymentData, onCompleteListener: OnCompleteListener<PaymentDataRequestUpdate> ) { val paymentDataRequestUpdateJson = handlePaymentDataChanged(intermediatePaymentData.toJson()) val update = PaymentDataRequestUpdate.fromJson(paymentDataRequestUpdateJson.toString()) onCompleteListener.complete(update) }
onPaymentAuthorized(paymentData, onCompleteListener)
Этот метод вызывается, когда платеж авторизуется в окне оплаты.
Аргументы
| Название | Тип | Описание |
|---|---|---|
paymentData |
PaymentData |
Объект, содержащий запрошенные данные покупателя. Подробную информацию можно найти в статье PaymentData. |
onCompleteListener |
OnCompleteListener<PaymentAuthorizationResult> |
Прослушиватель, который будет разрешен с результатом авторизации. Передайте экземпляр PaymentAuthorizationResult в complete(). |
Пример
override fun onPaymentAuthorized( paymentData: PaymentData, onCompleteListener: OnCompleteListener<PaymentAuthorizationResult> ) { val paymentAuthorizationResultJson = handlePaymentAuthorized(paymentData.toJson()) val result = PaymentAuthorizationResult.fromJson(paymentAuthorizationResultJson.toString()) onCompleteListener.complete(result) }
IntermediatePaymentData
Обработка промежуточных данных обратного вызова, переданных в BasePaymentDataCallbacks.onPaymentDataChanged.
toJson()
Выводит данные запроса обратного вызова в виде строки в формате JSON. Дополнительную информацию о структуре объекта JSON можно найти в справочной документации по объекту IntermediatePaymentData.
getLastSavedState()
Возвращает Bundle, содержащий состояние, сохраненное во время предыдущей итерации обратного вызова.
PaymentDataRequestUpdate
Создайте объект Java PaymentDataRequestUpdate, который будет возвращаться в BasePaymentDataCallbacks.onPaymentDataChanged.
fromJson(java.lang.String)
Создайте объект Java PaymentDataRequestUpdate из строки в формате JSON. Ожидаемая структура строки в формате JSON описана в справочнике по объекту PaymentDataRequestUpdate.
withUpdatedSavedState(Bundle)
Прикрепляет обновленное состояние Bundle, которое сохраняется между вызовами обратного вызова.
PaymentAuthorizationResult
Создайте объект Java PaymentAuthorizationResult, который будет возвращаться в BasePaymentDataCallbacks.onPaymentAuthorized.
fromJson(java.lang.String)
Создайте объект Java PaymentAuthorizationResult из строки в формате JSON. Ожидаемая структура строки в формате JSON описана в справочной статье об объекте ответа PaymentAuthorizationResult.