簡體   English   中英

Stripe - 檢索客戶 PaymentIntent 歷史記錄

[英]Stripe - Retrieve Customer PaymentIntent history

我正在構建一個平台,我正在使用 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-charge

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

這是我決定采取的方法。 由於我對提取特定客戶在特定 Connected 帳戶中的費用特別感興趣,因此我閱讀了有關費用的更多信息,並注意到您可以根據transfer_group='{ORDER10}'獲得費用清單。 所以,這是我的流程:

  • 客戶和客戶的付款方式存儲在主平台帳戶下(以便我可以在一個地方跟蹤當前的默認付款方式)
  • 當客戶向特定的關聯賬戶付款時,我克隆了他們的默認付款方式
  • 創建一個 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM