我正在尝试在Apple Pay授权成功后解密paymentData
对象的PKPaymentToken
属性。
我正在尝试遵循here指令,但我仍然坚持解密步骤的第2步,其中说:
使用publicKeyHash键的值来确定哪个商家 公钥由Apple使用,然后检索相应的 商家公钥证书和私钥。
我该怎么做?
请告知。
谢谢!
答案 0 :(得分:5)
以下是如何在Apple开发人员中心下载Apple Pay证书文件的情况下计算Ruby中的publicKeyHash。
require "base64"
require "digest"
require "openssl"
# set cert_file = path to the downloaded Apple Pay .cer file
cert = OpenSSL::X509::Certificate.new(File.read(cert_file))
# strip off the "-----BEGIN PUBLIC KEY-----" line at the start of the string
pem = cert.public_key.to_pem.split("\n").drop(1)
# strip off the "-----END PUBLIC KEY-----" line at the end of the string
pem = pem.take(pem.length - 1)
decoded = Base64.decode64(pem.join)
public_key_hash = Digest::SHA256.base64digest(decoded)
答案 1 :(得分:1)
publicKeyHash
字段的值是......公钥的哈希值。根据文档,它是商家证书的X.509编码公钥字节的SHA-256哈希值。您可以使用它来确定用于签署付款数据的商家标识符(您可能只有一个商家标识符,在这种情况下,您已经知道正在使用哪个)。