我正在尝试将google pay集成到我的android应用中。我想集成google pay之间没有任何付款网关(意味着直接方法,而不是PAYMENT_GATWAY令牌规范)。我在官方网站上找到了DIRECT方法集成代码。在那个谷歌要求提供protocolVersion和publicKey作为参数,下面我发现我可以在我的Google Pay开发者资料中获取我的公钥。我搜索了Google Pay开发者帐户,但找不到公共密钥有人可以帮助我获取Google Pay DIRECT集成的公共密钥吗?

private static JSONObject getTokenizationSpecification() {
  JSONObject tokenizationSpecification = new JSONObject();
  tokenizationSpecification.put("type", "DIRECT");
  tokenizationSpecification.put(
      "parameters",
      new JSONObject()
          .put("protocolVersion", "ECv2")
          .put("publicKey", "replace with public_key"));

  return tokenizationSpecification;
}

最佳答案

您可以参考我为以下问题提供的答案:Where is Google pay Developer account and how to generate public key to upload in it?
在您的Google Pay开发者资料中添加公钥:

需要将公钥添加到Google Pay开发者资料中,并作为付款请求的一部分包括在内:https://developers.google.com/pay/api/android/reference/request-objects#direct
请注意,您需要向Google Pay注册以进行DIRECT集成。
例:

"tokenizationSpecification": {
  "type": "DIRECT",
  "parameters": {
    "protocolVersion": "ECv2",
    "publicKey": "BOdoXP1aiNp.....kh3JUhiSZKHYF2Y="
  }
}


生成公钥:

以下链接提供有关如何使用OpenSSL生成公钥的详细信息:https://developers.google.com/pay/api/android/guides/resources/payment-data-cryptography#using-openssl
重要位:
# generate private key
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" -

关于android - 如何使用直接 token 规范方法在Google Pay集成中获取公钥,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57489351/

10-12 03:28