def return_url_handler(request): """ describe: Handler for synchronous updating billing information. args: request.GET return: success->account/orders fail->error.html """ if notify_verify(request.GET): # bill_info tn = request.GET.get('out_trade_no') subject = request.GET.get('subject') trade_no = request.GET.get('trade_no') trade_status = request.GET.get('trade_status') bill_info = Goodsbill.objects.get(bill_id=tn) bill_info.trade_status = trade_status bill_info.save() # order_info if trade_status == 'TRADE_SUCCESS': bill_state = bill_info.bill_state if bill_state == 'buy': order_str = bill_info.order_list order_list = ast.literal_eval(str(order_str)) context = buy_return(order_list) return render(request, website.ontheway, context) else: custom_id = bill_info.custom_id cus_return(custom_id) return HttpResponseRedirect('/account/orders') else: return HttpResponse("fail") return render(request, website.payment_error, None)
def notify_url_handler(request): """ describe: Handler for notify_url for asynchronous updating bill information. args: request.POST return: """ if request.method == 'POST': if notify_verify(request.POST): # bill_id,trade_status tn = request.POST.get('out_trade_no') subject = request.GET.get('subject') #alipay - trade_no trade_no = request.GET.get('trade_no') trade_status = request.POST.get('trade_status') bill_info = Goodsbill.objects.get(bill_id=tn) bill_info.trade_status = trade_status bill_info.save() if trade_status == 'WAIT_SELLER_SEND_GOODS': bill_state = bill_info.bill_state if bill_state == 'buy': order_str = bill_info.order_list order_list = ast.literal_eval(str(order_str)) context = buy_return(order_list) return HttpResponse("success") else: custom_id = bill_info.custom_id cus_return(custom_id) return HttpResponse("success") else: return HttpResponse("success") return HttpResponse("fail")