像FoodPanda这样的移动应用程序是如何存储卡片信息的? [关闭]

Posted

技术标签:

【中文标题】像FoodPanda这样的移动应用程序是如何存储卡片信息的? [关闭]【英文标题】:How does mobile app like FoodPanda stores card information? [closed] 【发布时间】:2017-10-14 00:01:45 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

您必须询问 FoodPanda 他们是做什么的,因为我们不知道。尽管存在风险并且需要付出大量努力来保护信用卡数据,但许多公司仍会存储信用卡数据。

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

【讨论】:

感谢您提供的信息,这对我很有帮助!【参考方案2】:

由于PCI compliance restrictions,大多数应用/网站都不允许存储信用卡信息,这需要QSA SAQ compliance 才能存储完整的信用卡号码。

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

Autorize.net 将此功能称为 Customer Profiles。

通常,当退货购物者想要下订单时,应用程序/网站会请求与该购物者关联的所有已保管信用卡的列表。检索到的数据不包含完整的信用卡信息,而仅包含卡的最后四位数字和卡品牌。 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>

【讨论】:

感谢详细解释!这对我来说真的很有用,我会朝这个方向研究。

以上是关于像FoodPanda这样的移动应用程序是如何存储卡片信息的? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

当人们将我的移动网站保存到他们的主屏幕时,我该如何做到这一点,它会删除像 Kahoot.it 这样的 Safari?

如何知道当前正在移动哪个 QGraphicsItem?

如何实现像 spotify 这样的侧边栏菜单?

是否可以使用 SQLite 来存储翻译而不是像 strings.xml 这样的 XML 资源

SwiftUI - 将存储中图像文件的路径移动到 Firebase 上的实时数据库 [重复]

与 LDR 相比,像 LDTR 这样的 ARM 非特权加载存储指令的应用是啥?