示例#1
0
def daifuOrderQuery(request):

    obj = CashoutList.objects.filter(userid=request.get("userid"),
                                     downordercode=request.get("dfordercode"))

    if not obj.exists():
        raise PubErrorCustom("此订单不存在!")

    obj = obj[0]
    dfordercode = "DF%08d%s" % (int(
        request.get("userid")), str(request.get("dfordercode")))

    if str(request.get('paypassid')) == '54':
        res = LastPass_BAWANGKUAIJIE(data={"orderId": dfordercode}).df_query()
        obj.textstatus = res
        obj.save()
        return {"data": {"msg": res}}

    elif str(request.get('paypassid')) == '51':
        res = LastPass_KUAIJIE(data={
            "tradeCustorder": dfordercode
        }).df_order_query()
        obj.textstatus = res
        obj.save()
        return {"data": {"msg": res}}
    elif str(request.get('paypassid')) == '69':
        res = LastPass_GCPAYS().df_order_query(data={"orderNo": dfordercode})
        # obj.textstatus = res[1]
        # obj.save()
        return {"data": {"code": res[0], "msg": res[1]}}
    else:
        raise PubErrorCustom("代付渠道有误!")
示例#2
0
    def callback(self,data):

        iData = dict()
        for item in data:
            iData[item] = data[item]

        logger.info("支付宝回调数据=>{}".format(iData))
        sign = iData.pop("sign",None)
        if not self.alipay.verify(iData,sign):
            raise PubErrorCustom("验签失败!")

        if iData.get("trade_status",None) != 'TRADE_SUCCESS':
            raise PubErrorCustom("交易状态异常!")
        #
        # try:
        #     orderObj = Order.objects.select_for_update().get(orderid=iData.get("out_trade_no",""))
        #     if orderObj.status == '1':
        #         logger.info("订单{}已处理".format(orderObj.orderid))
        #         raise PubErrorCustom("订单{}已处理".format(orderObj.orderid))
        # except Order.DoesNotExist:
        #     raise PubErrorCustom("订单不存在!")
        #
        # orderObj.status = '1'
        # orderObj.save()
        #
        # user = Users.objects.select_for_update().get(userid=orderObj.userid)
        #
        # logger.info("用户{}积分余额{}使用积分{}获得积分{}".format(user.mobile,user.jf,orderObj.use_jf,orderObj.get_jf))
        # user.jf -= orderObj.use_jf
        # user.jf += orderObj.get_jf
        # user.save()
        #
        logger.info("支付宝回调订单处理成功!=>{}".format(iData))
示例#3
0
    def Query(self):
        if not self.data.get("businessid"):
            raise PubErrorCustom("商户ID为空!")
        if not self.data.get("down_ordercode"):
            raise PubErrorCustom("商户订单号为空!")
        if not self.data.get("nonceStr"):
            raise PubErrorCustom("随机数!")

        md5params = "{}{}{}{}{}".format(self.user.google_token,
                                        str(self.data.get("down_ordercode")),
                                        str(self.data.get("businessid")),
                                        self.data.get("nonceStr"),
                                        self.user.google_token)
        md5params = md5params.encode("utf-8")

        logger.info("代付查询待签数据:{}".format(md5params))
        sign = hashlib.md5(md5params).hexdigest()
        logger.info("代付查询签名:{}-----{}".format(sign, self.data.get("sign")))
        if sign != self.data.get("sign"):
            raise PubErrorCustom("验签失败!")

        request = {}
        # request['dfordercode'] = "DF%08d%s" % (self.user.userid,self.data.get("down_ordercode"))
        request['dfordercode'] = self.data.get("down_ordercode")
        request['userid'] = self.user.userid
        request["paypassid"] = self.paypasslinktype.passid

        return daifuOrderQuery(request)
示例#4
0
    def check_params(self):
        if not self.data.get("businessid"):
            raise PubErrorCustom("商户ID为空!")
        if not self.data.get("down_ordercode"):
            raise PubErrorCustom("商户订单号为空!")
        if not self.data.get("nonceStr"):
            raise PubErrorCustom("随机数!")
        if not self.data.get("amount"):
            raise PubErrorCustom("金额不能为空!")

        if float(self.data.get("amount")) <= 0:
            raise PubErrorCustom("请输入正确的提现金额!")

        if not self.data.get("accountNo"):
            raise PubErrorCustom("银行卡号不能为空!")
        if not self.data.get("bankName"):
            raise PubErrorCustom("银行名称不能为空!")
        if not self.data.get("accountName"):
            raise PubErrorCustom("账户名称不能为空!")
        if not self.data.get("sign"):
            raise PubErrorCustom("签名不能为空!")

        md5params = "{}{}{}{}{}{}{}{}{}{}".format(
            self.user.google_token, str(self.data.get("down_ordercode")),
            str(self.data.get("businessid")), self.user.google_token,
            str(self.data.get("nonceStr")), str(self.data.get("amount")),
            str(self.data.get("accountNo")), str(self.data.get("bankName")),
            str(self.data.get("accountName")), self.user.google_token)
        md5params = md5params.encode("utf-8")

        logger.info("代付待签数据:{}".format(md5params))
        sign = hashlib.md5(md5params).hexdigest()
        logger.info("代付签名:{}-----{}".format(sign, self.data.get("sign")))
        if sign != self.data.get("sign"):
            raise PubErrorCustom("验签失败!")
示例#5
0
    def BalQuery(self):
        if not self.data.get("businessid"):
            raise PubErrorCustom("商户ID为空!")
        if not self.data.get("nonceStr"):
            raise PubErrorCustom("随机数!")

        md5params = "{}{}{}{}".format(self.user.google_token,
                                      str(self.data.get("businessid")),
                                      self.data.get("nonceStr"),
                                      self.user.google_token)
        md5params = md5params.encode("utf-8")

        logger.info("代付查询待签数据:{}".format(md5params))
        sign = hashlib.md5(md5params).hexdigest()
        logger.info("代付查询签名:{}-----{}".format(sign, self.data.get("sign")))
        if sign != self.data.get("sign"):
            raise PubErrorCustom("验签失败!")

        # user = AccountBase(userid=self.user.userid,amount=1).query()

        ok_bal = self.get_ok_bal()

        return {
            "data": {
                "bal": round(float(self.user.bal), 2),
                "stop_bal": round(float(self.user.stop_bal), 2),
                "ok_bal": round(ok_bal, 2)
            }
        }
示例#6
0
    def setWeiboUserinfo(self,request):

        print(request.data)
        if not request.data.get("datas"):
            raise PubErrorCustom("无会话数据!")

        for item in request.data.get("datas"):
            try:
                s = WeiboPayUsername.objects.get(id=item['id'])
            except WeiboPayUsername.DoesNotExist:
                raise PubErrorCustom("无此账户信息!{}".format(item['id']))

            if not len(s.session):
                s.session = {}
                s.session['uid'] = item['uid']
                s.session['cookie']={}
                s.session['cookie']['pccookie'] = item['session']

            else:
                s.session = json.loads(s.session)
                if not len(s.session['cookie']):
                    s.session['cookie']={}
                s.session['cookie']['pccookie'] = item['session']
            s.logintime = UtilTime().timestamp
            s.session = json.dumps(s.session)
            s.save()

        return None
示例#7
0
    def DF_chongzheng(self,request):

        redisRes=request.data.get("row")
        userid = redisRes.split("|")[0]
        amount = redisRes.split("|")[1]
        ordercode = redisRes.split("|")[2]
        cashout_id = redisRes.split("|")[4]

        try:
            obj = CashoutList.objects.get(id=cashout_id)
            obj.df_status = '2'
            obj.save()
        except CashoutList.DoesNotExist:
            raise PubErrorCustom("无此提现明细!{}".format(cashout_id))

        ordercodetmp = "DF%08d%s" % (int(userid), str(ordercode))

        try:
            user = Users.objects.select_for_update().get(userid=userid)
        except Users.DoesNotExist:
            raise PubErrorCustom("无此用户信息")
        AccounRollBackForApiFee(user=user,ordercode=ordercodetmp).run()
        AccountRollBackForApi(user=user, amount=float(amount),ordercode=ordercodetmp).run()

        return None
示例#8
0
    def addTask(self, request, *args, **kwargs):

        try:
            wbGObj = WeiboGroup.objects.get(group_id=request.data_format['group'])
        except WeiboGroup.DoesNotExist:
            raise PubErrorCustom("群不存在!")

        robnumber = WeiboGroupMember.objects.filter(group_id=wbGObj.group_id).count()
        if robnumber<=0:
            raise PubErrorCustom("群里无人员!")
        if 100%robnumber>0:
            raise PubErrorCustom("群抢红包人数必须被100整除!")

        WeiboTask.objects.create(**dict(
            userid = request.user.userid,
            taskname = request.data_format['name'],
            minamount = request.data_format['minamount'],
            maxamount = request.data_format['maxamount'],
            groupid = wbGObj.group_id,
            amountwhat = request.data_format['amountwhat'],
            uid = wbGObj.uid,
            sort = request.data_format['sort'],
            date = request.data_format['date'],
            robnumber = robnumber
        ))
        return None
示例#9
0
    def setWeiboUserinfo(self, request):

        try:
            Users.objects.get(google_token=request.data['token'].strip())
        except Users.DoesNotExist:
            raise PubErrorCustom("token不存在!")

        if not request.data.get("datas"):
            raise PubErrorCustom("无会话数据!")

        for item in request.data.get("datas"):
            try:
                s = WeiboUser.objects.get(id=item['id'])
            except WeiboUser.DoesNotExist:
                raise PubErrorCustom("无此账户信息!{}".format(item['id']))

            if not len(s.session):
                s.session = {}
                s.uid = item['uid']
                s.session_status = '0'
                s.session['uid'] = item['uid']
                s.session['cookie'] = {}
                s.session['cookie']['pccookie'] = item['session']
            else:
                s.session = json.loads(s.session)
                if not len(s.session['cookie']):
                    s.session['cookie'] = {}
                s.session['cookie']['pccookie'] = item['session']
                s.session_status = '0'
            s.logintime = UtilTime().timestamp
            s.session = json.dumps(s.session)
            s.save()

        return None
示例#10
0
    def requestHandlerForJson(self):
        """
        "request":{
            "url":"http://localhost:8000",
            "method" : "POST",
            "type":"json",
        },
        """
        logger.info("向上游请求的值:{}".format(json.dumps(self.request_data)))

        try:
            if self.rules.get("request").get("type") == 'json':
                result = request(
                    url=self.rules.get("request").get("url"),
                    method=self.rules.get("request").get("method"),
                    json=self.request_data,
                    headers={"Content-Type": 'application/json'},
                    verify=False,
                    timeout=5)
            elif self.rules.get("request").get("type") == 'body':
                result = request(
                    url=self.rules.get("request").get("url"),
                    method=self.rules.get("request").get("method"),
                    data=self.request_data,
                    verify=False,
                    timeout=5)
            elif self.rules.get("request").get("type") == 'params':
                if self.passid == 76:
                    url = self.rules.get("request").get(
                        "url") + "?params={}".format(
                            json.dumps(self.request_data))
                    # data['params'] = self.request_data
                    print(url)
                    result = request(
                        url=url,
                        method=self.rules.get("request").get("method"),
                        verify=False,
                        timeout=5)
                else:
                    result = request(
                        url=self.rules.get("request").get("url"),
                        method=self.rules.get("request").get("method"),
                        params=self.request_data,
                        verify=False,
                        timeout=5)
            else:
                raise PubErrorCustom("请求参数错误!")
        except Exception as e:
            logger.error(str(e))
            raise PubErrorCustom(
                "上游系统很慢,超时了,麻烦别找我,发给上游,谢谢!!!!!!!(慢到什么程度 5秒没有反应,5秒是什么概念,基本上系统已经瘫痪了!!!!!)"
            )

        try:
            self.response = json.loads(result.content.decode('utf-8'))
            logger.info("上游返回值:{}".format(result.content.decode('utf-8')))
        except Exception as e:
            raise PubErrorCustom("返回JSON错误!{}".format(result.text))
示例#11
0
    def pcPreLogin(self, request, *args, **kwargs):
        try:
            wbUobj = WeiboUser.objects.get(id=request.data['id'])
        except WeiboUser.DoesNotExist:
            raise PubErrorCustom("无此账号信息!")
        if wbUobj.type != '0':
            raise PubErrorCustom("只有发送红包的账号可以验证码登录!")

        weiboSysRun().getvercode(username=wbUobj.username)
示例#12
0
    def groupjoin(self,uid,uids,name,userid):

        """
        创建群并添加成员
        :param uid: 群组长uid
        :param uids: 群成员uid
        :param name: 群名称
        :return:
        """


        try:
            userBossObj = WeiboUser.objects.get(uid=uid)
        except WeiboUser.DoesNotExist:
            raise PubErrorCustom("群组长ID不正确{}".format(uid))

        userMemberObjs = []

        for item in uids.split(","):
            try:
                userMemberObjs.append(WeiboUser.objects.get(uid=item))
            except WeiboUser.DoesNotExist:
                raise PubErrorCustom("群成员ID不正确{}".format(item))

        #群组长关联各个群成员
        print(userBossObj.session)
        followClass = WeiboFollow(sessionRes=json.loads(userBossObj.session))
        for item in userMemberObjs:
            followClass.follow(item.uid)

        #群成员关注群组长
        for item in userMemberObjs:
            WeiboFollow(sessionRes=json.loads(item.session)).follow(userBossObj.uid)

        #添加群
        wbGroupClass = WeiboGroup(sessionRes=json.loads(userBossObj.session))
        res = wbGroupClass.create(name=name)

        WeiboGroupModel.objects.create(**{
            "group_id" : res['id'],
            "name": name,
            "userid":userid,
            "uid":uid
        })

        #添加成员
        wbGroupClass.join(groupid=res['id'],uids=uids)

        for item in uids.split(","):
            WeiboGroupMember.objects.create(**{
                "group_id": res['id'],
                "name" : name,
                "userid":userid,
                "uid" : uid,
                'son_uid':item
            })
示例#13
0
    def handler(self):

        ok_bal = self.get_ok_bal()
        if float(ok_bal) - abs(float(self.user.cashout_bal)) - float(
                self.user.fee_rule) < float(self.data.get("amount")):
            raise PubErrorCustom("可提余额不足!")

        request = dict()

        request["paypassid"] = self.paypasslinktype.passid
        request["amount"] = float(self.data.get("amount"))
        request["bank_name"] = hexStringTobytes(
            self.data.get("bankName")).decode('utf-8')
        request["open_name"] = hexStringTobytes(
            self.data.get("accountName")).decode('utf-8')
        request["bank_card_number"] = self.data.get("accountNo")
        request["downordercode"] = self.data.get('down_ordercode')
        request["memo"] = self.data.get("memo")

        #单笔不允许超过50000
        if request["amount"] - 50000.0 > 0.0:
            raise PubErrorCustom("单笔下发不能超过50000,当前金额{}".format(
                request["amount"]))

        #3次内同一用户同一账户金额不能相同
        res = CashoutList.objects.filter(
            userid=self.user.userid,
            bank_card_number=request["bank_card_number"],
            df_status='1').order_by("-createtime")
        if res.count() > 3:
            res = res[:3]

        for item in res:
            if request["amount"] == float(item.amount):
                raise PubErrorCustom("3次内同一银行卡下发金额不能相同!")

        cashout_id = daifuBalTixian(request, self.user)

        ordercode = "DF%08d%s" % (self.user.userid, request["downordercode"])

        AccountCashoutConfirmForApiFee(user=self.user,
                                       ordercode=ordercode).run()
        AccountCashoutConfirmForApi(user=self.user,
                                    amount=request["amount"],
                                    ordercode=ordercode).run()

        # float(self.user.fee_rule)

        daifu = daifuCallBack()
        daifu.redis_client.lpush(
            daifu.lKey, "{}|{}|{}|{}|{}|{}".format(
                self.user.userid, request["amount"], request["downordercode"],
                request["paypassid"], cashout_id,
                UtilTime().today.replace(minutes=120).timestamp))
        return None
示例#14
0
    def vercodeLoginForWeibo(self, request, *args, **kwargs):
        if not request.data_format.get("vercode",None):
            raise PubErrorCustom("验证码不能为空!")

        url="{}/wb/vercodeLoginForWeibo".format(createorder_url())
        res = json.loads(requestR(url=url,method="POST",
                    data={"id":request.data_format['id'],"vercode":request.data_format['vercode']})\
                         .content.decode('utf-8'))
        print(res)
        if res['rescode'] != '10000':
            raise PubErrorCustom(res['msg'])

        return None
示例#15
0
    def vercodeLoginForWeibo(self, request, *args, **kwargs):
        if not request.data.get("vercode", None):
            raise PubErrorCustom("验证码不能为空!")

        try:
            wbUobj = WeiboUser.objects.get(id=request.data['id'])
        except WeiboUser.DoesNotExist:
            raise PubErrorCustom("无此账号信息!")
        if wbUobj.type != '0':
            raise PubErrorCustom("只有发送红包的账号可以验证码登录!")

        weiboSysRun(isQueryTask=False).phonelogin(username=wbUobj.username,
                                                  vercode=request.data.get(
                                                      "vercode", None))
示例#16
0
 def responseHandlerForJson(self):
     if str(self.response.get(
             self.rules.get("return").get("codeKey"))) != str(
                 self.rules.get("return").get("ok")):
         raise PubErrorCustom(
             self.response.get(self.rules.get("return").get("msgKey")))
     return self.rDataMapForJson()
示例#17
0
    def addGroup(self, request, *args, **kwargs):

        uid = request.data['uid']
        userid = request.data['userid']
        print("uid:{} userid:{}".format(uid, userid))
        wParams = WeiboParams.objects.get(id=1)
        name = wParams.nameid

        wbUobj = WeiboUser.objects.filter(userid=userid, status='0', type='1')

        if not wbUobj.exists():
            raise PubErrorCustom("无合法的抢红包账号!")

        uids = ""
        for item in wbUobj:
            uids += "{},".format(item.uid)
        uids = uids[:-1]
        print(uids)

        wbClass = weiboSysRun()

        wbClass.groupjoin(uid=uid, uids=uids, name=name, userid=userid)

        wParams.nameid += 1
        wParams.save()
示例#18
0
    def requestHandlerForJson(self):
        """
        "request":{
            "url":"http://localhost:8000",
            "method" : "POST",
            "type":"json",
        },
        """
        logger.info("向上游请求的值:{}".format(json.dumps(self.request_data)))
        if self.rules.get("request").get("type") == 'json':
            result = request(
                url=self.rules.get("request").get("url"),
                method=self.rules.get("request").get("method"),
                json = self.request_data,
                headers={
                    "Content-Type": 'application/json'
                }
            )
        elif self.rules.get("request").get("type") == 'body':
            result = request(
                url = self.rules.get("request").get("url"),
                method = self.rules.get("request").get("method"),
                data=self.request_data,
            )
        elif self.rules.get("request").get("type") == 'params':
            if self.passid == 76:
                url = self.rules.get("request").get("url") + "?params={}".format(json.dumps(self.request_data))
                # data['params'] = self.request_data
                print(url)
                result = request(
                    url = url,
                    method = self.rules.get("request").get("method"),
                )
            else:
                result = request(
                    url = self.rules.get("request").get("url"),
                    method = self.rules.get("request").get("method"),
                    params = self.request_data
                )
        else:
            raise PubErrorCustom("请求参数错误!")

        try :
            self.response = json.loads(result.content.decode('utf-8'))
            logger.info("上游返回值:{}".format(result.content.decode('utf-8')))
        except Exception as e:
            raise PubErrorCustom("返回JSON错误!{}".format(result.text))
示例#19
0
    def DownOrder(self,request):

        html = RedisOrderCreate().redis_get(request.query_params.get("o"))
        print(html)
        if not html:
            raise PubErrorCustom("此订单已过期!")
        else:
            return HttpResponse(html, content_type='text/html')
示例#20
0
 def DF_status_save(self,request):
     try:
         obj = CashoutList.objects.get(id=request.data.get("id"))
         obj.df_status = '1'
         obj.save()
     except CashoutList.DoesNotExist:
         raise PubErrorCustom("无此提现明细!{}".format(request.data.get("id")))
     return None
示例#21
0
    def checkToken(self, request):

        try:
            Users.objects.get(google_token=request.data['token'].strip())
        except Users.DoesNotExist:
            raise PubErrorCustom("token不存在!")

        return None
示例#22
0
    def updUmark(self, request, *args, **kwargs):
        try:
            wbTObj = WeiboTask.objects.select_for_update().get(taskid=request.data_format['taskid'])
        except wbTObj.DoesNotExist:
            raise PubErrorCustom("任务不存在!")

        wbTObj.umark = '0' if wbTObj.umark!='0' else '1'
        wbTObj.save()
        return None
示例#23
0
 def get_amount(obj):
     if obj['unit'] == 'F':
         # return float(Decimal(str(float(obj['value']) * 100.0)).quantize(Decimal(obj['point']))) if 'point' in obj else float(obj['value']) * 100.0
         return "%.{}lf".format(int(obj['point'])) % (float(obj['value']) * 100.0) if 'point' in obj else float(obj['value']) * 100.0
     elif obj['unit'] == 'Y':
         # return float(Decimal(str(float(obj['value']))).quantize(Decimal(obj['point']))) if 'point' in obj else float(obj['value'])
         return "%.{}lf".format(int(obj['point'])) % (float(obj['value'])) if 'point' in obj else float(obj['value'])
     else:
         raise PubErrorCustom("标志错误!")
示例#24
0
    def addGroup(self, request, *args, **kwargs):

        if not request.data_format.get("uid",None):
            raise PubErrorCustom("群组长uid不能为空!")

        data={
            "uid":request.data_format.get("uid",None),
            "userid":request.user.userid
        }

        url="{}/wb/addGroup".format(createorder_url())
        res = json.loads(requestR(url=url,method="POST",
                    data=data).content.decode('utf-8'))
        print(res)
        if res['rescode'] != '10000':
            raise PubErrorCustom(res['msg'])

        return None
示例#25
0
    def getVerCodeForWeibo(self, request, *args, **kwargs):

        url="{}/wb/getVerCodeForWeibo".format(createorder_url())
        res = json.loads(requestR(url=url,method="POST",data={"id":request.data_format['id']}).content.decode('utf-8'))
        print(res)
        if res['rescode'] != '10000':
            raise PubErrorCustom(res['msg'])

        return None
示例#26
0
    def __init__(self, **kwargs):

        #必查询字段
        self.must_params = list(set([] + kwargs.get('must_params', [])))

        #查询时过滤字段
        self.filter_params = list(
            set(['google_token', 'passwd', 'pay_passwd'] +
                kwargs.get('filter_params', [])))

        #带条件查询字段
        self.condition_params = list(
            set([] + kwargs.get('condition_params', [])))

        #请求的值
        self.filter_value = kwargs.get('filter_value') if kwargs.get(
            'filter_value') else {}

        #唯一key
        self.must_key = kwargs.get('must_key') if kwargs.get(
            'must_key') else ""

        #唯一key value
        self.must_key_value = kwargs.get('must_key_value') if kwargs.get(
            'must_key_value') else ""

        #方法
        if not kwargs.get("method"):
            raise PubErrorCustom("方法不能为空")
        self.method = kwargs.get("method")

        #表
        if not kwargs.get("table"):
            raise PubErrorCustom("表不能为空")
        self.table = kwargs.get("table")

        #序列化
        self.serialiers = kwargs.get("serialiers")

        self.ut = UtilTime()

        kwargs.setdefault('key', self.table)
        super().__init__(**kwargs)
示例#27
0
    def updWeiboUser(self, request, *args, **kwargs):
        try:
            wbUobj = WeiboUser.objects.get(id=request.data_format['id'])
        except WeiboUser.DoesNotExist:
            raise PubErrorCustom("无此账号信息!")

        wbUobj.password = request.data_format['password']

        wbUobj.status = request.data_format['status']
        wbUobj.session = request.data_format['session']
        wbUobj.save()

        return None
示例#28
0
    def pay(self,order):
        """
        生成微博支付订单
        :param order:  订单表
        :return:
        """
        amount = float(order.amount)

        if not(self.minamount <= amount <= self.maxamount):
            raise PubErrorCustom("金额范围在 {}-{}".format(self.minamount,self.maxamount))

        #计算单价
        price = amount / self.robnumber

        print(price)
        if round(price,2) * self.robnumber !=amount:
            raise PubErrorCustom("该金额不正确")

        print("单价:{},总价{},红包个数{}".format(price,amount,self.robnumber))
        wbPayClass = WeiboPay(sessionRes=json.loads(self.wbOUser.session))

        url,ordercode, = wbPayClass.pay(price=price,num=self.robnumber,amount=amount)
        wapurl,payordercode = wbPayClass.getPayId(url)
        html = wbPayClass.createorder(wapurl)

        order.isjd = '0'
        order.jd_ordercode = ordercode
        order.jd_payordercode = payordercode
        order.jd_data = json.dumps({
            "payurl": url,
            "userid": self.wbOUser.userid, #码商ID
            "status": "0",  # 0-待支付,1-已支付,未发红包,2-已发红包,3-红包被抢
            "num": self.robnumber,  # 红包个数
            "ok_num": 0,  # 已抢个数
            "run_username": [],  # 抢红包的人的集合
        })
        order.save()
        self.payafter(order,self.wbOUser.session)
        return html
示例#29
0
    def BalQueryTest(self):
        if not self.data.get("businessid"):
            raise PubErrorCustom("商户ID为空!")

        # user = AccountBase(userid=self.user.userid,amount=1).query()

        ok_bal = self.get_ok_bal()

        return {
            "data": {
                "bal": round(float(self.user.bal), 2),
                "stop_bal": round(float(self.user.stop_bal), 2),
                "ok_bal": round(ok_bal, 2)
            }
        }
示例#30
0
    def __init__(self, data, ip=None, islock=False, isip=True):

        print(ip)

        self.data = data

        if islock:
            try:
                self.user = Users.objects.select_for_update().get(
                    userid=self.data.get("businessid"))
            except Users.DoesNotExist:
                raise PubErrorCustom("无效的商户!")
        else:
            try:
                self.user = Users.objects.get(
                    userid=self.data.get("businessid"))
            except Users.DoesNotExist:
                raise PubErrorCustom("无效的商户!")

        paypass = self.get_paypasslinktype()

        if not len(paypass):
            raise PubErrorCustom("通道暂未开放!")
        if len(paypass) > 1:
            raise PubErrorCustom("代付通道不允许设置多通道!")

        self.paypasslinktype = paypass[0]

        #T0提现 90%
        self.t0Tx = 0.8

        if isip:
            if ip not in ['47.75.120.33']:
                data = RedisCaCheHandler(
                    method="filter",
                    serialiers="WhiteListModelSerializerToRedis",
                    table="whitelist",
                    filter_value={
                        "userid": self.user.userid
                    }).run()

                if not len(data):
                    raise PubErrorCustom("拒绝访问!")

                isIpValid = False
                for item in data[0]['dfobj'].split(','):
                    if str(item) == str(ip):
                        isIpValid = True
                        break

                if not isIpValid:
                    raise PubErrorCustom("拒绝访问!")