从 Google 支付中排除信用卡

Exclude credit cards from Google Pay

最近宣布,自 2020 年 4 月起,英国将禁止通过信用卡进行博彩。因此,我需要从 Google 支付中排除信用卡,这样用户就无法 select 将信用卡作为支付方式。

我知道我可以像这样排除特定的卡网络:

private static JSONArray getAllowedCardNetworks() {
  return new JSONArray()
      .put("AMEX")
      .put("DISCOVER")
      .put("INTERAC");
      .put("JCB")
      .put("MASTERCARD")
      .put("VISA");
}

但是,考虑到卡网络可以同时提供借记卡和信用卡,排除使用网络是没有意义的。

还可以选择通过

排除预付卡
allowPrepaidCards

但是我看不到任何关于排除信用卡或借记卡的信息,这是不支持的吗?

编辑:

与 Google 交谈后,他们给了我以下回复,我会在该功能可用时更新。同时听从 Sam 的建议。

Thank you for reaching out. Unfortunately, we currently don't have a way of excluding credit cards from Google Pay API. We are aware of this and we are reviewing the possible options we have to enable this feature. Please let us check with the product the roadmap of this feature and we will get back to you.

我正在阅读文档,我能理解的最接近的信息是在您收到 PaymentData 之后,您可以使用 getCardClass()

检查卡类型
PaymentData paymentData = PaymentData.getFromIntent(intent);
if (paymentData.getCardInfo().getCardClass() != WalletConstants.CARD_CLASS_DEBIT) {
    // show error to user
}
else
{
    // proceed to payment.
}

阅读文档heregetCardClass的return类型是int,表示如下:

  • 常数值:1 = CARD_CLASS_CREDIT
  • 常数值:2 = CARD_CLASS_DEBIT
  • 常数值:3 = CARD_CLASS_PREPAID
  • 常数值:4 = CARD_CLASS_UNKNOWN

希望对您有所帮助。

此功能现已可用,但文档尚未更新。

查看网络实施示例:https://jsfiddle.net/6983ofu2/

const baseCardPaymentMethod = {
  type: 'CARD',
  parameters: {
    allowedAuthMethods: allowedCardAuthMethods,
    allowedCardNetworks: allowedCardNetworks,
    allowCreditCards: false
  }
};

看看它是否也适用于 Android 会很有趣。