Я сослался на это - 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) и песочнице, и во всех случаях это терпело неудачу.
Заранее спасибо.
У меня такая же проблема, и я реализую эту библиотеку github.com/JadavChirag/react-native-GPay. и он отлично работает для меня. Он отлично строит производство и разработку, а также :)
У меня все еще та же проблема. Вы нашли какие-нибудь решения?
Используйте https://google.com/pay
под supportedMethods
вместо android-pay
, чтобы использовать Google Pay через API запроса оплаты.
Проверьте эти несколько примеров для дальнейшего использования: официальные документы, образец от команды Chrome.
Полное раскрытие информации: я работаю в Braintree. Если у вас есть дополнительные вопросы, не стесняйтесь обращаться в службу поддержки по адресу support.braintreepayments.com. Сначала я попробую обновить вашу версию Braintree Android SDK. Google Pay был недоступен в версии 2.4.0. После этой версии было внесено много улучшений, поэтому я бы порекомендовал выполнить обновление до самой последней версии (в настоящее время 2.20.0).