我如何将checkout_session与使用Firebase stripe扩展的支付关联?



您可能知道,Firebase的Stripe支付扩展做以下操作:

  1. 创建一个products集合,填充在Stripe中管理的产品。
  2. customers/{id1}/checkout_sessions/{id2}下创建文档,创建分条支付。文档被更新为用户可以用来支付的支付URL。
  3. 支付后,一个文件得到创建的条纹在customers/{id1}/payments/{id3}

如何将注册的付款与checkout_sessions中的文档关联?

checkout_session文档看起来像

{
cancel_url: (CancelUrl),
client: "web",
created: (Timestamp),
mode: "payment",
price: (The priceId associated to the product),
sessionId: (The session id of the checkout_session),
success_url: (SuccessUrl)
}

我自己创建了checkout_session文档,所以我可以在那里添加额外的元数据,但我不确定条纹是否可以使用它。

payment文档明显更加复杂。但是我唯一能关联到任何东西的id是客户stripeId,它在支付文档上显示为customer

基本上我正在尝试做以下事情。

  1. 用户创建一个带有一些自定义属性(名称、选项等)的数字项目。这可能发生在checkout_sessions文档的创建过程中。
  2. 他们使用提供的URL支付。
  3. 创建payments文档
  4. 这是你帮我弄清楚的地方,以验证他们所做的支付是与创建的数字项目相关联的。

我有一个可能会起作用的想法是这样做:在创建checkout_sessions文档期间,我可以创建一个"凭证",而不是允许创建数字项目;对于那个特定的项目。它不会有任何个性化或选项,但我能做的是在支付文档上创建onCreate云功能。如果支付成功,则允许创建数字项目。我可以根据所购买的商品查找"模板"。

我不喜欢这个选项,因为至少有两个潜在的冷启动延迟,这可能会使这是一个糟糕的用户体验。

您应该侦听checkout.session.completed事件并检索结帐会话对象的line_items。从那里你会知道哪些物品被成功购买了。

详细信息请参见集成文档

在创建checkout_sessions文档时,您可以添加一个metadata对象,该对象可以包含键:值对,该对象将出现在payments集合中创建的文档的根目录上。

相关内容

  • 没有找到相关文章

最新更新