经过几次研究后,我得出结论,关于Django的Stripe Connect文档并没有真正提供.我一直在努力使用独立包(OAuth)创建一个简单的市场.
平台的目标是让用户在彼此之间进行交易并收取每笔费用的费用.为了达到这个目的,我正在使用django-allauth和stripe.
我已经设置了django-allauth,因此用户可以在条带上创建一个帐户并在我的网站上登录.我现在面临的问题是如何在彼此之间向用户收费.
以下是我尝试从两个不同的帐户(UserA(客户)到UserB(发布商/销售商)进行付款时出现的错误:
stripe.error.InvalidRequestError:请求请求_*************:"目标"参数无法设置为您自己的帐户.
这是我的看法
customer_id = request.user.profile.stripe_id if request.method == 'POST': try: gig = Gig.objects.get(id=request.POST.get('gig_id')) except Gig.DoesNotExist: return redirect('/') token = request.POST['stripeToken'] # Create a charge: this will charge the user's card try: customer = stripe.Customer.retrieve(customer_id) customer.sources.create(source=token) destination_id = gig.user.socialaccount_set.get().uid charge = stripe.Charge.create( amount=5000, # Amount in cents currency="chf", customer=customer, description=gig.title, application_fee=123, destination=destination_id, #'acct_**************' ) except stripe.error.CardError as e: # The card has been declined pass
Gig
是我的产品型号,Profile
是我保留的个人资料模型stripe_id
我已经阅读了文档,并且我正在为帐户目的地提供卖家的目的地ID.我错过了什么吗?为什么我会收到此错误?
成功,第一笔付款经历了!这是一个关于如何设置Stripe连接的简短教程:
对于独立包,这里是我使用的Django-allauth和Stripe.
要使其在测试模式下工作,您需要了解的事项:
一个.使用stripe配置django-allauth (每次创建帐户时创建一个客户).
湾 您无法使用管理员帐户目标ID设置目标,如果它是您用于创建应用程序的目标ID,否则您将收到此错误:
stripe.error.InvalidRequestError:请求请求_*************:"目标"参数无法设置为您自己的帐户.
C.您需要确保将此代码放在您的设置上,因为只有在范围设置为read_write时才可以继续进行收费或转移,将此代码放在您的settings.py中
SOCIALACCOUNT_PROVIDERS = { 'stripe': { 'SCOPE': ['read_write'], } }
d.给予stripe_id
您的个人资料模型,以提供一个唯一的ID给每个连接的用户.
即 在模板上显示结帐表单.
知道您可能需要创建第二个测试帐户才能以开发模式付款,因为您无法使用管理员帐户.
不要犹豫,views.py
在问题中使用代码.
在您的市场上享受条纹连接!