Apple Pay付款令牌示例

问题描述 投票:0回答:1

我如何以某种方式获得Apple Pay付款令牌(as described here)的示例,而无需实际使用Apple Device向Apple请求付款?

我正在创建一个端点,该端点将完全接受在Apple要求付款的设备上收到的Apple Pay付款令牌。但是,它是用base64编码的,因此必须将其解码为我认为是普通的json对象。此json对象的格式/结构是什么?

[从Checkout.com关于Apple Pay(here)的文档中,我认为解码的json对象看起来像这样(尽管它们将其标记为“示例”,所以我不确定):

{
  "type": "applepay",
  "token_data": {
    "version": "EC_v1",
    "data": "t7GeajLB9skXB...",
    "signature": "MIAGCSqGSIb3DQEHAq...",
    "header": {
      "ephemeralPublicKey": "MFkwEwYHKoZIzj...",
      "publicKeyHash": "tqYV+tmG9aMh+l/K6cicU...",
      "transactionId": "3cee89679130a4b2617c..."
    }
  }
}

请注意,为简洁起见,以上字段中的数据已缩短。

Apple发送设备要求付款的确切对象/数据是什么?

任何帮助将不胜感激!

json base64 checkout applepay
1个回答
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编码为字符串

header:标题字典

signature:分离的PKCS#7签名,Base64编码为字符串

version:字符串

标题

applicationData:SHA–256哈希,十六进制编码为字符串

ephemeralPublicKey:X.509编码的密钥字节,Base64编码为字符串]]

wrappedKey

:Base64编码的字符串

publicKeyHash

:SHA–256哈希,Base64编码为字符串

transactionId

:十六进制标识符,作为字符串

更多信息/细节可以在the Apple documentation中找到。

热门问题
推荐问题
最新问题