Stripe-检索客户付款意向历史记录



我正在构建一个平台,使用Stripe的父"平台"帐户和属于该平台的Connected Stripe帐户的概念。(例如Lyft模型(根据Stripe的文档,当我在Stripe中创建新客户时,我会在主平台帐户下创建它,并将所有付款方式存储在该客户下。当客户从Connected帐户购买东西时,我会遵循此文档,在其中我克隆付款方法并创建一个附加到特定Connected帐户的PaymentIntent。这一切都奏效了。然而,当我试图获取客户交易的历史记录(PaymentIntents列表(时,它会返回一个空列表,因为它是针对主平台帐户运行的:

stripe.PaymentIntent.list(customer='cus_FJDHFGSJHDF')

当我指定一个客户和已连接帐户id时,它会返回一个空列表,因为该客户不存在于该已连接帐户中,但是,paymentIntents存在于该连接帐户中。

那么,为客户创建Connected账户的PaymentIntent,然后获取该客户PER Connected Stripe账户的付款历史记录的正确方法是什么

以下是我如何克隆PaymentMethod并创建PaymentIntent:

payment_method = stripe.PaymentMethod.create(
customer=customer,
payment_method=customer.invoice_settings.default_payment_method,
stripe_account=stripe_connect_id,
)

intent = stripe.PaymentIntent.create(
payment_method=payment_method,
amount=amount,
currency='usd',
confirm=True,
application_fee_amount=fee_in_cents if fee_in_cents >= 1 else None,
stripe_account=stripe_connect_id,
)

据我所知,您有两个选项:

  1. 在连接的帐户上创建客户并在那里创建费用,然后您就有了关系[0]
  2. 将客户id保存在PaymentIntent的元数据中,然后在代码[1]中对其进行协调

希望能有所帮助!

[0]https://stripe.com/docs/connect/cloning-saved-payment-methods#making-a电荷

[1]https://stripe.com/docs/api/metadata

以下是我决定采取的方法。由于我特别感兴趣提取特定客户在特定Connected帐户中的费用,我阅读了更多关于费用的信息,并注意到您可以获得基于transfer_group='{ORDER10}'的费用列表。所以,这是我的流程:

  • 客户和客户的付款方式存储在主平台帐户下(这样我就可以在一个地方跟踪当前默认的付款方式(
  • 当客户向特定的Connected帐户付款时,我会克隆他们的默认付款方式
  • 创建一个PaymentIntent,并将transfer_group设置为客户的电话号码,因为它是整个平台的唯一标识符

现在,当我需要提取特定客户的所有费用时,我会循环查看该客户关联的每个Connected帐户(此关系存储在我的平台上(,并简单地使用transfer_groupstripe_account_id:提取所有费用

def get_all_charges(user, stripe_account_id):
return stripe.Charge.list(transfer_group=user.phone_number, stripe_account=stripe_account_id, limit=100).data

最新更新