Пример #1
0
def vipOrder(request):
    _user = request.user
    ipaddr = request.POST.get("ipaddr", "127.0.0.1")
    typeid = request.POST.get("typeid", None)
    fee = request.POST.get("fee", None)
    body = request.POST.get("body", "Unknown")
    detail = request.POST.get("detail", "Unknown")
    month = request.POST.get("month", None)
    if not month or not typeid or not fee:
        return Jsonify({"status":False, "error":"1101", "error_message":u"输入信息不足。"})
    fee = float(fee)
    month = int(month)
    typeid = int(typeid)
    server_fee = getVIPfee(month, typeid, typeid)
    if fee != server_fee:
        return Jsonify({"status":False, "error":"1510", "error_message":u"费用有误,您的订单费用为"+str(server_fee)+u"元。", "fee":server_fee})
    ##Generate wechat preorder
    _order = VIPOrder(month=month, fee=fee, user_id=_user['uid'], level=typeid, state=0)
    _order.save()
    result = unifyOrder(model_to_dict(_order), body, detail, ipaddr, 1)
    prepayid = ""
    try:
        root = ET.fromstring(result)
        if root.find("return_code").text == "SUCCESS":
            prepayid = root.find("prepay_id").text
        else:
            return Jsonify({"status":False, "error":"1310", "error_message":u"微信预支付失败,响应失败"})           
    except Exception, e:
        logger.error(e)
        logger.error("1311 wechat order failed")
        return Jsonify({"status":False, "error":"1311", "error_message":u"微信预支付失败, 未知错误。"})
Пример #2
0
def vipOrder(request):
    _user = request.user
    ipaddr = request.POST.get("ipaddr", "127.0.0.1")
    typeid = request.POST.get("typeid", None)
    fee = request.POST.get("fee", None)
    body = request.POST.get("body", "Unknown")
    detail = request.POST.get("detail", "Unknown")
    month = request.POST.get("month", None)
    if not month or not typeid or not fee:
        return Jsonify({
            "status": False,
            "error": "1101",
            "error_message": u"输入信息不足。"
        })
    fee = float(fee)
    month = int(month)
    typeid = int(typeid)
    server_fee = getVIPfee(month, typeid, typeid)
    if fee != server_fee:
        return Jsonify({
            "status": False,
            "error": "1510",
            "error_message": u"费用有误,您的订单费用为" + str(server_fee) + u"元。",
            "fee": server_fee
        })
    ##Generate wechat preorder
    _order = VIPOrder(month=month,
                      fee=fee,
                      user_id=_user['uid'],
                      level=typeid,
                      state=0)
    _order.save()
    result = unifyOrder(model_to_dict(_order), body, detail, ipaddr, 1)
    prepayid = ""
    try:
        root = ET.fromstring(result)
        if root.find("return_code").text == "SUCCESS":
            prepayid = root.find("prepay_id").text
        else:
            return Jsonify({
                "status": False,
                "error": "1310",
                "error_message": u"微信预支付失败,响应失败"
            })
    except Exception, e:
        logger.error(e)
        logger.error("1311 wechat order failed")
        return Jsonify({
            "status": False,
            "error": "1311",
            "error_message": u"微信预支付失败, 未知错误。"
        })
Пример #3
0
def confirmOrder(request):
    oid = request.POST.get("oid", None)
    fee = request.POST.get("fee", None)
    notes = request.POST.get("notes", "")
    ipaddr = request.POST.get("ipaddr", "127.0.0.1")
    body = request.POST.get("body", "Unknown")
    detail = request.POST.get("detail", "Unknown")
    prepayid = request.POST.get("prepayid", None)
    if not fee or not oid:
        return Jsonify({"status":False, "error":"1101", "error_message":u"输入信息不足。"})
    oid = int(oid)
    fee = float(fee)
    _order = Order.objects.filter(oid=oid)
    if not _order:
        return Jsonify({"status":False, "error":"1302", "error_message":u"订单不存在。"})
    else:
        _order = _order[0]
        _sign = ""
        for i in range(8):
            _sign = _sign + ALPHABET[random.randint(0, 62)]
        _order.signature = _sign
        if notes:
            _order.notes = notes
        if fee != _order.fee:
            return Jsonify({"status":False, "error":"1303", "fee":fee, "order":_order.toDict(), "error_message":u"订单价格有误, 请重新下单。"})
        ##wechat order
        if fee==0:
            _order.paid_time=datetime.now()
            _order.state=1
            _order.save()
            return Jsonify({"status":True, "error":"", "error_message":"", "order":_order.toDict(), "detail":u"会员免运费: 0元。"})
        else:
            _order.state=0
            result = unifyOrder(_order.toDict(), body, detail, ipaddr, 0)
            if not prepayid:
                try:
                    root = ET.fromstring(result)
                    if root.find("return_code").text == "SUCCESS":
                        prepayid = root.find("prepay_id").text
                    else:
                        return Jsonify({"status":False, "error":"1310", "error_message":u"微信预支付失败,响应失败"})			
                    _order.prepayid = prepayid
                    _order.save()
                except Exception, e:
                    logger.error(e)
                    logger.error("1311 微信预支付失败, 未知错误")
                    return Jsonify({"status":False, "error":"1311", "error_message":u"微信预支付失败, 未知错误。"})
            #为iOS准备调起支付所需的参数
            data = iosOrder(prepayid)
            return Jsonify({"status":True, "error":"", "error_message":"", "order":_order.toDict(), "data":data, "detail":u"同仓存取快递费: 6元。"})