def ipn(request): params = {'cmd': '_notify-validate'} for k, v in request.POST.items(): params[k] = v.encode('utf-8') response = urllib.urlopen(settings.IPN_ENDPOINT, urllib.urlencode(params)).read() if response == 'VERIFIED': processor = PaymentProcessor(config_get_group(PROCESSOR_KEY)) processor.update_payment(request.POST) return HttpResponse('OK') raise Http404