Joe*_*Joe 14 python django paypal
有没有人设置django-paypal?这里是链接到它在这里?
我有"myproject"设置,我的文件夹sturecture看起来像这样:
myproject> paypal>(标准和专业文件夹)
我添加了我的settins.py文件
INSTALLED_APPS = (
'myproject.paypal.standard',
'myproject.paypal.pro',
)
Run Code Online (Sandbox Code Playgroud)
在我的网址为我的帐户的文件我添加:
urlpatterns += patterns('myproject.account.views',
(r'^payment-url/$', 'buy_my_item'),
)
Run Code Online (Sandbox Code Playgroud)
在我的帐户视图中,我添加了:
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)
Run Code Online (Sandbox Code Playgroud)
---编辑---------然后,我将pro和标准模板文件夹添加到我的项目模板文件夹中.
当我去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
Run Code Online (Sandbox Code Playgroud)
在你的代码中......
'payment_form_cls': 'payment_form_cls', # form class to use for payment
Run Code Online (Sandbox Code Playgroud)
这必须是用于验证的Form对象.
'payment_form_cls': MyValidationForm, # form class to use for payment
Run Code Online (Sandbox Code Playgroud)
编辑
http://github.com/johnboxall/django-paypal/tree/master
您的请求应包含notify-url,return-url和cancel-return.所有三个url都是你提供给Paypal的.
Paypal将向这些URL发送消息.
由于Paypal会向这些URL发送消息,因此您必须将它们放入urls.py. 您必须为这三个网址编写视图函数.这些网址会将您的PayPal响应发送给他们.