google-pay - CRYPTOGRAM_3DS – 为什么它不能作为唯一的选择?

标签 google-pay

我正在尝试将 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/

相关文章:

android - Google 支付交易失败并出现 409 错误

android - 测试环境 "there are no accepted cards available for use with this merchant"Google play集成错误

flutter - 我想在我的 Flutter 应用程序中将 Google Pay 与 Stripe 连接

coupon - 如何将 'Add to Wallet' 按钮添加到网站以将优惠券添加到 Apple Wallet 和 Google Pay 帐户

javascript - 没有可接受的卡可用于此商家 - Google Pay

android - Google Pass 标签未显示在 iPhone 上的 Google Pay 应用中

android - Google Pay 无法与 Braintree SDK 配合使用

android - 当我将 existingPaymentMethodRequired 设置为 true 时,isReadyToPayRequest 返回 false

javascript - 为什么付款实现在js中被认为是安全的?

android - Google支付预授权付款