python-2.7 - Django paypal ipn notify_url没有响应

  显示原文与译文双语对照的内容
0 0

我的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>

我的问题是 views.py 中的函数" notify"没有被调用。 你们能把我引导到正确的方向。 我不会得到我所做的错误。 先谢谢了。

时间: 原作者:

0 0

根据文档,你在 urls.py 中正确添加了以下行


(r'^notify', include('paypal.standard.ipn.urls')),

上述代码段意味着 https://example.com/notify url直接调用 paypal pacakge视图互穿 funcation,这实际上是为了处理互穿响应而设计。

因此 @Shivratna 不需要在视图中实现任何其他 notify 函数。

你是否可以确保完成以下操作,然后再进行paypal交易:

  1. 在沙箱或者实时paypal帐户设置中通知url正确
  2. 以及配置 dict like paypal_dict_flexible
  3. 假设你已经正确安装了软件包,但是不要忘记运行 python manage.py syncdb 来创建 django-paypal包表

我希望我的建议能给你正确的方向;

0 0

我不知道你为什么认为 /notify url应该调用你的视图。 url配置将 /notify url指向 paypal.standard.ipn.views.ipn 视图,包括paypal配置。

如果要调用 notify 视图,应将它的包含在你的url配置中:


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

但是,我非常怀疑你需要编写自己的for回调视图。 默认的django paypal视图包含信号钩子,在这里你可以轻松添加自己的定制逻辑。

原作者:
...