def setRecOrderAddr(request):
    success_json = {'rtnCode' : 0, 'rtnMsg' : 'Set new user address success!', 'addr_id' : 0}
    if request.method == 'POST':
        trd_session = request.POST['trd_session']
        isValidSession, curUserId= check_session_value(trd_session)
        if isValidSession == False:
            err_json = response_invalid_session_json()
            return HttpResponse(json.dumps(err_json), content_type="application/json")
        else:
            addressId = request.POST['addr_id']
            recvName = request.POST['recv_name']
            recvPhone = request.POST['recv_phone']
            recvAddr = request.POST['recv_addr']
            try:
                userAddObjAft = userAddrList.objects.get(addr_id=addressId)
            except:
                err_resp_json = {'rtnCode' : 2, 'rtnMsg' : 'Update user address failed! please check'}
                return HttpResponse(json.dumps(err_resp_json), content_type="application/json")
            else:
                userAddObjAft.recipient_name = recvName
                userAddObjAft.recipient_phone = recvPhone
                userAddObjAft.recipient_addr = recvAddr
                userAddObjAft.save()
                success_json['addr_id'] = addressId
                #print(recvAddr)
                return HttpResponse(json.dumps(success_json), content_type="application/json")
def updateUserInfo(request):
    #print(request.method)
    err_resp_json = {'rtnCode': 0, 'rtnMsg': 'create userObj success'}
    if request.method == 'POST':
        #try:
        trd_session = request.POST['trd_session']
        isValidSession, curUserId = check_session_value(trd_session)
        if isValidSession == False:
            err_json = response_invalid_session_json()
            return HttpResponse(json.dumps(err_json),
                                content_type="application/json")
        else:
            try:
                userObj = UserInfo.objects.get(user_id=curUserId)
            except:
                userObj = UserInfo(user_id=curUserId,
                                   name=request.POST['name'],
                                   phone=request.POST['phone'],
                                   email=request.POST['email'])
                userObj.save()
                return HttpResponse(json.dumps(err_resp_json),
                                    content_type="application/json")
            else:
                userObj.name = request.POST['name']  #需考虑为中文时的情况
                userObj.phone = request.POST['phone']
                userObj.email = request.POST['email']
                #userObj.address = request.POST['address']
                userObj.save()
                resp_success = {
                    'rtnCode': 0,
                    'rtnMsg': 'update userObj success'
                }  #修改成功
                return HttpResponse(json.dumps(resp_success),
                                    content_type="application/json")
def setProductState(request):
    if request.method == 'POST':
        try:
            trd_session = request.POST['trd_session']
            productId = request.POST['product_id']
            typeId = request.POST['type']
            isValidSession, curUserId= check_session_value(trd_session)
            if isValidSession == False:
                err_json = response_invalid_session_json()
                return HttpResponse(json.dumps(err_json), content_type="application/json")
        except:
            err_json = response_err_json()
            return HttpResponse(json.dumps(err_json), content_type="application/json")
        else:
            if productId == '' or trd_session == '' or typeId == '':
                err_json = {'rtnCode' : 2, 'rtnMsg' : 'Lack of necessary fileld like productId,userId,typeId'}
                return HttpResponse(json.dumps(err_json), content_type="application/json")
                #print(typeId)
            if typeId == '1':        ##1. 购买成功 2. 收藏 3. 取消收藏 4. 购买未成功
                rtnJson = insetUserOrderList(curUserId, productId)
                return HttpResponse(json.dumps(rtnJson), content_type="application/json")
            if typeId == '2':
                rtnJson = insetSavedProductList(curUserId, productId)
                return HttpResponse(json.dumps(rtnJson), content_type="application/json")
            if typeId == '3':
                rtnJson = deleteSavedProductList(curUserId, productId)
                return HttpResponse(json.dumps(rtnJson), content_type="application/json")
            if typeId == '4':
                rtnJson = insetUnPaidOrderList(curUserId, productId)
                return HttpResponse(json.dumps(rtnJson), content_type="application/json")
            else:
                err_json = {'rtnCode' : 1, 'rtnMsg' : 'wrong typeId'}
                return HttpResponse(json.dumps(err_json), content_type="application/json")
def getOrderList(request,trd_session):
    isValidSession, curUserId= check_session_value(trd_session)
    #print(isValidSession)
    if isValidSession == False:
        err_json = response_invalid_session_json()
        return HttpResponse(json.dumps(err_json), content_type="application/json")
    else:   
        order_list = OrderList.objects.filter(user_id=curUserId, order_status=DEFAULT_ORDER_SAVED_STATUS)
    success_json = response_success_order_set_json(order_list)
    #print(success_json)
    return HttpResponse(json.dumps(success_json), content_type="application/json")
def getSavedProductList(request, trd_session):
    isValidSession, curUserId= check_session_value(trd_session)
    if isValidSession == False:
        err_json = response_invalid_session_json()
        return HttpResponse(json.dumps(err_json), content_type="application/json")
    else:
        savedProductObj = SavedProductList.objects.filter(user_id=curUserId)     #################如果查询为空的时候是反回空json,还是反回错误??
        if savedProductObj.exists():
            resp_json = resp_success_saved_product_set_json(savedProductObj)
            return HttpResponse(json.dumps(resp_json), content_type="application/json")
        else:
            resp_json = success_none_json()
            return HttpResponse(json.dumps(resp_json), content_type="application/json")
def getRecvOrderAddr(request, trd_session):
    isValidSession, curUserId= check_session_value(trd_session)
    if isValidSession == False:
        err_json = response_invalid_session_json()
        return HttpResponse(json.dumps(err_json), content_type="application/json")
    else:
        userAddrObj = userAddrList.objects.filter(user_id=curUserId)
        if userAddrObj.exists():
            success_json = response_success_addr_set_json(userAddrObj)
            return HttpResponse(json.dumps(success_json), content_type="application/json")
        else:
            non_json = {'rtnCode' : 0, 'rtnMsg' : 'no data in addr list'}
            return HttpResponse(json.dumps(non_json), content_type="application/json")
def getUserInfo(request, trd_session):
    try:
        isValidSession, curUserId= check_session_value(trd_session)
        if isValidSession == False:
            err_json = response_invalid_session_json()
            return HttpResponse(json.dumps(err_json), content_type="application/json")
        else: 
            userObj = UserInfo.objects.get(user_id=curUserId)
    except:
        err_json = response_no_user_json()
        return HttpResponse(json.dumps(err_json), content_type="application/json") 
    else:
        success_json = response_success_json(userObj)
        return HttpResponse(json.dumps(success_json), content_type="application/json")     
def getProductStoredInfo(request, cur_product_id, trd_session):
    error_json = {'rtnCode' : 0, 'rtnMsg' : 'success', 'status' : '1'}     #1表示未收藏
    success_json = {'rtnCode' : 0, 'rtnMsg' : 'success', 'status' : '0'}   #0表示收藏
    isValidSession, curUserId= check_session_value(trd_session)
    if isValidSession == False:
        err_json = response_invalid_session_json()
        return HttpResponse(json.dumps(err_json), content_type="application/json")
    else:
        #print(curUserId)
        #print(cur_product_id)
        savedProductObj = SavedProductList.objects.filter(user_id=curUserId, saved_product_id=cur_product_id)
        #print(savedProductObj.exists())
        if savedProductObj.exists():
            return HttpResponse(json.dumps(success_json), content_type="application/json")
        else:
            return HttpResponse(json.dumps(error_json), content_type="application/json")
def delUnPaidOrder(request):
    if request.method == 'POST':
        out_trade_show_no = request.POST['out_trade_show_no']
        trd_session = request.POST['trd_session']
        isValidSession, curUserId = check_session_value(trd_session)
        if isValidSession == False:
            err_json = response_invalid_session_json()
            return HttpResponse(json.dumps(err_json), content_type="application/json")
        else:
            try:
                OrderListObj = OrderList.objects.filter(user_id=curUserId, out_trade_show_no=out_trade_show_no, order_status=DEFAULT_ORDER_UNSAVED_STATUS).delete()
            except:
                err_json = {'rtnCode' : '2', 'rtnMsg' : 'wrong out_trade_no!'}
                return HttpResponse(json.dumps(err_json), content_type="application/json")
            else:
                success_json = {'rtnCode' : 0, 'rtnMsg' : 'delete order success'}   
                return HttpResponse(json.dumps(success_json), content_type="application/json")                
def deleteRecvOrderAddr(request):
    success_json = {'rtnCode' : 0, 'rtnMsg' : 'Delete user address success!'}
    if request.method == 'POST':
        trd_session = request.POST['trd_session']
        isValidSession, curUserId= check_session_value(trd_session)
        if isValidSession == False:
            err_json = response_invalid_session_json()
            return HttpResponse(json.dumps(err_json), content_type="application/json")
        else:
            try:
                addressId = request.POST['addr_id']
                userAddrList.objects.filter(addr_id=addressId).delete()
            except:
                err_json = response_err_json()
                return HttpResponse(json.dumps(err_json), content_type="application/json")
            else:
                return HttpResponse(json.dumps(success_json), content_type="application/json")
def addRecvOrderAddr(request):
    success_json = {
        'rtnCode': 0,
        'rtnMsg': 'Add new user address success!',
        'addr_id': ''
    }
    err_resp_json = {
        'rtnCode': 2,
        'rtnMsg': 'Add new user address failed! please check',
        'addr_id': ''
    }
    if request.method == 'POST':
        trd_session = request.POST['trd_session']
        isValidSession, curUserId = check_session_value(trd_session)
        if isValidSession == False:
            err_json = response_invalid_session_json()
            return HttpResponse(json.dumps(err_json),
                                content_type="application/json")
        else:
            recvName = request.POST['recv_name']
            recvPhone = request.POST['recv_phone']
            recvAddr = request.POST['recv_addr']
            userAddrObj = userAddrList(user_id=curUserId,
                                       recipient_name=recvName,
                                       recipient_phone=recvPhone,
                                       recipient_addr=recvAddr)
            userAddrObj.save()
            try:
                userAddObjAft = userAddrList.objects.get(
                    user_id=curUserId,
                    recipient_name=recvName,
                    recipient_phone=recvPhone,
                    recipient_addr=recvAddr)
            except:
                return HttpResponse(json.dumps(err_resp_json),
                                    content_type="application/json")
            else:
                addr_id = userAddObjAft.addr_id
                success_json['addr_id'] = addr_id
                return HttpResponse(json.dumps(success_json),
                                    content_type="application/json")
Example #12
0
def create_pay(request):
    '''
    请求支付
    :return:
    '''
    if request.method == 'POST':
        trd_session = request.POST['trd_session']
        isValidSession, curUserId = check_session_value(trd_session)
        if isValidSession == False:
            err_json = response_invalid_session_json()
            return HttpResponse(json.dumps(err_json),
                                content_type="application/json")
        else:
            isFirstOrder = request.POST['isFirstOrder']  ##0表示不是第一次下单,1表示第一次下单
            if isFirstOrder == '1':
                productId = request.POST['product_id']
                if 'addr_id' in request.POST:  ##表示点击直接购买
                    addrId = request.POST['addr_id']
                else:
                    addrId = DEFAULT_ORDER_ADDR_ID  ##表示点击加入购物车
                productList = []
                productList.append(productId)
                total_fee = getTotalFeeByProductList(productList)
            else:
                outTradeShowNoListStr = request.POST['outTradeShowNoListStr']
                outTradeShowNoList = getOutTradeShowNoListFromStr(
                    outTradeShowNoListStr)
                total_fee = getTotalFeeByOutTradeShowNoList(outTradeShowNoList)
                addrId = request.POST['addr_id']
                #print(outTradeShowNoList)
            #print(total_fee)
            if total_fee == INVALID_TOTAL_FEE:
                return HttpResponse(WRONG_PRODUCT_ID_INFO,
                                    content_type="application/json")
            SessionOpenIdObj = SessionOpenId.objects.get(user_id=curUserId)
            openid = SessionOpenIdObj.openId
            if isFirstOrder == '1':
                data, out_trade_show_no = create_first_pay_data(
                    openid, total_fee)
            else:
                data, out_trade_show_no = create_first_pay_data(
                    openid, total_fee)
                #data['out_trade_no'] = out_trade_no
            out_trade_no = data['out_trade_no']
            err_json = {'rtnCode': 2, 'rtnMsg': 'pay error'}
            wxpay = WxPay(config.merchant_key, **data)
            pay_info = wxpay.get_pay_info()
            #pay_info_json = json.dumps(pay_info)
            ##print(pay_info)
            sign = pay_info['sign']
            pay_info.pop('sign')
            #pay_info['total_fee'] =  total_fee
            pay_info['rtnCode'] = 0
            pay_info['rtnMsg'] = 'wxpay request success!'
            ##print(pay_info)
            if pay_info:
                if isFirstOrder == '1':
                    result = newOrderList(curUserId, productList,
                                          out_trade_show_no, out_trade_no,
                                          sign, addrId)
                    pay_info['out_trade_show_no'] = out_trade_show_no
                else:
                    pay_info['out_trade_show_no'] = ''
                    result = updateOrderListOutTradeNoByOutTradeShowNoList(
                        out_trade_no, outTradeShowNoList)
                #print(pay_info)
                if result['rtnCode'] != 0:  ##操作失败
                    return HttpResponse(json.dumps(result),
                                        content_type="application/json")
                return HttpResponse(json.dumps(pay_info),
                                    content_type="application/json")
            return HttpResponse(json.dumps(err_json),
                                content_type="application/json")