FoodPanda 等移动应用程序如何存储卡信息?

How does mobile app like FoodPanda stores card information?

我正在研究存储卡信息的可用选项,我认为像 FoodPanda 这样的移动应用程序并没有真正将完整的卡信息存储在他们的数据库中。他们是否使用第 3 方服务来存储卡信息并进行支付?

例如Authorized.net是否提供存储卡信息并在提供卡ID付款时进行交易的服务?

你得问 FoodPanda 他们是做什么的,我们不知道。许多公司存储信用卡数据,尽管存在风险并且需要付出大量努力来保护它。

Authorize.Net 提供了一项名为 Customer Information Manager 的服务,该服务允许企业将信用卡详细信息作为付款资料存储在其服务器上(他们还提供保存账单和邮寄地址)。然后,您会获得一个付款资料 ID,您可以在以后的交易中参考该 ID。因此,当您想使用该信用卡付款时,您只需提供 Authorize.Net 付款资料 ID,他们就会从该信用卡中扣款。

大多数 apps/websites 不允许存储卡信息,因为 PCI compliance restrictions, which require a QSA SAQ compliance 为了存储完整的信用卡号。

大多数支付网关允许存储卡信息的替代方法,称为 Card Vaulting。 Card Vaulting 允许 application/web 站点发送存储在支付网关数据库中的加密信用卡数据。

Autorize.net 调用此功能 Customer Profiles.

通常,当回头客想要下订单时,application/web 站点会请求与该购物者相关联的所有保险信用卡的列表。检索到的数据不包含完整的信用卡信息,仅包含卡的后四位数字和卡品牌。 Autorize.net API 允许检索这些客户付款资料,同时仅返回响应中允许的数据 (Get Customer Payment Profile API Documentation):

<getCustomerPaymentProfileResponse xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <messages>
          <resultCode>Ok</resultCode>
          <message>
             <code>I00001</code>
             <text>Successful.</text>
          </message>
       </messages>
       <paymentProfile>
          <customerType>individual</customerType>
          <billTo>
             <firstName>John</firstName>
             <lastName>Smith</lastName>
          </billTo>
          <customerProfileId>39598611</customerProfileId>
          <customerPaymentProfileId>35936989</customerPaymentProfileId>
          <payment>
             <creditCard>
                <cardNumber>XXXX1111</cardNumber>
                <expirationDate>XXXX</expirationDate>
             </creditCard>
          </payment>
          <subscriptionIds>
             <subscriptionId>3078153</subscriptionId>
             <subscriptionId>3078154</subscriptionId>
          </subscriptionIds>
       </paymentProfile>
</getCustomerPaymentProfileResponse>

注意信用卡数据是如何返回的:

         <creditCard>
            <cardNumber>XXXX1111</cardNumber>
            <expirationDate>XXXX</expirationDate>
         </creditCard>