def notify(request): """ This view point will be called by the iPaymu server on the background to notify the transaction has been success. """ if request.method == 'POST': # Excecute callback if session ID verified. # Since we did't disable CSRF protection for this view. if(verify_session(request.POST.get('sid'))): execute_callback('notification_received', request, dict(request.POST)) # Just return an empty response to avoid No Response error return HttpResponse('')
def notify(request): """ This view point will be called by the iPaymu server on the background to notify the transaction has been success. """ if request.method == 'POST': # Excecute callback if session ID verified. # Since we did't disable CSRF protection for this view. if (verify_session(request.POST.get('sid'))): execute_callback('notification_received', request, dict(request.POST)) # Just return an empty response to avoid No Response error return HttpResponse('')
def process(request): """ Process transaction request. """ if request.method == 'POST': params = IpaymuParamsBuilder(request) if params.is_valid(): # In case of connection/request error try: req = requests.post(settings.IPAYMU_REQUEST_URL, data=params.cleaned_params) except Timeout: return HttpResponse('Request timeout!.') except ConnectionError: return HttpResponse('Connection Error!.') # In case of empty response/Json Encode error try: resp_json = req.json() except: return HttpResponse('Empty response received!.') payment_url = resp_json.get('url') if payment_url: # Save session ID save_session(resp_json.get('sessionID')) # Execute callback when sessionID received. execute_callback('session_received', request, resp_json.get('sessionID')) return HttpResponseRedirect(payment_url) return HttpResponse(req.text) return HttpResponse(json.dumps(params.errors)) return HttpResponse('Invalid request.')