コード例 #1
0
    def run(self):
        print("红包订单同步开始!")
        while True:
            redisRes = self.redis_client.brpop(self.lKey)[1]
            if not redisRes:
                continue

            self.ordercode = redisRes.decode('utf-8').split("|allwin|")[0]
            self.session = redisRes.decode('utf-8').split("|allwin|")[1]
            self.endtime = redisRes.decode('utf-8').split("|allwin|")[2]

            if UtilTime().timestamp >= int(self.endtime):
                continue
            try:
                orderObj = Order.objects.get(ordercode=self.ordercode)

                wbPayClass = WeiboPay(sessionRes=json.loads(self.session))
                payordercode = wbPayClass.getPayId(
                    json.loads(orderObj.jd_data)['payurl'])

                orderObj.jd_payordercode = payordercode
                orderObj.save()

                weiboHandler = callback()
                weiboHandler.redis_client.lpush(
                    weiboHandler.lKey,
                    "{}|allwin|{}|allwin|{}|allwin|{}".format(
                        orderObj.ordercode, orderObj.jd_payordercode,
                        self.session,
                        UtilTime().today.replace(minutes=120).timestamp))

            except Exception as e:
                self.redisdataCall(str(e))
                continue
コード例 #2
0
ファイル: utils.py プロジェクト: rentPayServer/orderServer
 def get_date(obj):
     if obj.get("type") == "appoint":
         return obj.get("value")
     else:
         ut = UtilTime()
         return ut.timestamp * 1000 \
             if obj.get("format", None) == 'timestamp' else \
             ut.arrow_to_string(arrow_s=ut.today, format_v=obj.get("format", None)) if obj.get("format", None) \
                 else ut.arrow_to_string(arrow_s=ut.today)
コード例 #3
0
ファイル: cron.py プロジェクト: rentPayServer/orderServer
def order_valid_task():
    """
    订单过期处理,每天凌晨3点处理昨天的过期情况
    :return:
    """
    with transaction.atomic():
        ut = UtilTime()
        # last_day_time = ut.string_to_timestamp(ut.arrow_to_string(ut.today.replace(days=-1), format_v="YYYY-MM-DD") + ' 00:00:01')
        today_time = ut.string_to_timestamp(ut.arrow_to_string(ut.today,format_v="YYYY-MM-DD")+' 00:00:01')
        Order.objects.filter(createtime__lte=today_time,status="1").update(status="3",down_status='3')
コード例 #4
0
    def __init__(self, type=None):
        self.ut = UtilTime()

        #当前时间
        self.today = self.ut.today

        #有效时间
        self.order_failure_time = int(get_sysparam().order_failure_time)

        #二维码类型
        self.type = type
コード例 #5
0
 def get_today_bal(self, obj):
     tot = 0
     ut = UtilTime()
     today = ut.arrow_to_string(ut.today, format_v="YYYY-MM-DD")
     today_start = ut.string_to_timestamp(today + ' 00:00:01')
     today_end = ut.string_to_timestamp(today + ' 23:59:59')
     for item in Order.objects.filter(createtime__lte=today_end,
                                      createtime__gte=today_start,
                                      status="0"):
         tot = float(tot) + float(item.myfee)
     return round(tot, 2)
コード例 #6
0
 def get_today(self, obj):
     tot = 0
     ut = UtilTime()
     today = ut.arrow_to_string(ut.today, format_v="YYYY-MM-DD")
     today_start = ut.string_to_timestamp(today + ' 00:00:01')
     today_end = ut.string_to_timestamp(today + ' 23:59:59')
     for item in PayCallList.objects.filter(name=obj.name,
                                            createtime__lte=today_end,
                                            createtime__gte=today_start,
                                            status="0"):
         tot = float(tot) + float(item.amount)
     return tot
コード例 #7
0
    def __init__(self,amount):
        self.ut = UtilTime()

        self.amount = amount

        #当前时间
        self.today = self.ut.today

        #有效时间 300秒
        self.order_failure_time = 300

        #订单失效时间 4填
        self.order_max_failure_time = 3 * 24 * 60 * 60
コード例 #8
0
ファイル: cron.py プロジェクト: rentPayServer/orderServer
def order_count():
    """
    订单统计
    :return:
    """
    ut = UtilTime()

    lastday = ut.today.replace(days=-1)
    startdate = ut.string_to_timestamp(ut.arrow_to_string(lastday,format_v="YYYY-MM-DD")+' 00:00:00')
    enddate = ut.string_to_timestamp(ut.arrow_to_string(lastday,format_v="YYYY-MM-DD")+' 23:59:59')

    with transaction.atomic():
        print("订单统计,日期:{}...".format(ut.arrow_to_string(lastday,format_v="YYYY-MM-DD")))
        for user in Users.objects.filter(rolecode='2001',status='0',createtime__lt=enddate):
            orders = Order.objects.filter(userid=user.userid,createtime__gte=startdate,createtime__lte=enddate)

            ordercount_insert=dict()
            ordercount_insert["tot_order_count"] = orders.count()
            ordercount_insert["today_success_order_count"] = 0
            ordercount_insert["today_amount"] = 0.0
            ordercount_insert["userid"] = user.userid

            for order in orders:
                if order.status=='0':
                    ordercount_insert["today_success_order_count"] += 1
                    ordercount_insert["today_amount"] += float(order.amount)

            ordercount_insert["today_rate"] = ordercount_insert["today_success_order_count"] * 1.0 / ordercount_insert["tot_order_count"] \
                if ordercount_insert["tot_order_count"] else 0.0
            ordercount_insert["today"] = ut.arrow_to_string(lastday,format_v="YYYY-MM-DD")
            OrderCount.objects.create(**ordercount_insert)
コード例 #9
0
ファイル: cron.py プロジェクト: rentPayServer/orderServer
def filterOrder():

    print("开始执行保留1个月订单操作!")
    with transaction.atomic():
        obj = Order.objects.filter(createtime__lt = UtilTime().today.replace(days=-15).timestamp)
        if obj.exists():
            for item in obj:
                item.delete()

        obj = BalList.objects.filter(createtime__lt = UtilTime().today.replace(days=-15).timestamp)
        if obj.exists():
            for item in obj:
                item.delete()
    print("执行结束")
コード例 #10
0
    def run(self):
        print("红包回调处理开启!")
        while True:
            redisRes = self.redis_client.brpop(self.lKey)[1]
            if not redisRes:
                continue

            self.ordercode = redisRes.decode('utf-8').split("|")[0]
            self.other_ordercode = redisRes.decode('utf-8').split("|")[1]
            self.session = redisRes.decode('utf-8').split("|")[2]
            self.endtime = redisRes.decode('utf-8').split("|")[3]

            if UtilTime().timestamp >= int(self.endtime):
                continue
            try:
                ut = UtilTime()
                start_time = ut.arrow_to_string(format_v="YYYY-MM-DD")
                end_time = ut.arrow_to_string(ut.today.shift(days=-3),format_v="YYYY-MM-DD")
                flag,s= WeiboCallBack(sessionRes=json.loads(self.session),cookieKey='pccookie',isSession=True)\
                    .queryOrderForWeibo(ordercode=self.ordercode,start_time=start_time,end_time=end_time)

                if not flag:
                    self.redisdataCall("查询失败!{}".format(s))
                    continue
                else:
                    if not len(s):
                        self.redisdataCall("查询无数据!{}".format(s))
                        continue
                    else:
                        if s[0]['status'] == '2':
                            pass
                        elif s[0]['status'] == '4':
                            self.redisdataCall("交易关闭!{}".format(s))
                            continue
                        elif s[0]['status'] == '1':
                            self.redisdataCall()
                            continue
                        else:
                            self.redisdataCall("未知状态!{}".format(s))
                            continue

                request_data = {"orderid": self.ordercode}
                result = request('POST', url=urllib.parse.unquote(
                    '{}/callback_api/lastpass/jingdong_callback'.format(url_join())), data=request_data,json=request_data, verify=False)
                if result.text != 'success':
                    logger.info("请求对方服务器错误! {}".format(self.ordercode))
            except Exception as e:
                self.redisdataCall(str(e))
                continue
コード例 #11
0
ファイル: api.py プロジェクト: JackChen2020/orderservernew
    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
コード例 #12
0
ファイル: account.py プロジェクト: tlshop/callback_server
    def __init__(self, **kwargs):
        # 是否充值
        self.isPay = kwargs.get('isPay', False)

        # 是否提现
        self.isCashout = kwargs.get('isCashout', False)

        # 是否提现拒绝
        self.isCashoutCanle = kwargs.get('isCashoutCanle', False)

        # 是否提现确认
        self.isCashoutConfirm = kwargs.get('isCashoutConfirm', False)

        # 是否冻结
        self.isStop = kwargs.get('isStop', False)

        # 是否解冻
        self.isStopCanle = kwargs.get('isStopCanle', False)

        userid = kwargs.get('userid', None)
        if not userid:
            raise PubErrorCustom("用户代码不能为空!")

        self.amount = kwargs.get('amount', None)
        if not self.amount:
            raise PubErrorCustom("交易金额不能为空!")
        else:
            self.amount = float(self.amount)

        self.ordercode = kwargs.get('ordercode', 0)

        try:
            self.user = Users.objects.select_for_update().get(userid=userid)
        except Users.DoesNotExist:
            raise PubErrorCustom("无对应用户信息({})".format(userid))

        logger.info(
            """动账前: userid:{} upd_bal_date:{} amount:{} ordercode:{} bal:{} cashout_bal:{} stop_bal:{} lastday_bal:{} today_bal:{} lastday_pay_amount:{} 
                        today_pay_amount:{} tot_pay_amount:{} lastday_cashout_amount:{} today_cashout_amount:{} tot_cashout_amount:{}"""
            .format(
                self.user.userid,
                self.user.upd_bal_date,
                self.amount,
                self.ordercode,
                self.user.bal,
                self.user.cashout_bal,
                self.user.stop_bal,
                self.user.lastday_bal,
                self.user.today_bal,
                self.user.lastday_pay_amount,
                self.user.today_pay_amount,
                self.user.tot_pay_amount,
                self.user.lastday_cashout_amount,
                self.user.today_cashout_amount,
                self.user.tot_cashout_amount,
            ))

        self.today = UtilTime().arrow_to_string(format_v="YYYYMMDD")

        self.RunUpdDate()
コード例 #13
0
ファイル: api.py プロジェクト: JackChen2020/orderservernew
    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
コード例 #14
0
    def __init__(self, **kwargs):

        self.amount = kwargs.get('amount', None)
        if not self.amount:
            raise PubErrorCustom("交易金额不能为空!")
        else:
            self.amount = float(self.amount)

        self.ordercode = kwargs.get('ordercode', 0)
        self.memo = kwargs.get("memo", "")

        userid = kwargs.get('userid', None)
        user = kwargs.get('user', None)
        if not (userid or user):
            raise PubErrorCustom("用户代码不能为空!")

        if not user:
            try:
                self.user = Users.objects.select_for_update().get(
                    userid=userid)
            except Users.DoesNotExist:
                raise PubErrorCustom("无对应用户信息({})".format(userid))
        else:
            self.user = user

        paypassid = kwargs.get("paypassid", None)
        userbal = kwargs.get('userbal', None)
        if not (paypassid or userbal):
            raise PubErrorCustom("渠道ID不能为空!")

        if not userbal:
            try:
                self.userBal = UserBal.objects.select_for_update().get(
                    userid=userid, paypassid=paypassid)
            except UserBal.DoesNotExist:
                self.userBal = UserBal.objects.create(**{
                    "userid": userid,
                    "paypassid": paypassid,
                })
        else:
            self.userBal = userbal

        logger.info(
            """动账前: userid:{} amount:{} ordercode:{} totbal:{} bal:{} cashout_bal:{} stop_bal:{}"""
            .format(
                self.user.userid,
                self.user.upd_bal_date,
                self.amount,
                self.ordercode,
                self.user.bal,
                self.userBal.bal,
                self.userBal.cashout_bal,
            ))

        self.today = UtilTime().arrow_to_string(format_v="YYYYMMDD")

        self.RunUpdDate()
コード例 #15
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)
コード例 #16
0
ファイル: test2.py プロジェクト: JackChen2020/orderservernew
    def BalQuery(self):

        self.data.setdefault("nonceStr", str(UtilTime().timestamp))

        md5params = "{}{}{}{}".format(self.secret,
                                      str(self.data.get("businessid")),
                                      self.data.get("nonceStr"), self.secret)
        md5params = md5params.encode("utf-8")
        self.data.setdefault("sign", hashlib.md5(md5params).hexdigest())
        return self._request("http://allwin6666.com/api_new/business/BalQuery")
コード例 #17
0
ファイル: df_api.py プロジェクト: JackChen2020/orderservernew
    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
コード例 #18
0
ファイル: test2.py プロジェクト: JackChen2020/orderservernew
    def df(self):

        self.data.setdefault("nonceStr", str(UtilTime().timestamp))
        self.data.setdefault('down_ordercode', str(UtilTime().timestamp))
        self.data.setdefault('amount', 1.0)
        # self.data.setdefault('accountNo','6226621704181682')
        self.data.setdefault('memo', 'test')
        self.data.setdefault('accountNo', '111')
        self.data.setdefault('bankName', '中国光大银行'.encode('utf-8').hex())
        self.data.setdefault('accountName', '陈丽红'.encode('utf-8').hex())

        md5params = "{}{}{}{}{}{}{}{}{}{}".format(
            self.secret, str(self.data.get("down_ordercode")),
            str(self.data.get("businessid")), self.secret,
            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.secret)
        md5params = md5params.encode("utf-8")
        self.data.setdefault("sign", hashlib.md5(md5params).hexdigest())
        return self._request("http://allwin6666.com/api_new/business/df")
コード例 #19
0
    def pass_count(self,request):

        query_format = str()
        query_params = list()

        ut = UtilTime()
        if request.query_params_format.get("today"):
            today = request.query_params_format.get("today")
            startdate = ut.string_to_timestamp(today+' 00:00:01',format_v="YYYY-MM-DD")
            enddate =  ut.string_to_timestamp(today+' 23:59:59',format_v="YYYY-MM-DD")
        else:
            today = ut.arrow_to_string(format_v="YYYY-MM-DD")
            startdate = ut.string_to_timestamp(today+' 00:00:01')
            enddate = ut.string_to_timestamp(today+' 23:59:59')


        query_format = query_format + " and t1.createtime>=%s and t1.createtime<=%s"
        query_params.append(startdate)
        query_params.append(enddate)

        if request.query_params_format.get("paypassid"):
            query_format = query_format + " and t2.paypassid =%s"
            query_params.append(request.query_params_format.get("paypassid"))

        orders = Order.objects.raw("""
                SELECT t1.* FROM `order` as t1
                INNER JOIN `paypass` as t2 ON t1.paypass = t2.paypassid and t2.status='0'
                WHERE 1=1 %s
        """% (query_format), query_params)


        pass_order_dict={}
        for order in orders :
            if order.paypass not in pass_order_dict:
                pass_order_dict[order.paypass]={
                    "id": order.paypass,
                    "name" : order.paypassname,
                    "amount" : 0.0,
                    "order_count":0,
                    "order_success_count":0,
                    "rate" : 0.0,
                    "today" : today[:10]
                }

            pass_order_dict[order.paypass]['order_count'] += 1
            if order.status == '0':
                pass_order_dict[order.paypass]['amount'] += float(order.amount)
                pass_order_dict[order.paypass]['order_success_count'] += 1

        data = []
        for key in pass_order_dict:
            pass_order_dict[key]['rate'] = "{}%".format(round(pass_order_dict[key]['order_success_count'] * 100.0 / pass_order_dict[key]['order_count'] \
                                                                  if pass_order_dict[key]['order_count']  else 0.0 ,2))
            data.append(pass_order_dict[key])

        return {"data": data}
コード例 #20
0
ファイル: test2.py プロジェクト: JackChen2020/orderservernew
    def dfQuery(self):

        self.data.setdefault("nonceStr", str(UtilTime().timestamp))
        self.data.setdefault('down_ordercode', '20537015002737810915')

        md5params = "{}{}{}{}{}".format(self.secret,
                                        str(self.data.get("down_ordercode")),
                                        str(self.data.get("businessid")),
                                        self.data.get("nonceStr"), self.secret)
        md5params = md5params.encode("utf-8")
        self.data.setdefault("sign", hashlib.md5(md5params).hexdigest())
        return self._request("http://allwin6666.com/api_new/business/dfQuery")
コード例 #21
0
 def payafter(self,order,session):
     from apps.weibohongbao.weiboCallback import callback
     """
     微博订单回调通知
     :param ordercode:系统订单号
     :return:
     """
     weiboHandler = callback()
     weiboHandler.redis_client.lpush(weiboHandler.lKey, "{}|allwin|{}|allwin|{}|allwin|{}".format(
         order.ordercode,
         order.jd_payordercode,
         session,
         UtilTime().today.replace(minutes=120).timestamp))
コード例 #22
0
    def run(self):

        self.data.setdefault('client_id', self.businessId)
        self.data.setdefault('timestamp', UtilTime().timestamp * 1000)
        self._sign()

        try:
            self._request()
            return (
                False,
                self.response['msg']) if self.response['code'] != 200 else (
                    True, self.response['data'])
        except Exception as e:
            return (False, str(e))
コード例 #23
0
    def __init__(self,isQueryTask=True):

        self.ut = UtilTime()

        self.wbOUser = None
        self.wbOTask = None

        if isQueryTask:
            wbOTasks = WeiboTask.objects.filter(umark='0',status='1',date=self.ut.arrow_to_string(format_v="YYYY-MM-DD")).order_by('sort')
            if not wbOTasks.exists():
                logger.error("无任务可执行!")
                return

            self.wbOTask = wbOTasks[0]

            try:
                self.wbOUser = WeiboUser.objects.get(uid=self.wbOTask.uid,status='0')
            except WeiboUser.DoesNotExist:
                logger.error("无可用组长!")
                return

            self.robnumber = self.wbOTask.robnumber
            self.minamount = self.wbOTask.minamount
            self.maxamount = self.wbOTask.maxamount
コード例 #24
0
class jdHandler(object):
    def __init__(self, data):
        self.data = data
        self.ut = UtilTime()

    def OrderQuery(self):

        if not self.data.get('day'):
            raise PubErrorCustom("查询日期不能为空")
        if len(self.data.get('day')) != 10:
            raise PubErrorCustom("日期格式不正确")

        start_day = self.data.get('day') + ' 00:00:01'
        end_day = self.data.get('day') + ' 23:59:59'

        start_day = self.ut.string_to_timestamp(string_s=start_day)
        end_day = self.ut.string_to_timestamp(string_s=end_day)

        return {
            "data":
            OrderModelSerializerToJd(Order.objects.filter(
                isjd='0', createtime__lte=end_day, createtime__gte=start_day),
                                     many=True).data
        }
コード例 #25
0
ファイル: account.py プロジェクト: tlshop/client_server
    def __init__(self, **kwargs):

        self.amount = kwargs.get('amount', None)
        if not self.amount:
            raise PubErrorCustom("交易金额不能为空!")
        else:
            self.amount = float(self.amount)

        self.ordercode = kwargs.get('ordercode', 0)

        userid = kwargs.get('userid', None)
        user = kwargs.get('user', None)
        if not (userid or user):
            raise PubErrorCustom("用户代码不能为空!")

        if not user:
            try:
                self.user = Users.objects.select_for_update().get(
                    userid=userid)
            except Users.DoesNotExist:
                raise PubErrorCustom("无对应用户信息({})".format(userid))
        else:
            self.user = user

        logger.info(
            """动账前: userid:{} upd_bal_date:{} amount:{} ordercode:{} bal:{} cashout_bal:{} stop_bal:{} lastday_bal:{} today_bal:{} lastday_pay_amount:{} 
                        today_pay_amount:{} tot_pay_amount:{} lastday_cashout_amount:{} today_cashout_amount:{} tot_cashout_amount:{}"""
            .format(
                self.user.userid,
                self.user.upd_bal_date,
                self.amount,
                self.ordercode,
                self.user.bal,
                self.user.cashout_bal,
                self.user.stop_bal,
                self.user.lastday_bal,
                self.user.today_bal,
                self.user.lastday_pay_amount,
                self.user.today_pay_amount,
                self.user.tot_pay_amount,
                self.user.lastday_cashout_amount,
                self.user.today_cashout_amount,
                self.user.tot_cashout_amount,
            ))

        self.today = UtilTime().arrow_to_string(format_v="YYYYMMDD")

        self.RunUpdDate()
コード例 #26
0
 def run(self):
     self.data.setdefault('businessId', int(self.businessId))
     self.data.setdefault('signType', 'MD5')
     self.data.setdefault('payTitle', '商品1')
     self.data.setdefault('random', UtilTime().timestamp)
     self.data.setdefault('payMethod', 0)
     self.data.setdefault('dataType', 0)
     # self.data.setdefault('returnUrl',url_join("/pay/#/juli"))
     self._sign()
     try:
         self._request()
         return (False, self.response['errorDesc']
                 ) if not self.response['successed'] else (
                     True, self.response['returnValue'])
     except Exception as e:
         return (False, str(e))
コード例 #27
0
    def phonelogin(self,username,vercode):
        """
        :param username: 登录手机号
        :param vercode: 验证码
        :return:
        """
        try:
            wbUserObj = WeiboUser.objects.get(username=username)
        except WeiboUser.DoesNotExist:
            raise PubErrorCustom("账号不存在!")

        wbLoginClass = WeiBoLoginForPhone()
        wbUserObj.session = wbLoginClass.login_by_vercode(username,vercode)
        wbUserObj.uid = wbUserObj.session['uid']
        wbUserObj.session = json.dumps(wbUserObj.session)
        wbUserObj.logintime = UtilTime().timestamp
        wbUserObj.session_status = '0'
        wbUserObj.save()
コード例 #28
0
ファイル: df_api.py プロジェクト: JackChen2020/orderservernew
    def get_ok_bal(self):

        if self.paypasslinktype.passid in ['51', '54']:
            weeknum = UtilTime().get_week_day()

            if weeknum in [6, 7]:
                ok_bal = float(self.user.today_pay_amount) * self.t0Tx - (
                    float(self.user.today_cashout_amount) +
                    float(self.user.today_fee_amount))
            else:
                ok_bal = float(self.user.lastday_bal) + (
                    float(self.user.today_pay_amount) * self.t0Tx -
                    (float(self.user.today_cashout_amount) +
                     float(self.user.today_fee_amount)))

            print("用户ID{} 周几{} 昨日余额{} 当填充值金额{} 当天提现金额{} 当天手续费{}".format(
                self.user.userid, weeknum, self.user.lastday_bal,
                self.user.today_pay_amount, self.user.today_cashout_amount,
                self.user.today_fee_amount))
        else:
            ok_bal = self.user.bal

        return ok_bal
コード例 #29
0
ファイル: test2.py プロジェクト: JackChen2020/orderservernew
 def get_token(self):
     t = UtilTime().timestamp
     data = dict(merchantNo=self.businessId,
                 key=self.secret,
                 nonce=str(t),
                 timestamp=t)
     s = "merchantNo={}&nonce={}&timestamp={}&key={}".format(
         data['merchantNo'],
         data['nonce'],
         str(data['timestamp']),
         data['key'],
     )
     print(s)
     data['sign'] = md5pass(s).upper()
     print(data)
     result = request(
         method='POST',
         url="http://api.jinxiangweb.cn:8888/api/v1/getAccessToken/merchant",
         data=data,
         verify=False)
     print(result.text)
     response = json.loads(result.content.decode('utf-8'))
     if response['success']:
         self.token = response['value']['accessToken']
コード例 #30
0
    def callback_request_to_server(self):
        """
        进行回调操作
        :return:
        """

        try:
            user = Users.objects.get(userid=self.order_obj.userid)
        except Users.DoesNotExist:
            logger.error("订单用户不存在! 用户:{}".format(self.order_obj.userid))
            raise PubErrorCustom("订单用户不存在!")

        if self.order_obj.lock == '0':

            data_request = {
                "rescode": "10000",
                "msg": "回调成功!",
                "data": {
                    "ordercode": self.order_obj.ordercode,
                    "status": '0',
                    "confirm_amount": float(self.amount),
                    "pay_time": time.mktime(timezone.now().timetuple()),
                    "keep_info": demjson.decode(self.order_obj.keep_info)
                },
                "ordercode":str(self.order_obj.down_ordercode)
            }

            headers={
                "token" : str(self.order_obj.userid),
                "ordercode": str(self.order_obj.down_ordercode)
            }

            #天宝报文不加密
            if user.userid != 4:
                data_request['data'] = encrypt(json.dumps(data_request['data'], cls=DjangoJSONEncoder),
                                               user.google_token).decode('utf-8')

            result = send_request(url=urllib.parse.unquote(self.order_obj.notifyurl), method='POST', data=data_request,headers=headers)
            if not result[0]:
                logger.error("请求对方服务器错误{}".format(str(result)))
                self.order_obj.down_status = '2'
            else:
                self.order_obj.down_status = '0'
        else:

            request_data = {
                "businessid" : str(user.userid),
                "ordercode" : str(self.order_obj.ordercode),
                "down_ordercode" : str(self.order_obj.down_ordercode),
                # "amount1": str(self.order_obj.amount),
                "amount" : str(self.amount),
                "pay_time" : str(UtilTime().timestamp),
                "status" : "00"
            }
            md5params = "{}{}{}{}{}{}{}".format(
                user.google_token,
                request_data['businessid'],
                request_data['ordercode'],
                request_data['down_ordercode'],
                request_data['amount'],
                request_data['pay_time'],
                user.google_token)
            md5params = md5params.encode("utf-8")
            request_data['sign'] = hashlib.md5(md5params).hexdigest()

            logger.info("验签回调参数:{}{}".format(self.order_obj.notifyurl,request_data))

            try:
                result = request('POST', url=urllib.parse.unquote(self.order_obj.notifyurl), data=request_data , json=request_data, verify=False)
                logger.info("返回值:{}".format(result.text))
                if result.text.strip() != 'SUCCESS':
                    logger.error("请求对方服务器错误{}".format(str(result.text)))
                    self.order_obj.down_status = '2'
                else:
                    self.order_obj.down_status = '0'

            except Exception as e:
                logger.info("下游错误:{}".format(str(e)))
                self.order_obj.down_status = '2'