Платежный токен становится неопределенным после обработки Android Pay (getPaymentToken)

Я сослался на это - https://github.com/naoufal/react-native-payments#readme

Вот мой код (отредактированный):>

           const METHOD_DATA = [{
            supportedMethods: ['android-pay'],
            data: {
              merchantIdentifier: 'merchant.co.guru.media',
              supportedNetworks: ['visa', 'mastercard', 'amex'],
              countryCode: 'US',
              currencyCode: 'USD',
              environment: PaymentMethodKeys.environment,
              merchantInfo: {
                // A merchant ID is available after approval by Google.
                // @see {@link https://developers.google.com/pay/api/web/guides/test-and-deploy/integration-checklist}
                merchantId: '0xxxxxxxxxxx6',
                merchantName: 'Application_Merchant'
              },
              paymentMethodTokenizationParameters: {
                tokenizationType: 'GATEWAY_TOKEN',
                parameters: {
                  gateway: 'braintree',
                  "braintree:apiVersion": "v1",
                  "braintree:sdkVersion": '2.4.0',
                  "braintree:merchantId": "jxxxxxxxxxxxxt5",
                  "braintree:clientKey": "03xxxxxxxxxxxxxxe99",
                  'braintree:tokenizationKey': 'production_xqs_jbxxxxxxbx8249xxxxxx5',
                  publicKey: 'jxxxxxxxxxxxxxxxqt',
                }
              }
            }
          }];

 const DETAILS = {
        id: 'demo',
        displayItems: [
          {
            label: 'Movie Ticket',
            amount: { currency: 'USD', value: '15.00' }
          },
          {
            label: 'Shipping',
            amount: { currency: 'USD', value: '0.00' }
          }
        ],
        total: {
          label: 'Merchant Name',
          amount: { currency: 'USD', value: '15.00' }
        },
        shippingOptions: [
          {
            id: 'economy',
            label: 'Economy Shipping',
            amount: { currency: 'USD', value: '0.00' },
            detail: 'Arrives in 3-5 days',
            selected: true
          },
          {
            id: 'express',
            label: 'Express Shipping',
            amount: { currency: 'USD', value: '5.00' },
            detail: 'Arrives tomorrow'
          }
        ]
      };

      const OPTIONS = {
        requestPayerName: true,
        requestPayerPhone: true,
        requestPayerEmail: true,
        requestShipping: true
      };

      const paymentRequest = new PaymentRequest(METHOD_DATA, DETAILS, OPTIONS);
      paymentRequest.show()
        .then(paymentResponse => {
          const { getPaymentToken } = paymentResponse.details;
          console.info('paymentResponse', JSON.stringify(getPaymentToken))
          console.info('paymentResponse', JSON.stringify(paymentResponse))
          return getPaymentToken()
            .then(paymentToken => {
              console.info('paymentToken paymentResponse', JSON.stringify(paymentToken))
                       
            });
        });

Проблема в том, что когда я пытаюсь запустить Android Pay, он возвращает «Запись не найдена».

Полученный ответ выглядит следующим образом

{"serializedPaymentToken":"{\"error\":{\"message\":\"Record not found\"},\"fieldErrors\":[]}","paymentToken":{"error":{"message":"Record not found"},"fieldErrors":[]},"serializedPaymenToken":"{\"error\":{\"message\":\"Record not found\"},\"fieldErrors\":[]}","paymenToken":{"error":{"message":"Record not found"},"fieldErrors":[]}}'

Таким образом, токен становится неопределенным. Не могли бы вы сообщить мне, где может быть скрыта проблема. Я должен упомянуть, что я пробовал этот код на реальном устройстве (с реальной учетной записью Google Pay) и песочнице, и во всех случаях это терпело неудачу.

Заранее спасибо.

Полное раскрытие информации: я работаю в Braintree. Если у вас есть дополнительные вопросы, не стесняйтесь обращаться в службу поддержки по адресу support.braintreepayments.com. Сначала я попробую обновить вашу версию Braintree Android SDK. Google Pay был недоступен в версии 2.4.0. После этой версии было внесено много улучшений, поэтому я бы порекомендовал выполнить обновление до самой последней версии (в настоящее время 2.20.0).

bbusby 21.12.2018 22:48

У меня такая же проблема, и я реализую эту библиотеку github.com/JadavChirag/react-native-GPay. и он отлично работает для меня. Он отлично строит производство и разработку, а также :)

user10811117 31.12.2018 12:43

У меня все еще та же проблема. Вы нашли какие-нибудь решения?

George Fean 19.04.2021 02:29
Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
0
3
480
1

Ответы 1

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

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

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