正确使用 Firebase Cloud Functions 和 Stripe

Posted

技术标签:

【中文标题】正确使用 Firebase Cloud Functions 和 Stripe【英文标题】:Properly Using Firebase Cloud Functions and Stripe 【发布时间】:2017-12-24 02:56:12 【问题描述】:

我正在尝试使用 Firebase Cloud 功能和 Stripe,以及 ios (Swift)。我想使用 Firebase Cloud 功能按照 Stripe 的要求执行信用卡收费。我正在尝试使用此示例:Firebase Stripe Example

我上传了他们给出的例子,但是我需要稍微修改一下收费功能。我尝试将其设置为我在实时数据库中的文件路径,但我不确定如何修改整个内容,以便它可以脱离我的实时数据库结构。比如抓取它需要的参数。这是我的结构的样子: 在 Payments 节点之后是用户 ID。

我知道该函数基本上会查找特定节点的数据库更新,但我不确定如何确保它从子节点中获取正确的值。我希望我以一种可以理解的方式描述了这一点。如果我还没有让我知道,我会尽力改写。谢谢!

【问题讨论】:

使用以 Bb2 结尾的密钥,您可以获得他所有详细信息的快照,并使用快照中的支付数组 或者你基本上想要获取什么以及你需要什么值来查询 FirebaseDB @iOSGeek Stripe 要求、金额、货币类型以及他们发送给您的代币。 stripe.com/docs/charges 所以我想我需要抓住这些项目,但我之前没有使用过 javascript,所以我不确定这一切意味着什么。我可以阅读文档,但我仍然不知道它们的语法等。 所以要访问 Stripe,您需要存储在 paymentID 下的值吗?金额和代币价值 是的,他们需要金额和令牌,因为这是他们发送给您的密钥,然后您使用您的后端将其发回,以便可以处理费用以及所需的参数。我只是不确定我是否必须专门命名我的节点等。 【参考方案1】:

好吧,我自己想通了,我会在这里写一个迷你教程。

因为这个问题专门处理条纹,所以我只会介绍这个特定的用例。首先,阅读 Stripe 文档很重要。它指定了它期望你给它的 api 的参数。以下是使用 Stripe 为卡充电时的预期链接:Stripe Charges Documentation

其次,您需要根据这些预期参数对 Firebase 实时数据库进行建模,至少在用户将在您的应用中进行的购买方面。大多数情况下,您可以使用带有键:值对的字典。确保将金额参数乘以 100,因为 Stripe 只接受整数。这意味着,例如,如果您收取 22.48 的费用,则将其乘以 100 即可得到 2248。当您以条纹方式查看仪表板时,它将显示为 22.48。

Third Stripe 需要与后端通信,以便您可以对卡进行收费。 Firebase Cloud 功能非常适合这一点。还记得您的实时数据库吗?好吧,当您指定的节点上发生写入时,您可以触发 Cloud 函数。幸运的是 Firebase 在 GitHub 上提供了一个示例:Firebase Stripe Example

您可以修改用于侦听数据库写入的代码行。只要您至少返回令牌和要收取的金额,您就可以将其更改为您的结构。如果您要让用户每次都输入他们的信息,那么您需要删除 customer 参数(在 index.js 文件中),因为它会期望具有不同前缀的不同令牌。 (这在文档中有所说明)示例的其余部分都有很好的文档记录,可以遵循。收费的结果将被写回到您的数据库中。以下视频向您展示了函数如何在写入工作时触发以及使用的一些命名法。 :Youtube Video for Cloud Functions triggered on write.

我希望这对你们中的一些人有所帮助,因为我知道有关 stripe 和 firebase 的问题相当普遍。

【讨论】:

所以基本上他们将金额注册为便士? 您是否介意分享您的数据库的 sn-p,其中正在写入金额/令牌/等,以及您在 firebase 上的“创建费用”功能的 sn-p? 是的,我会这样做的。这可能是几天。我目前正在前往青年静修所的路上,所以我现在无法使用我的开发机器。但我可能会在我到达时。 谢谢!明智的服务器,我认为我让它工作了,但它在我的客户端返回一个错误 @cyril 如果你告诉我错误,我也许可以告诉你需要做什么。

以上是关于正确使用 Firebase Cloud Functions 和 Stripe的主要内容,如果未能解决你的问题,请参考以下文章

无法将 Storage Firebase 映像正确链接到 Cloud Firestore

可通过 Postman 调用 https Firebase Cloud Functions:“请求的 Content-Type 不正确。”

两个 Firebase 只链接到一个 Google Cloud Platform?

Firebase Cloud Storage Java Admin SDK 使用 contentType 上传文件

使用 Cloud Functions for Firebase 时出现 CORS 错误

Firebase Cloud Function database.ServerValue.TIMESTAMP 不返回时间戳