123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- import time
- from model.DateUtils import DateUtils
- from model.ComUtils import md5
- import requests
- from model.ComUtils import split_int
- from app.api_data.platform_order.order_util import save_order
- from model.DingTalkUtils import DingTalkUtils
- ut = DateUtils()
- def get_yuewen_order_task(st, et, account):
- """相同参数一分钟只能调用一次"""
- email = account[0]
- appsecert = account[1]
- url = 'https://open.yuewen.com/cpapi/wxRecharge/querychargelog'
- start_time = DateUtils.str_to_stamp(st)
- # 结束时间不能超过当前的时间戳
- if et == ut.getNow():
- end_time = DateUtils.str_to_stamp(ut.get_n_minutes_ago(), "%Y-%m-%d %H:%M:%S")
- else:
- end_time = DateUtils.str_to_stamp(et) + 86399
- for i in split_int(start_time,end_time,10000):
- start = i[0]
- end = i[1]
- print(ut.stamp_to_str(end))
- page = 1
- last_min_id = ''
- last_max_id = ''
- total_count = ''
- last_page = ''
- li = []
- while True:
- params = {
- 'email': email,
- 'timestamp': int(time.time()),
- 'start_time': start,
- 'end_time': end,
- 'page': page,
- 'version':1
- }
- if page > 1:
- params['last_min_id'] = last_min_id
- params['last_max_id'] = last_max_id
- params['total_count'] = total_count
- params['last_page'] = last_page
- sorted_data = sorted(params.items())
- str_params = ''
- for k, v in sorted_data:
- str_params = str_params + str(k) + str(v)
- sign = md5(appsecert + str_params).upper()
- # 放入签名
- params['sign'] = sign
- # print(params)
- response_result_json = requests.get(url=url, params=params).json()
- # print(response_result_json)
- # print(len(response_result_json["data"]["list"]))
- if not response_result_json.get('data'):
- print(response_result_json)
- DingTalkUtils.send('阅文订单拉取失败')
- response_data = response_result_json['data']
- total_count = response_data['total_count']
- last_min_id = response_data['min_id']
- last_max_id = response_data['max_id']
- last_page = response_data['page']
- order_item_list = response_data['list']
- if len(order_item_list) == 0:
- break
- for i in order_item_list:
- order_time = i["order_time"]
- li.append((order_time[:10],
- '',
- '阅文',
- i['app_name'],
- i['channel_id'],
- i['openid'],
- i['order_time'],
- i['reg_time'],
- i['amount'],
- i['book_name'],
- i['order_id'],
- i['order_status']
- ))
- if len(order_item_list) < 100:
- break
- else:
- page += 1
- if len(li) > 0:
- print(f"{email} 有订单{len(li)}")
- save_order(li)
- if __name__ == '__main__':
- a = "guangzhouliuqi2@sina.com,10ce1dd6ccb330a82b73701d1e78f518"
- b = "mqud82950@163.com,74ca754515fa253c8ab790603cebc2ee"
- get_yuewen_order_task('2021-05-28', '2021-05-28', a.split(','))
|