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"微信预支付失败, 未知错误。"})
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"微信预支付失败, 未知错误。" })
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元。"})