作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 Google Pay 支持添加到我们已经为本地应用程序工作的网站。应用内实现不允许使用 PAN_ONLY
卡(由于高退款),仅允许使用 CRYPTOGRAM_3DS
。这很好用。
当我将网站配置为仅允许 CRYPTOGRAM_3DS
时,我永远无法让 paymentsClient.isReadyToPay()
返回 true。我尝试过不同的 Android 设备,这些设备能够进行应用内支付但没有成功。明确一点:如果我允许 PAN_ONLY
,那么 Google Pay 会按预期工作,我可以获得 token 。
如何排查发生这种情况的原因?如果您从设置配置中删除 PAN_ONLY
,它对其他人有用吗?
谢谢!
最佳答案
CRYPTOGRAM_3DS
指的是标记化的卡片。也就是说,已添加并存储在您的 Android 设备上的卡片。您可以使用这些卡在店内(而非应用内)通过触碰付款进行支付。
如果您仅使用 CRYPTOGRAM_3DS
,这意味着它目前只能在用户已保存 token 化卡的 Android 设备上运行。
我将以下示例放在一起进行演示(确保您在具有适当卡的 Android 设备上进行测试):https://jsfiddle.net/w5ptorbd/
<script src="https://unpkg.com/@google-pay/button-element@2.x/dist/index.umd.js"></script>
<google-pay-button environment="TEST"></google-pay-button>
const button = document.querySelector('google-pay-button');
button.paymentRequest = {
apiVersion: 2,
apiVersionMinor: 0,
allowedPaymentMethods: [
{
type: 'CARD',
parameters: {
allowedAuthMethods: ['CRYPTOGRAM_3DS'],
allowedCardNetworks: ['MASTERCARD', 'VISA'],
},
tokenizationSpecification: {
type: 'PAYMENT_GATEWAY',
parameters: {
gateway: 'example',
gatewayMerchantId: 'exampleGatewayMerchantId',
},
},
},
],
merchantInfo: {
merchantId: '12345678901234567890',
merchantName: 'Demo Merchant',
},
transactionInfo: {
totalPriceStatus: 'FINAL',
totalPriceLabel: 'Total',
totalPrice: '100.00',
currencyCode: 'USD',
countryCode: 'US',
},
};
button.addEventListener('loadpaymentdata', event => {
console.log('load payment data', event.detail);
});
button.addEventListener('readytopaychange', event => {
console.log('ready to pay change', event.detail);
});
关于google-pay - CRYPTOGRAM_3DS – 为什么它不能作为唯一的选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63936401/
我是一名优秀的程序员,十分优秀!