问题
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:
- You create a customer.
- 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