Beispiel #1
0
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")
Beispiel #2
0
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