微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CRYPTOGRAM_3DS-为什么它不是唯一的选择?

如何解决CRYPTOGRAM_3DS-为什么它不是唯一的选择?

我正在尝试将Google Pay支持添加到我们已经为本地应用程序工作的网站。应用内实现不允许PAN_ONLY卡(由于高退款率),仅允许CRYPTOGRAM_3DS。这样就可以了。

当我将网站配置为仅允许CRYPTOGRAM_3DS时,我永远无法使paymentsClient.isReadyToPay()返回true。我尝试了不同的Android设备,这些设备无法进行应用内付款。需要说明的是-如果我允许PAN_ONLY,则Google Pay可以正常工作,并且我可以获取令牌。

如何解决这种情况的原因?如果您从设置配置中删除PAN_ONLY,它是否对其他人有用?

谢谢!

解决方法

CRYPTOGRAM_3DS指代币卡。也就是说,已添加并存储在您的Android设备上的卡。这些卡可用于通过点按付款在店内(而非应用内)付款。

如果仅使用CRYPTOGRAM_3DS,则意味着它当前仅在用户保存了令牌卡的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);
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。