Маркер оплаты становится неопределенным после процесса Android Pay (getPaymentToken) - PullRequest
0 голосов
/ 19 декабря 2018

Я сослался на это - 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.log('paymentResponse', JSON.stringify(getPaymentToken))
          console.log('paymentResponse', JSON.stringify(paymentResponse))
          return getPaymentToken()
            .then(paymentToken => {
              console.log('paymentToken paymentResponse', JSON.stringify(paymentToken))
                       
            });
        });

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

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

{"serializedPaymentToken": "{\" error \ ": {\" message \ ": \" Запись не найдена \ "}, \" fieldErrors \ ": []}", "paymentToken": {"error": {"message": "Запись не найдена"}, "fieldErrors": []}, "serializedPaymenToken": "{\" error \ ": {\" message \ ": \" Запись не найдена \ "}, \ "fieldErrors \": []} "," paymenToken ": {" error ": {" message ":" Запись не найдена "}," fieldErrors ": []}} '

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

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

1 Ответ

0 голосов
/ 01 января 2019

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

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

...