代码之家  ›  专栏  ›  技术社区  ›  Joe

Dayang-Paypal设置

  •  14
  • Joe  · 技术社区  · 15 年前

    有人安装Django贝宝吗?这是它的链接 here ?

    我有“我的项目”设置,我的文件夹结构如下:

    MyStudio&G.Paypal & GT(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)
    

    ---编辑-------- 然后,我将pro和standard模板文件夹添加到我的项目模板文件夹中。

    当我去 http://127.0.0.1:8000/account/payment-url/ 并提交表格…

    我得到一个值错误:“字典更新序列元素0的长度为1;2是必需的”

    Traceback:

    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. 参数更新(项)
    2 回复  |  直到 13 年前
        1
  •  6
  •   S.Lott    15 年前

    在您的代码中…

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

    这必须是用于验证的表单对象。

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

    编辑

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

    您的请求应该包括一个通知URL、返回URL和取消返回。所有三个URL的您提供给贝宝。

    PayPal将向这些URL发送消息。

    由于PayPal将发送消息到这些URL,你必须把它们放在你的URLS.Py中。您必须为这三个URL编写视图函数。这些URL会让你的PayPal响应发送给他们。

        2
  •  0
  •   lprsd    15 年前

    PayPal django Integration 波斯特应该对你有帮助。