[英]Can't seem to retrieve stripe charge using python
我有以下python代碼來創建條帶電荷。
a_charge = stripe.Charge.create(
amount=cents,
currency="usd",
source=token,
description="my_description",
application_fee=application_fee,
stripe_account=teacher_stripe_id
)
這成功(我認為),因為它顯示在我的儀表板中,帶有charge_id。 但是,在代碼之后,緊接着失敗:
stripe.Charge.retrieve(a_charge.id)
有錯誤:沒有這樣的費用:某些字符串
然而,某些字符串確實是我的條帶儀表板上的ID詳細信息。 那么為什么Stripe無法收回這筆費用呢? 這不是正確的ID嗎?
費用檢索呼叫失敗的原因是因為費用是在另一個帳戶上創建的。
當您創建費用時:
a_charge = stripe.Charge.create(
amount=cents,
currency="usd",
source=token,
description="my_description",
application_fee=application_fee,
stripe_account=teacher_stripe_id
)
您使用stripe_account
參數,該參數指示庫在請求中使用Stripe-Account
。 這用於告知Stripe的API,您的平台代表其中一個連接的帳戶發出請求。
因此,為了檢索費用,您需要使用相同的stripe_account
參數:
the_same_charge = stripe.Charge.retrieve(a_charge.id, stripe_account= teacher_stripe_id)
也就是說,在實踐中沒有什么用處。 你已經在a_charge
擁有了充電對象。 如果你執行上面的代碼,你會發現a_charge == the_same_charge
。
更一般地說,當您已經擁有Stripe對象的實例並希望從API獲取最新狀態時,您可以使用refresh()
方法:
a_charge.refresh()
這將查詢API(您無需擔心stripe_account
參數 - 實例“記住”它並將在后台使用它)並使用從API檢索的值刷新實例的屬性。
為什么你需要在創建電荷后立即執行stripe.Charge.retrieve(a.charge.id)
,而你已經擁有a_charge
的數據?
數據可以緩存和/或廣播到多個服務器/數據庫。 然后,新創建的數據可能需要幾秒鍾才能讀取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.