Exemple #1
0
def alipay_notify(request,type,id):
    if request.method == "POST":
      try:
        logging.info("access type:%s,id:%s now:%s " % (type, id, str(datetime.datetime.now())))
        alipay = Alipay()
        valid, infos = alipay.validate(request)
        if valid:
            trade_status = infos['trade_status']
            logging.info("trade:%s,id:%s" % (trade_status, id))
            if trade_status == 'TRADE_SUCCESS' or trade_status == "TRADE_FINISHED":
                record, to_process = process_record_or_no(infos)
                logging.info("to process:%s" % to_process)
                if to_process:
                    profile = record.user.profile
                    profile.money += record.money
                    profile.save()
                    logging.info("user money:%g,record money:%g" % (profile.money, record.money))
                #    msg = Message("success", "您成功充值了%s元!" % total_fee)
                    if type == "pay" and id and record:
                        composition.views.checkin(request,id,user=record.user)
                    else :
                        logging.info("false to checkin ")
            else:
                pass
                #msg = Message("error", "支付未完成!")
            logging.info("success")
            return HttpResponse("success")
      except:
        printinfo("error") 

    logging.info("fail")

    return HttpResponse("fail")
Exemple #2
0
def alipay_return(request,type,id,template="accounts/alipay_return.html"):
    if request.method == "GET":
        ext_ctx={"pay_type":type,"pay_status":"success"}
        alipay = Alipay()
        valid, infos = alipay.validate(request)
        if valid:
            trade_status = infos['trade_status']
            total_fee = infos['total_fee']
            ext_ctx["money"]=total_fee
            if trade_status == 'TRADE_SUCCESS' or trade_status == "TRADE_FINISHED":
                record,to_process=process_record_or_no(infos)
                if to_process:
                    profile=request.user.profile
                    profile.money += record.money
                    profile.save() 
                #    msg = Message("success", "您成功充值了%s元!" % total_fee)
                    if type=="pay" and id and record:
                        #logging.info("to checkin:%s,uid:%d,profile money:%g" % (id,record.user.id,profile.money))
                        composition.views.checkin(request,id,user=record.user)
                    else:
                        raise Exception
            else:
                ext_ctx["pay_status"]="fail"
                #msg = Message("error", "支付未完成!")
        else:
            ext_ctx["pay_status"]="fail"   
        return render_to_response(template,ext_ctx,RequestContext(request))