def alipay_notify(request): """ Notify callback for alipay """ alipay = Alipay(pid=settings.ALIPAY_PID, key=settings.ALIPAY_KEY, seller_email=settings.ALIPAY_SELLER_EMAIL) if alipay.verify_notify(**dict(request.POST.items())): if request.POST.get("trade_status") in ["WAIT_SELLER_SEND_GOODS", "TRADE_SUCCESS"]: order = Booking.objects.get(id=request.POST.get("out_trade_no")) order.status = 5 order.pay_method = 2 order.save() create_sms(order.booker, order) create_mail_book_confirm(order.booker, order) internal_book_confirm(order.booker, order) return HttpResponse("success") else: print "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" return HttpResponse("failure")
def return_alipay_action(request): payment = get_object_or_404(Payment, label='alipay') alipay = Alipay( pid=payment.pid, key=payment.key, seller_email=payment.seller_email) if alipay.verify_notify(**request.GET.dict()): # this is a valid notify, code business logic here number = request.GET.get('out_trade_no') dpo = get_object_or_404(DirectPaymentOrder, number=number) fee = int(float(request.GET.get('total_fee'))) if dpo.money == fee: dpo.pay_number = request.GET.get('trade_no') dpo.pay_status = request.GET.get('trade_status') dpo.buyer_id = request.GET.get('buyer_id') dpo.buyer_email = request.GET.get('buyer_email') dpo.notify_id = request.GET.get('notify_id') dpo.paid_date = timezone.now() dpo.status = 'paid' dpo.save() return True else: # this is a invalid notify return False