问题描述
我正在尝试在我的页面上集成Google Pay,正如预期的那样,首先在SandBox环境中进行此操作,但是遇到一个问题,当我单击Google Pay按钮时,它会打开实时域并要求我输入真实的卡,尽管我设置了所有与沙盒环境有关的内容。
这是BT documentation之后的代码。
var createGooglePaymentComponent = function(clientInstance){
var button = document.querySelector('#google-pay-button');
var paymentsClient = new google.payments.api.PaymentsClient({
environment: 'TEST' // Or 'PRODUCTION'
});
braintree.googlePayment.create({
client: clientInstance,googlePayVersion: 2,},function (googlePaymentErr,googlePaymentInstance) {
paymentsClient.isReadyToPay({
apiVersion: 2,apiVersionMinor: 0,allowedPaymentMethods: googlePaymentInstance.createPaymentDataRequest().allowedPaymentMethods,}).then(function(response) {
if (response.result) {
button.addEventListener('click',function (event) {
event.preventDefault();
var paymentDataRequest = googlePaymentInstance.createPaymentDataRequest({
transactionInfo: {
currencyCode: 'USD',totalPriceStatus: 'FINAL',totalPrice: '100.00',}
});
var cardPaymentMethod = paymentDataRequest.allowedPaymentMethods[0];
cardPaymentMethod.parameters.billingAddressrequired = true;
paymentsClient.loadPaymentData(paymentDataRequest).then(function(paymentData) {
googlePaymentInstance.parseResponse(paymentData,function (err,result) {
if (err) {
// Handle parsing error
}
// Send result.nonce to your server
});
}).catch(function (err) {
});
});
}
}).catch(function (err) {
});
});
};
这是我得到的屏幕截图:
知道为什么会这样吗?
解决方法
在TEST环境中使用Google Pay将返回TEST付款凭证,该凭证实际上不会收取您提供的付款方式的费用。可以理解,您不想使用 real 付款明细。
如果您希望能够从预定义的测试卡列表中进行选择,请按照此处的说明进行操作:https://developers.google.com/pay/api/web/guides/resources/test-card-suite
简而言之,您需要加入googlepay-test-mode-stub-data Google Group并在与该用户访问Google Pay付款表时显示测试帐户列表。