我如何以某种方式获得Apple Pay付款令牌(as described here)的示例,而无需实际使用Apple Device向Apple请求付款?
我正在创建一个端点,该端点将完全接受从Apple请求付款的设备上收到的Apple Pay付款令牌。但是,它是二进制数据,因此必须将其解码为我认为是普通的json对象。这个json对象的格式/结构是什么?
从Checkout.com关于Apple Pay(here)的文档中,我认为解码的json对象看起来像这样(尽管它们将其标记为“示例”,所以我不确定): / p>
{
"type": "applepay",
"token_data": {
"version": "EC_v1",
"data": "t7GeajLB9skXB...",
"signature": "MIAGCSqGSIb3DQEHAq...",
"header": {
"ephemeralPublicKey": "MFkwEwYHKoZIzj...",
"publicKeyHash": "tqYV+tmG9aMh+l/K6cicU...",
"transactionId": "3cee89679130a4b2617c..."
}
}
}
请注意,为简洁起见,上述字段中的数据已缩短。
Apple发送设备要求付款的确切对象/数据是什么?
任何帮助将不胜感激!
答案 0 :(得分:0)
我设法弄清了苹果作为支付令牌发送的内容。
Apple发送可解码为json的二进制数据(PKPaymentToken
)。 json对象如下所示:
{
"data":"...",
"signature":"...",
"version":"..",
"header":{
"applicationData":"...",
"ephemeralPublicKey":"...",
"wrappedKey":"...",
"publicKeyHash":"...",
"transactionId":"..."
}
}
因此,使用支付令牌首先需要将二进制数据解码为json,然后可以将其发送给商家(例如Checkout或Stripe)。应该注意的是,json对象中的某些字段是加密的。它们可以未经加密或加密使用。 Checkout, for instance, accepts the encrypted fields。
令牌
数据:付款数据字典,Base64编码为字符串
标题:标题字典
签名:分离的PKCS#7签名,Base64编码为字符串
版本:字符串
标题
applicationData :SHA–256哈希,十六进制编码为字符串
ephemeralPublicKey :X.509编码的密钥字节,Base64编码为字符串
wrappedKey :Base64编码的字符串
publicKeyHash :SHA–256哈希,Base64编码为字符串
transactionId :一个十六进制标识符,作为字符串
更多信息/详细信息,请参见the Apple documentation。