14

誰かがdjango-paypalをセットアップしましたか? ここへのリンクはここにありますか?

「myproject」セットアップがあり、フォルダー構造は次のようになります。

myproject > paypal > (stdandard および pro フォルダー)

追加したsettins.pyファイルに

INSTALLED_APPS = (
    'myproject.paypal.standard',
    'myproject.paypal.pro',
)

追加したアカウント アプリの URL のファイルに:

urlpatterns += patterns('myproject.account.views',
    (r'^payment-url/$', 'buy_my_item'),                   
)

そして私のアカウントビューで私は追加しました:

from myproject.paypal.pro.views import PayPalPro
from myproject.paypal.pro.forms import PaymentForm, ConfirmForm

def buy_my_item(request):
    item = {'amt':"10.00",              # amount to charge for item
            'inv':"1111",         # unique tracking variable paypal
            'custom':"2222",       # custom tracking variable for you
            'cancelurl':"http://127.0.0.1:8000/",   # Express checkout cancel url
            'returnurl':"http://127.0.0.1:8000/"}   # Express checkout return url

    kw = {'item':'item',                            # what you're selling
           'payment_template': 'pro/payment.html',          # template to use for payment form
           'confirm_template': ConfirmForm,  # form class to use for Express checkout confirmation
           'payment_form_cls': PaymentForm,  # form class to use for payment
           'success_url': '/success',               # where to redirect after successful payment
           }

    ppp = PayPalPro(**kw)
    return ppp(request)

--- EDIT --------- 次に、pro および standard テンプレート フォルダーをプロジェクト テンプレート フォルダーに追加しました。

http://127.0.0.1:8000/account/payment-url/にアクセスしてフォームを送信すると...

ValueError が発生します:「辞書更新シーケンス要素 #0 の長さは 1; 2 が必要です」

トレースバック:

File "...\accounts\views.py" in buy_my_item
  655.     return ppp(request)
File "...\paypal\pro\views.py" in __call__
  115.                 return self.validate_payment_form()
File "...\paypal\pro\views.py" in validate_payment_form
  133.             success = form.process(self.request, self.item)
File "...\paypal\pro\forms.py" in process
  1. params.update(アイテム)
4

2 に答える 2

6

あなたのコードでは...

  'payment_form_cls': 'payment_form_cls',  # form class to use for payment

これは、検証に使用される Form オブジェクトである必要があります。

   'payment_form_cls': MyValidationForm,  # form class to use for payment

編集

http://github.com/johnboxall/django-paypal/tree/master

リクエストには、notify-url、return-url、および cancel-return が含まれているはずです。あなたがPaypalに提供する3つのURLすべて。

Paypal はこれらの URL にメッセージを送信します。

Paypal はこれらの URL にメッセージを送信するため、それらを urls.py に入れる必要があります。これら 3 つの URL のビュー関数を作成する必要があります。これらの URL には、PayPal の応答が送信されます。

于 2009-04-16T20:01:16.727 に答える
0

PayPal django Integrationの投稿が役に立ちます。

于 2009-04-17T11:49:19.740 に答える