如何使用 React Native 集成 Stripe 并符合 PCI 标准?

Posted

技术标签:

【中文标题】如何使用 React Native 集成 Stripe 并符合 PCI 标准?【英文标题】:How to integrate Stripe using React Native and be PCI compliant? 【发布时间】:2017-03-11 19:04:00 【问题描述】:

我到处研究过,似乎 React Native 并没有真正支持 Stripe。我看到 https://github.com/xcarpentier/react-native-stripe-api 和 https://github.com/lrettig/react-native-stripe ,但前者已经过时,不支持 Stripe Connect,后者只支持 ios

所以唯一可靠且有意义的是 http://blog.bigbinary.com/2015/11/03/using-stripe-api-in-react-native-with-fetch.html

这里列出了完全符合 PCI 的要求,https://stripe.com/docs/security

我的问题是,除了在前端托管我的密钥之外,通过使用 fetch 关注 blog.bigbinary.com,我是否会像使用 Stripe.js 一样完全符合 PCI 标准?以及如何确保使用传输层安全性?

任何已经使用 React Native 完全集成 Stripe 的人都可以加入,非常感谢任何见解或指导。

将接受投票并感谢您的回答

【问题讨论】:

假设您在获取之前使用的是 https:// 前缀,那么您将使用 TLS。 Stripe 规则通常是针对浏览器的,所以你应该没问题。 @PaulBGD 抱歉,您能否详细说明 Stripe 规则?这将是 React Native 中的移动应用程序,而不是 Web。 您永远不想在应用程序包中保留客户端机密 - 任何人都可以从 iOS 或 android 应用程序中提取您的客户端机密,然后像您一样进行 API 调用...相反,让您的应用程序连接到您的后端并获取密钥并将其存储在内存中(不是本地存储)。如果您的密钥被泄露,您可以撤销旧密钥并生成一个新密钥,该密钥将再次存在于您的后端。这样一来,您的后端实际上只有一个弱点,而不是成千上万的应用程序以明文形式包含您的密钥。 看看stripe's documentation,他们有一个可以发布的密钥,但只能获取可以用于包装信用卡的令牌。 Stripe 的库的主要问题是它应该在 NodeJS 上运行,虽然 React Native 使用像 npm 这样的 NodeJS 工具,但它不是 NodeJS,也没有像 http、crypto 等核心模块...... 【参考方案1】:

我们在这里为两个平台制作了原生 Stripe SDK 包装器:https://github.com/tipsi/tipsi-stripe

它还包含 RN 方面的使用指南。

【讨论】:

这是否适用于市场的 Stripe Connect 解决方案?我没有注意到 api 中有关 DESTINATION 或 FEES 的任何参数 它是原生 ios/android SDK 的包装器。我不认为移动应用程序中的字符串密钥真的符合 PCI 标准,甚至例如通过条带连接 (github.com/stripe/stripe-connect-rocketrides) 你可以看到他们在后端使用它,这个库实际上只是前端解决方案跨度>

以上是关于如何使用 React Native 集成 Stripe 并符合 PCI 标准?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UINavigationController 与 React-Native 组件集成

如何将最新的 Twilio SDK 与 React Native 集成

Firebase 和 react-native 集成

如何将 FCM(firebase 云消息传递)与 react-native 集成

如何将 Fabric js 与 React Native 集成?

如何将 React-Native 项目集成到 Android-Studio?