从 PaymentIntent 获取购买的产品

Phi*_*ipp 5 stripe-payments

在我的应用程序中,我想列出 Stripe 客户过去的购买情况。所以我正在查看相关的 API 对象,例如PaymentIntents,SessionsCharges。但它们似乎都不包含任何对Product或 的引用Price,我需要列出已购买的产品。

Subscriptions包含该订阅中包含的项目列表,所以我PaymentIntents也希望有类似的东西。

有人知道如何存档我过去的购买清单吗?谢谢!

Rya*_*anM 2

我对 Stripe API 文档 [1] 进行了一些挖掘,在您引用的三个对象(PaymentIntentSessionCharges)中,我看到唯一能够追溯到产品的对象是Session.

\n

会话对象有一个line_items属性[2],可以一直遵循到line_items.data.price.product[3]。要访问此内容,您\xe2\x80\x99 需要将expand=["data.line_items"]参数包含到调用中以列出结帐会话。您可以在此处阅读有关扩展 API 响应的更多信息[4]

\n

因此,对于使用 Checkout Sessions 向客户收取的所有费用,您可以将它们全部列出,使用该customer属性将每个会话与应用程序中的客户关联,遍历返回的数据,然后查询 API 以获取产品详细信息。如果您有很多客户和产品,这些 API 调用会快速增加,因此我会将这些数据存储在您的后端,以避免达到速率限制 [5]。

\n

或者,您可以将产品 ID(Stripe 或您的本地版本)保存为上述任何列出的 Stripe 支付对象的元数据[6]。这将允许您将任何您想要的付款对象链接到产品。

\n
\n
    \n
  1. https://stripe.com/docs/api
  2. \n
  3. https://stripe.com/docs/api/checkout/sessions/object#checkout_session_object-line_items
  4. \n
  5. https://stripe.com/docs/api/checkout/sessions/object#checkout_session_object-line_items-data-price-product
  6. \n
  7. https://stripe.com/docs/expand
  8. \n
  9. https://stripe.com/docs/rate-limits
  10. \n
  11. https://stripe.com/docs/api/metadata
  12. \n
\n

  • 这太倒退了……我的意思是……谁会希望他们的支付 API 告诉他们付款是针对哪种产品的 (7认同)