He escrito una IPN siguiendo el tutorial de IPN de django-paypal, sin embargo, la mía no parece funcionar. Funciona sin problemas en el Simulador de IPN de PayPal, y recibo el IPN y el código se ejecuta, sin embargo, cuando trato de hacerlo en el modo Sandbox, el pago se realiza sin respuesta.
Puntos de vista:
from django.core.urlresolvers import reverse from django.shortcuts import render from paypal.standard.forms import PayPalPaymentsForm def view_that_asks_for_money(request): # What you want the button to do. paypal_dict = { "business": "receiver_email@example.com", "amount": "100.00", "item_name": "Product", "invoice": "100", "notify_url": "http://myip/paypal/", "return_url": "https://www.example.com/your-return-location/", "cancel_return": "https://www.example.com/your-cancel-location/", "custom": "Upgrade all users!", # Custom command to correlate to some function later (optional) } # Create the instance. form = PayPalPaymentsForm(initial=paypal_dict) context = {"form": form} return render(request, "payment.html", context) from paypal.standard.models import ST_PP_COMPLETED from paypal.standard.ipn.signals import valid_ipn_received def show_me_the_money(sender, **kwargs): ipn_obj = sender category = Category(name="Got IPN") category.save() if ipn_obj.payment_status == ST_PP_COMPLETED: category = Category(name="Good Buzz, complete") category.save() else: category = Category(name="Bad Buzz, not complete") category.save() valid_ipn_received.connect(show_me_the_money) invalid_ipn_received.connect(show_me_the_money)URL:
etc etc etc... url(r'^paypal/', include('paypal.standard.ipn.urls')), url(r'^test/$', views.view_that_asks_for_money, name='ask') ]Cuando envío mi IPN a: http://myip/paypal/ funciona pero no a través de sandbox.