2017-01-25 4 views
1

私はいくつかの研究の末、ストライプコネクトのDjangoに関するドキュメントは実際には供給されていないという結論に達しました。私は、スタンドアロンパッケージ(OAuth)を使って簡単なマーケットプレイスを作るのに苦労してきました。DjangoでStripe Connectを設定して取引手数料を徴収する方法は?

プレートフォームの目的は、ユーザーがお互いの間で取引を行い、料金ごとに料金を徴収できるようにすることです。これを実現するには、django-allauthストライプを使用しています。

私はdjango-allauthを設定しているので、ユーザーは既に自分のウェブサイトにストライプとログインのアカウントを作成できます。私が直面している問題は、お互いの間でユーザーに課金する方法です。

stripe.error.InvalidRequestError: Request req_*************: The 'destination' param cannot be set to your own account.

ここに私の見解

次のとおりです。ここで

は私がユーザーB(出版社/売り手)に2つの異なるアカウント、ユーザーA(顧客)からの支払いをしようとしているときに私が手にエラーがあります

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は私がstripe_id

保つどこの製品モデルと Profileは私のプロファイルモデルである

私はドキュメントを読んで、私は売り手の宛先IDをアカウント宛先に提供しています。何か不足していますか?このエラーが発生するのはなぜですか?

答えて

3

成功、最初の支払いが完了しました!ストライプは、接続設定苦労しそうだ他の人々のために:ここで

は、スタンドアロンパッケージを持っているために必要なものに簡単なチュートリアルであるが、ここで私はジャンゴ・allauthストライプ使用するものです。

物事はあなたはそれがテストモードで動作する作るために知っておく必要があります。

。ストライプでdjango-allauthを設定する

b。

stripe.error.InvalidRequestError: Request req_*************: The 'destination' param cannot be set to your own account.

C:それはあなたがそうでなければ、このエラーが発生しますアプリを作成するために使用される一つだ場合は、管理者アカウントの宛先IDと送信先を設定することはできません。範囲は、READ_WRITEあなたのsettings.py

SOCIALACCOUNT_PROVIDERS = { 
    'stripe': { 
     'SCOPE': ['read_write'], 
    } 
} 

(d)にこのコードを配置するように設定されている場合にのみ、あなたが料金や転送を行うために進むことができますよう、あなたの設定にこのコードを配置することを確認する必要があります。接続されている各ユーザーに固有のIDを与えるために、プロファイルモデルにstripe_idを付けます。

e。テンプレートにバンキングフォームを表示します。

管理者アカウントを使用できないため、デベロッパーモードで支払いを行うには、おそらく2番目のテストアカウントを作成する必要があることにご留意ください。

質問にviews.pyコードを使用することを躊躇しないでください。エラーはありません。

あなたのマーケットプレイスをお楽しみください!

+0

ありがとうございます!あなたの答えは私のラップトップ画面に何時間も誓ってくれました... –

+0

@KimmoHintikka助けてくれてありがとうございました:)私はこのプロジェクトで – Lindow

関連する問題