【问题标题】:Setting amount on capture of pre-auth payment, apparently "amount" is not a parameter在捕获预授权付款时设置金额,显然“金额”不是参数
【发布时间】:2014-10-14 12:39:08
【问题描述】:

我正在尝试调用 stripe.Charge.retrieve 函数

ch = stripe.Charge.retrieve(id = charge_id, amount=total_cost)
response = ch.capture()

但它会抛出“InvalidRequestError: Received unknown parameter: amount”,尽管文档中的 API 参考说它确实支持参数数量。 (https://stripe.com/docs/api#charge_capture) 当我尝试另外两个可选参数 application_fee 或receipt_email 时,同样的事情发生了,所以我一定是错误地传递了参数,或者python SDK 坏了。

我做错了什么?

【问题讨论】:

    标签: python stripe-payments


    【解决方案1】:

    由于 REST API 和客户端库之间的差异,文档有时会令人困惑。这是其中之一。

    客户端库让您在 Charge 对象上调用 capture 方法。因此,它们不使用 id 参数,而是采用列出的可选参数。

    因此,对于您在 Python 中的用例,您的代码将如下所示:

    response = ch.capture(amount=4200)
    

    示例代码还旨在提供全功能,在这种情况下可能会更加混乱。拨打retrieve 与获取资金无关;它在那里,所以你有一个 Charge 对象可以调用capture。每当您对 Stripe API 中的某些内容有疑问时,让动词引导您;它们被选择为尽可能不言自明。

    【讨论】:

    • 非常感谢!最让我困惑的是因为 stripe.Charge.create() 需要“数量”,当我浏览实际模块中的代码时,retrieve() 似乎需要任意数量的参数。
    猜你喜欢
    • 2015-10-11
    • 1970-01-01
    • 2017-07-28
    • 2013-05-14
    • 1970-01-01
    • 2021-10-23
    • 2020-09-02
    • 1970-01-01
    • 2020-03-20
    相关资源
    最近更新 更多