Google Pay - ОШИБКА: сбой запроса - непредвиденная ошибка разработчика. Повторите попытку позже.

Когда я пытаюсь заплатить (в тестовой среде) с помощью Google Pay на реальном устройстве, я получаю сообщение об ошибке в заголовке.

Я попытался изменить «шлюз» на строку, как это показывают документы Google, но пока ничего.

const DETAILS = {
id: 'COMPANY',
displayItems: [
  {
    label: 'Phone Bill',
    amount: { currency: 'USD', value: compTotal }
  }
],
total: {
  label: 'COMPANY',
  amount: { currency: 'USD', value: compTotal }
}
};

// GOOGLE PAY
const METHOD_DATA = [{
  supportedMethods: ['android-pay'],
  data: {
    supportedNetworks: ['visa', 'mastercard', 'amex'],
    currencyCode: 'USD',
    environment: 'TEST', // defaults to production
    paymentMethodTokenizationParameters: {
      tokenizationType: 'GATEWAY_TOKEN',
      parameters: {
        gateway: 'braintree',
        'braintree:tokenizationKey': 'sandbox_XXXXXXXXXXX'
      }
    }
  }
}];

const paymentRequest = new PaymentRequest(METHOD_DATA, DETAILS);

paymentRequest.show()
.then(paymentResponse => {
  const { getPaymentToken } = paymentResponse.details;

  return getPaymentToken()
    .then(paymentToken => {
      const { ephemeralPublicKey, encryptedMessage, tag } = paymentToken.details;

      return fetch('...', {
        method: 'POST',
        body: {
          ephemeralPublicKey,
          encryptedMessage,
          tag
        }
      })
      .then(res => res.json())
      .then(paymentResponse.complete('success'), handleConfirm())
      .catch(paymentResponse.complete('fail'), alert(1));
    });
});
};

Ожидаемый результат - прохождение платежа.


person Owpur    schedule 28.12.2018    source источник


Ответы (4)


Чтобы узнать больше об этой ошибке, выполните следующие действия:

1- Убедитесь, что на вашем компьютере установлен Android Debug Bridge (adb). Убедитесь, что на вашем устройстве включена отладка по USB. Для получения дополнительной информации см. Отладка вашего приложения.

2- Подключите телефон к компьютеру с помощью кабеля USB.

3- Выполните следующую команду в терминале или командной строке на вашем компьютере:

adb -d logcat -s WalletMerchantError
person Kratos    schedule 01.04.2020
comment
TL; DR: поиск WalletMerchantError в журналах - person JerabekJakub; 18.05.2021

Оказывается, я не смог сделать это с помощью React-Native, потому что React Native Payments не полностью поддерживал Google Pay, который, в свою очередь, не полностью поддерживал Braintree и вообще не поддерживал Payeezy.

Мне пришлось прибегнуть к собственному коду (Java), а затем связать React-Native с этим собственным модулем. Это было довольно просто.

Я использовал эту демонстрацию на Github, чтобы разобраться в ней. Я использовал Braintree в качестве обработчика платежей, но, похоже, я перейду на Payeezy.

Я получал ошибку в заголовке, потому что, как я уже сказал, Google Pay не полностью поддерживался React-Native-Payments, который, в свою очередь, не поддерживал Braintree, и когда ошибка возникала, потому что я давал только эту информацию -

parameters: {
  gateway: 'braintree',
  'braintree:tokenizationKey': 'sandbox_TOKEN-HERE'
}

Но похоже, что мне нужно было использовать это (в модуле Java) -

.put("gateway", "braintree")
.put("braintree:apiVersion", "v1")
.put("braintree:sdkVersion", "BETA")
.put("braintree:clientKey", "sandbox_TOKEN-HERE")
.put("braintree:merchantId", "TOKEN-HERE"));

person Owpur    schedule 02.01.2019
comment
Откуда вы берете последнюю версию apiVersion и sdkVersion? - person Faisal Karim; 30.01.2021

У меня ошибка из-за несоответствия типа объекта цены. Я поместил значение float в totalPrice. После обновления

data class TransactionInfo(
        @SerializedName("totalPrice") val price: String,
        @SerializedName("totalPriceStatus") val priceStatus: String,
        @SerializedName("currencyCode") val currency: String
)

Это отлично работает в ENVIRONMENT_TEST случае.

person Vahe Gharibyan    schedule 21.10.2019

Используйте https://google.com/pay в разделе supportedMethods, чтобы использовать Google Pay через API запроса оплаты.

Просмотрите эти несколько примеров для получения дополнительной информации: официальные документы, образец от команды Chrome.

person Jose L Ugia    schedule 01.01.2019