0

我正在使用 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
)

这会导致错误:

 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

我究竟做错了什么?

4

1 回答 1

5

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.

于 2015-08-22T17:21:27.223 回答