android - 如果我为支付 token 化选项选择 "quick-start-demo"方法,Google Pay "DIRECT"不显示卡列表

标签 android payment google-pay

我已按照提供的教程进行操作 HERE.可以找到快速入门演示HERE .

如果我在方法下方的“tokenizationSpecification”参数中选择,

private static JSONObject getGatewayTokenizationSpecification() throws JSONException {
return new JSONObject(){{
  put("type", "PAYMENT_GATEWAY");
  put("parameters", new JSONObject(){{
    put("gateway", "example");
    put("gatewayMerchantId", "exampleGatewayMerchantId");
    }
  });
}};

}

它工作正常,但如果我选择以下方法,

private static JSONObject getDirectTokenizationSpecification()
        throws JSONException, RuntimeException {
    if (Constants.DIRECT_TOKENIZATION_PARAMETERS.isEmpty()
            || Constants.DIRECT_TOKENIZATION_PUBLIC_KEY.isEmpty()
            || Constants.DIRECT_TOKENIZATION_PUBLIC_KEY == null
            || Constants.DIRECT_TOKENIZATION_PUBLIC_KEY == "REPLACE_ME") {
        throw new RuntimeException(
                "Please edit the Constants.java file to add protocol version & public key.");
    }
    JSONObject tokenizationSpecification = new JSONObject();

    tokenizationSpecification.put("type", "DIRECT");
    JSONObject parameters = new JSONObject(Constants.DIRECT_TOKENIZATION_PARAMETERS);
    tokenizationSpecification.put("parameters", parameters);

    return tokenizationSpecification;
}

它不工作。[不显示我的卡片列表。]

注意:-我已经执行了以下方法来生成公钥并将其替换为常量文件。

#生成私钥 openssl ecparam -name prime256v1 -genkey -noout -out key.pem

# generate a base64-encoded public key

openssl ec -in key.pem -pubout -text -noout 2> /dev/null | grep "pub:" -A5 | sed 1d | xxd -r -p | base64 | paste -sd "\0" -

问题:- - 我必须在谷歌支付中有开发者资料才能运行演示吗?

最佳答案

在这种情况下,国家/地区可能是一个因素。

要消除这种情况,您可以尝试创建一个新的 Google 帐户以进行测试吗?在美国创建此 Google 帐户并向该帐户添加付款方式/信用卡。

使用以下示例对其进行测试:https://jsfiddle.net/pxsb4jhn/ (它适用于我,我位于美国)

const allowedCardNetworks = ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"];

const tokenizationSpecification = {
  "type": "DIRECT",
  "parameters": {
    "protocolVersion": "ECv2",
    "publicKey": "BOdoXP+9Aq473SnGwg3JU1aiNpsd9vH2ognq4PtDtlLGa3Kj8TPf+jaQNPyDSkh3JUhiS0KyrrlWhAgNZKHYF2Y="
  }
};

如果它能正常工作并显示卡片,则可能是您使用的用户所在的国家/地区现在提供 DIRECT 集成的问题。

它仍然不起作用,这可能是卡不支持 DIRECT 集成的问题,在这种情况下,请尝试使用不同的卡(最好来自美国等其他国家/地区 - 如果您不这样做,这可能会很困难有一个可用的)。

关于android - 如果我为支付 token 化选项选择 "quick-start-demo"方法,Google Pay "DIRECT"不显示卡列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59105433/

相关文章:

android - 应用程序android应用程序的简单捐赠

button - 将优惠券代码选项放入 Paypal 按钮

Android Studio - 导入项目和打开项目的区别

android - 为构建变体指定基础

paypal - 如何更好地为 3rd 方卖家集成 Paypal "Buy Now"按钮?

java - 如何通过 android java 发送 google pay "Request"像 amazon bhim pay 在线支付

javascript - 如何在 Android 的 React Native 中以编程方式打开 Tez 应用程序(印度的 Google Pay 应用程序)?

java - Google pay isReadyToPay 方法返回 false

关于尾随字符的 Android 计费异常

android - 在 OpenGL-ES 2.0 中渲染多个 2D 图像