[英]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.