Google Pay - ERROR: Request Failed - Unexpected developer error, please try again later
Google Pay - ERROR: Request Failed - Unexpected developer error, please try again later
当我尝试在真实设备上使用 Google 付款(在测试环境中)时,我在标题中收到错误消息。
我曾尝试将 'gateway' 更改为 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));
});
});
};
预期结果是付款成功。
在 supportedMethods
下使用 https://google.com/pay
以利用 Google 通过支付请求支付 API。
查看以下几个示例以供进一步参考:official docs, sample from the Chrome team。
原来我无法用 React-Native 做到这一点,因为 'React Native Payments' 不完全支持 Google Pay 反过来又不完全支持 Braintree & 不支持 Payeezy根本。
我不得不求助于本机代码 (Java),然后 link React-Native 使用该本机模块。这很简单。
我在 Github 上使用了 this 演示来指导我完成它。我之前使用 Braintree 作为支付处理器,但看起来我将切换到 Payeezy。
我在标题中遇到了错误,因为就像我说的那样 Google 'React-Native-Payments' 不完全支持 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"));
由于价格对象的类型不匹配,我遇到了一些错误。
我将 float
值放在 totalPrice
中。
更新后
data class TransactionInfo(
@SerializedName("totalPrice") val price: String,
@SerializedName("totalPriceStatus") val priceStatus: String,
@SerializedName("currencyCode") val currency: String
)
这在 ENVIRONMENT_TEST
情况下工作正常。
要了解有关此错误的更多信息,请按照以下步骤操作:
1- 确保 Android Debug Bridge (adb) 安装在您的计算机上..
确保您的设备上启用了 USB 调试。有关详细信息,请参阅调试您的应用程序。
2- 使用 USB 数据线将 phone 连接到计算机。
3- 运行 在您计算机的终端或命令提示符中输入以下命令:
adb -d logcat -s WalletMerchantError
当我尝试在真实设备上使用 Google 付款(在测试环境中)时,我在标题中收到错误消息。
我曾尝试将 'gateway' 更改为 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));
});
});
};
预期结果是付款成功。
在 supportedMethods
下使用 https://google.com/pay
以利用 Google 通过支付请求支付 API。
查看以下几个示例以供进一步参考:official docs, sample from the Chrome team。
原来我无法用 React-Native 做到这一点,因为 'React Native Payments' 不完全支持 Google Pay 反过来又不完全支持 Braintree & 不支持 Payeezy根本。
我不得不求助于本机代码 (Java),然后 link React-Native 使用该本机模块。这很简单。
我在 Github 上使用了 this 演示来指导我完成它。我之前使用 Braintree 作为支付处理器,但看起来我将切换到 Payeezy。
我在标题中遇到了错误,因为就像我说的那样 Google 'React-Native-Payments' 不完全支持 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"));
由于价格对象的类型不匹配,我遇到了一些错误。
我将 float
值放在 totalPrice
中。
更新后
data class TransactionInfo(
@SerializedName("totalPrice") val price: String,
@SerializedName("totalPriceStatus") val priceStatus: String,
@SerializedName("currencyCode") val currency: String
)
这在 ENVIRONMENT_TEST
情况下工作正常。
要了解有关此错误的更多信息,请按照以下步骤操作:
1- 确保 Android Debug Bridge (adb) 安装在您的计算机上.. 确保您的设备上启用了 USB 调试。有关详细信息,请参阅调试您的应用程序。
2- 使用 USB 数据线将 phone 连接到计算机。
3- 运行 在您计算机的终端或命令提示符中输入以下命令:
adb -d logcat -s WalletMerchantError