ApplePay 支付如何运作?

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

任何人都可以向我解释 ApplePay 的工作原理吗?

我浏览了一些博客,但我仍然不清楚付款流程。

问题:

  1. 如何添加卡

  2. 交易流程如何运作。

applepay
2个回答
4
投票

这就是苹果支付的运作方式。

第 1 步:添加卡片。

第 2 步:使用非接触式终端付款。

第 3 步:非接触式终端的最终横断面。

你可以检查这个链接。


-1
投票

InApp ApplePay

只是高级图表

谁是谁:

  • 持卡人-持卡人,买家
  • 卡 - 带有 PAN、持卡人姓名、有效期、CVV/CVC 的实体卡
  • 商家-卖家
  • Acquirer - 支持商户的银行
  • 发卡行 - 支持持卡人的银行
  • 支付网络 - 收单方和发行方的链接,例如维萨卡、万事达卡、美国运通卡……

持卡人将卡添加到钱包应用程序:

持卡人在应用程序中购买东西:

一些缩写:

  • Secure Element(SE) - 它是一种特殊的微处理器物理芯片,用于存储敏感数据
  • 主帐号 (PAN) - 卡号
  • 设备帐号 (DAN) - 设备的唯一 PAN 表示形式
  • 令牌服务提供商 (TSP) - 生成并保存卡数据
  • 支付数据(PD)通常包括交易金额、持卡人姓名、交易金额、卡片有效期、交易时间等信息……
  • TSP 令牌 - 在 TSP 端带有卡数据信息的记录 ID
  • SE Cryptogram - 私有数据的动态表示。每次实例化新事务时都会创建它

PK支付结构:

PKPayment                                 - Apple Payment Payload
  token: PKPaymentToken                   - Apple Payment Token
    paymentMethod: PKPaymentMethod 
      displayName: String
      network: PKPaymentNetwork           - Payment Network(visa, masterCard, amex...)
      type: PKPaymentMethodType           - (debit, credit, prepaid...)
      paymentPass: PKPaymentPass
    paymentData: Data                       
      signature                           - deatached signature of version == EC_v1(ephemeralPublicKey, data, transactionId, applicationData), version == RSA_v1(wrappedKey, data, transactionId, applicationData) in PKCS7 to verify
      data                                - Encrypted Payment Data(EPD)
        applicationPrimaryAccountNumber   - DAN
        applicationExpirationDate         - Card expiration date
        currencyCode                      - Currency Code
        transactionAmount                 - Amount
        cardholderName                    - Cardholder Name
        deviceManufacturerIdentifier
        paymentDataType                   - "3DSecure" or "EMV"
        paymentData
          //paymentDataType == 3D Secure
          onlinePaymentCryptogram         - SE Cryptogram   
          eciIndicator

          //paymentDataType == EMV
          emvData
          encryptedPINData
        authenticationResponses
          merchantIdentifier
          authenticationData
          transactionAmount
        merchantTokenIdentifier           - TSP token
        merchantTokenMetadata
      version                             - Apple Pay servers encrypted the payment token(data) 
        EC_v1                             - ECC 
        RSA_v1                            - RSA
      header
        transactionId                     - Transaction Id
        applicationData                   - SHA–256 hash which was swnd in PKPaymentRequest.applicationData
        publicKeyHash                     - SHA–256 hash of Merchant public key
        //version == EC_v1
        ephemeralPublicKey                - Ephemeral public key bytes
        //version == RSA_v1
        wrappedKey                        - Symmetric Key which is decrypted by Merchant public key
  billingAddress
  billingContact
  shippingContact
  shippingAddress
  shippingMethod

验证签名:

PKPayment.PKPaymentToken.Data.signature
分离 PKCS #7 签名[关于] 具有中间和最终用户链证书[关于]

恢复对称密钥:

  • PKPayment.token.paymentData.data - 加密支付数据在对称密钥下加密

//版本 == EC_v1

  • 恢复 ECC 的对称密钥
  • Apple Pay 使用椭圆曲线 Diffie–Hellman(ECDH) (id-ecDH 1.3.132.1.12)[关于]

边苹果:

  • Apple 生成临时密钥对(私钥/公钥)= 从商户 ECC 证书公共信息和随机私钥生成
  • Apple Pay 计算 共享密钥 = 商家公钥和临时私钥
  • KDF(共享密钥, MerchantId) => 对称密钥

边商:

  • 商家计算 共享密钥 = 商家私钥和临时公钥

  • KDF(共享密钥, MerchantId) => 对称密钥

  • 通过对称密钥解密支付数据

© www.soinside.com 2019 - 2024. All rights reserved.