如何使用 expo 实现带有 react-native 的条带? [关闭]

Posted

技术标签:

【中文标题】如何使用 expo 实现带有 react-native 的条带? [关闭]【英文标题】:How to implement stripe with react-native using expo? [closed] 【发布时间】:2018-06-08 01:43:36 【问题描述】:

我搜索了很多,看到了很多类似的问题,但没有一个符合我的要求。

我需要在使用 expo XDE 构建的 react-native 中实现 Stripe。正如这里的世博会文档中提到的:https://docs.expo.io/versions/latest/sdk/payments.html#importing-payments,我将不得不分离我的项目以实施付款,但我不想这样做。有没有其他选择? 此外,GitHub 上提供的其他包装器也不能完全促进使用 expo 构建的项目。我找不到任何完整的包装器,或者至少找不到构建自己的指南。

我正在寻找基于订阅模式的解决方案,我需要递归地向我的客户收费,并允许他们在持续付费/试用期间升级/降级他们的包。我不想保留信用卡信息并允许客户在需要时更新他们的账单信息。实施退款政策。

【问题讨论】:

Stripe 刚刚发布了用于 React Native 的官方 Stripe 客户端库作为公共测试版:stripe-react-native。我建议调查一下。 【参考方案1】:

如果您不想退出 Expo,您可以在 iosandroid 上使用来自 expo-stripe-checkout 的 StripeCheckout 组件(尽管在 Android 上您仍然可以使用 Payments 模块)。这是带有进一步说明的 repo 的链接:https://github.com/briansztamfater/expo-stripe-checkout

【讨论】:

【参考方案2】:

我最近遇到了同样的问题,这是结论:

短版:如果您需要在 iOS 上进行付款(Stripe),则需要分离。如果您不需要,请使用 Expo 的 Payments 模块 - 它不是很明显,但他们确实在docs 中声明它基于tipsi-stripe)。

说明:Expo SDK 曾经包含一个适用于 Android 和 iOS 的 payments 模块。对于 Expo 的最后 3-4 个版本,Payments 已从 iOS SDK 中删除,因为“Apple 有时会拒绝包含 Stripe SDK 但不提供任何出售的应用程序。”。

参考:https://docs.expo.io/versions/latest/sdk/payments.html

解决方法detachto ExpoKit,然后手动添加Payments模块。根据经验,我可以说这不是一个好的或简单的过程,因为它首先引入了使用 MacOS/Xcode 手动构建应用程序的概念,这对于 Win 用户来说至少是一件痛苦的事情。

如果您不想分离,则意味着您必须实现自己的自定义方式与 Stripe 进行通信,而不是使用他们的官方 SDK,这将暗示 PCI compliance 问题。

【讨论】:

感谢您的回复。我们得出了同样的结论。终于决定分离 不知道现在是不是这样?必须分离是一个彻底的交易破坏者,因为它首先否定了使用 Expo 的所有便利。 好吧,不幸的是,在最新的 Expo 版本 (25.0) 中仍然如此。 Expo 在确保人们理解 Expo 并没有为每个用例提供足够广泛的模块覆盖范围方面做得很差,并且他们应该在开始项目之前仔细查看每个模块。不幸的是,和许多其他人一样犯了同样的错误。【参考方案3】:

您可以直接使用所有 Stripe API。在后端映射 Stripe 客户 ID 和您的用户 ID。然后您可以使用条纹客户 ID 从前端调用 this API's。

【讨论】:

是的,但是所有敏感细节都将涉及我们的服务器和服务,我们必须处理所有证券和 PCI 合规问题。没有?

以上是关于如何使用 expo 实现带有 react-native 的条带? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何修复“视频播放但在带有 expo 的 iOS 上没有声音”

在 iOS 上带有 expo 的 react-native statusBar

如何在带有 Localhost 的 Web 浏览器中打开 Expo Web?

开玩笑的带有 expo sqlite 调用的单元测试类

Expo如何获取自动生成的ios证书?

如何获取 Expo 静态深度链接进行开发?