【问题标题】:Can't seem to retrieve stripe charge using python似乎无法使用 python 检索条纹电荷
【发布时间】:2016-11-15 20:18:30
【问题描述】:

我有以下 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)

出现错误: 没有这样的费用:somelongstringhere

但是,somelongstringhere 确实是我的条带仪表板上的收费详细信息下的 ID。那么为什么 Stripe 无法检索到这笔费用呢?这不是正确的 id 吗?

【问题讨论】:

    标签: python django stripe-payments


    【解决方案1】:

    为什么a_charge中已经有数据,而创建费用后需要立即执行stripe.Charge.retrieve(a.charge.id)

    数据可能被缓存和/或广播到多个服务器/数据库。然后,新创建的数据可能需要几秒钟才能可供读取。

    【讨论】:

    • 我实际上并不想在之后直接执行此操作 - 最初我是在不同的函数中执行此操作,但它不起作用,因此我将代码靠得更近了。但是,我认为这不是问题所在,因为当我使用 stripe.charge.list() 时,我实际上看到的 id 与返回的 id 不同 - 是否有任何可能发生的原因?
    • 返回的ID是什么?至少,前缀是什么?
    【解决方案2】:

    您在此处使用的代码是直接在已连接的 Stripe 帐户上创建费用。 Stripe 的文档 here 对此进行了介绍。

    由于费用是在关联的帐户上进行的,因此您自己的 Stripe 帐户中不存在该费用,并且预计您无法直接检索它。为此,您需要按照记录的here 再次传递Stripe-Account 标头。

    你的代码应该是

    the_charge = stripe.Charge.retrieve(
        id=a_charge.id,
        stripe_account=teacher_stripe_id)
    

    【讨论】:

      【解决方案3】:

      费用检索调用失败的原因是费用是在不同的帐户上创建的。

      创建费用时:

      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 检索到的值刷新实例的属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-05
        • 2011-05-13
        • 2022-10-22
        • 2023-04-05
        相关资源
        最近更新 更多