使用 Stripe 充电时“没有这样的客户”

rub*_*lex 0 python stripe-payments stripe.net stripe-connect

我正在使用 Stripe API 进行测试,但无法让这个基本的“市场”场景发挥作用。该场景是买家从卖家处购买,应用程序需要付费。

我的设置:

# Seller has already connected their account to the application 
# through "Stripe Connect Standalone". Below will attempt to charge a customer.

import stripe

# application's sk from stripe
stripe.api_key = "sk...."

# Build customer
customer = stripe.Customer.create(
    email = customer.email,
    card = token_from_stripe_checkout
)

# Now do a charge
charge = stripe.Charge.create(
    amount = 2000,
    currency = "usd",
    customer = customer.id,
    application_fee = 500,
    stripe_account = seller.stripe_user_id # which is something like: acct_xxxxxxxxx
)
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

 File "/home/btw/app.py", line 177, in stripe_test
    stripe_account=seller.stripe_user_id
  File "/usr/local/lib/python2.7/dist-packages/stripe/resource.py", line 357, in create
    response, api_key = requestor.request('post', url, params, headers)
  File "/usr/local/lib/python2.7/dist-packages/stripe/api_requestor.py", line 141, in request
    resp = self.interpret_response(rbody, rcode, rheaders)
  File "/usr/local/lib/python2.7/dist-packages/stripe/api_requestor.py", line 269, in interpret_response
    self.handle_api_error(rbody, rcode, resp, rheaders)
  File "/usr/local/lib/python2.7/dist-packages/stripe/api_requestor.py", line 156, in handle_api_error
    rbody, rcode, resp, rheaders)
InvalidRequestError: Request req_xxxxxxx: No such customer: cus_xxxxxxxxx
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Mat*_*kin 5

您的代码中主要发生了两件事:

  1. 您创建了一个客户。
  2. 然后您向该客户收费。

问题是您在自己的帐户中创建客户,但在关联帐户的范围内创建费用。当您通过时,stripe_account您实际上是在告诉 Stripe 在另一个连接的帐户下运行 API 调用。您的关联帐户无权访问您的基本帐户的客户。

简单的解决方法是也传递stripe_account给您的创建客户 API 调用。