Django-paypal ipn notify_url没有回复

时间:2014-06-10 11:49:32

标签: django python-2.7 paypal-ipn django-paypal

我的settings.py是:

INSTALLED_APPS = (
.......,
'paypal.standard.ipn',
)

PAYPAL_RECEIVER_EMAIL = "coolakashsaikia-facilitator@gmail.com"
PAYPAL_TEST = True

我的views.py是:

@csrf_exempt
def pricing(request):
  paypal_dict_flexible = {
     "business": "coolakashsaikia-facilitator@gmail.com",
     "amount": "100.00",
     "item_name": "Flexible Subscription",
     "invoice": "10",
     "notify_url": "https://example.com/notify",
     "return_url": "http://example.com/signup",
     "cancel_return": "",
 }

 form = PayPalPaymentsForm(initial=paypal_dict_flexible)
 context = {"form": form, 'current_page': 'pricing'}
 return render_to_response("leavebuddyapp/pricing.html", context)

 @csrf_exempt
 def notify(request):
     return HttpResponse("Notify called")

我的urls.py是:

 urlpatterns = patterns('',
   #Paypal
   (r'^notify', include('paypal.standard.ipn.urls')),

 )

我的模板是:

 <div class="test">
       {{ form.render }}
       <a href="/signup/flexible" class="btn">Buy now</a>
  </div>

我的问题是notify中的函数“views.py”未被调用。你们能指导我走向正确的方向吗?我没有得到我做错的事。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

根据文档,您已在urls.py

中正确添加了以下行
(r'^notify', include('paypal.standard.ipn.urls')),

上面的代码片段意味着https://example.com/notify url直接调用paypal pacakge views ipn funcation,它实际上是为处理ipn响应而设计的。

所以@Shivratna你不需要在你的视图中实现任何其他notify功能。

在进行paypal交易之前,您能否确保完成以下事项:

  1. 在您的沙箱或实时PayPal帐户设置中通知网址正确
  2. 以及配置字典like paypal_dict_flexible
  3. 假设您已正确安装软件包,但不要忘记运行python manage.py syncdb为django-paypal软件包创建表
  4. 我希望我的建议会告诉你正确的方向;)

答案 1 :(得分:0)

我不知道为什么您认为/notify网址应该调用您的观点。您的网址配置通过包含paypal网址配置将您的/notify网址指向paypal.standard.ipn.views.ipn视图。

如果您想要调用notify视图,则应将其添加到您的网址配置中:

urlpatterns = patterns('',
    ...
    (r'^notify/$', myapp.views.notify),
)

但是,我非常怀疑您是否想要为paypal ipn回调编写自己的视图。 Django-paypal的默认ipn视图包含信号挂钩,您可以轻松添加自己的自定义逻辑。