“No such customer” when charging with Stripe

别等时光非礼了梦想. 提交于 2020-07-23 21:02:44

问题


I was testing around with Stripe API and I couldn't get this basic 'marketplace' scenario to work. The scenario is a buyer buys from a seller, and the application has a fee.

My setup:

# 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
)

This results in an error:

 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

What am I doing wrong?


回答1:


There are two main things happening in your code:

  1. You create a customer.
  2. You then charge that customer.

The issue is that you're creating the customer in your own account but you're creating the charge under the scope of the connected account. When you pass stripe_account you're essentially telling Stripe to run the API call under the other, connected account. Your connected account doesn't have access to your base account's customers.

The simple fix would be to also pass stripe_account to your create customer API call.



来源:https://stackoverflow.com/questions/32158598/no-such-customer-when-charging-with-stripe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!