android - 如果我为 Paymenttokenization 选项选择“DIRECT”方法,Google Pay“快速启动演示”不显示卡列表
问题描述
我已按照此处提供的教程进行操作。 可以在这里找到快速入门演示。
如果我在下面的方法中选择“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 pay 中有开发者资料才能运行演示吗?
解决方案
在这种情况下,国家可能是一个因素。
为了消除这种情况,您可以尝试创建一个新的 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 集成的问题。
它仍然无法正常工作,这可能是卡不支持直接集成的问题,在这种情况下,请尝试使用另一张卡(最好来自美国等其他国家 - 如果您没有可用的卡,这可能会很困难)。
推荐阅读
- python - Pandas 根据特定时间范围识别重复项和父项重复项
- forms - 颤振,溢出,SingleChildScrollView。这是屏幕内的一个表单,SingleChildScollView Fix 这次对我有用吗?
- python - 图神经网络仅预测二元分类器中的一个值 [Pytorch Geometric]
- node.js - 从过滤器中提取特定信息;
- amazon-web-services - 与云端数据分析(数据清理)相关的成本
- r - 使用矩阵方法在 R 中为 n 参数创建线性回归函数
- android - 在 android Studio 中切换风格时,有人知道如何修复无法识别的(红色)类吗?
- r - 如何使训练数据观察类似于我在 R 中的测试数据?我的观察结果比预期的要少
- wordpress - 如何在 wordpress 中添加元框以附加没有插件的图像?
- r - 在闪亮中使用两个相互依赖的反应物