yuewen.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. import time
  2. from model.DateUtils import DateUtils
  3. from model.ComUtils import md5
  4. import requests
  5. from model.ComUtils import split_int
  6. from app.api_data.platform_order.order_util import save_order
  7. ut = DateUtils()
  8. def get_yuewen_order_task(st, et, account):
  9. """相同参数一分钟只能调用一次"""
  10. email = account[0]
  11. appsecert = account[1]
  12. url = 'https://open.yuewen.com/cpapi/wxRecharge/querychargelog'
  13. start_time = DateUtils.str_to_stamp(st)
  14. # 结束时间不能超过当前的时间戳
  15. if et == ut.getNow():
  16. end_time = DateUtils.str_to_stamp(ut.get_n_minutes_ago(), "%Y-%m-%d %H:%M:%S")
  17. else:
  18. end_time = DateUtils.str_to_stamp(et) + 86399
  19. for i in split_int(start_time,end_time,10000):
  20. start = i[0]
  21. end = i[1]
  22. print(ut.stamp_to_str(end))
  23. page = 1
  24. last_min_id = ''
  25. last_max_id = ''
  26. total_count = ''
  27. last_page = ''
  28. li = []
  29. while True:
  30. params = {
  31. 'email': email,
  32. 'timestamp': int(time.time()),
  33. 'start_time': start,
  34. 'end_time': end,
  35. 'page': page,
  36. 'version':1
  37. }
  38. if page > 1:
  39. params['last_min_id'] = last_min_id
  40. params['last_max_id'] = last_max_id
  41. params['total_count'] = total_count
  42. params['last_page'] = last_page
  43. sorted_data = sorted(params.items())
  44. str_params = ''
  45. for k, v in sorted_data:
  46. str_params = str_params + str(k) + str(v)
  47. sign = md5(appsecert + str_params).upper()
  48. # 放入签名
  49. params['sign'] = sign
  50. # print(params)
  51. response_result_json = requests.get(url=url, params=params).json()
  52. # print(response_result_json)
  53. # print(len(response_result_json["data"]["list"]))
  54. if not response_result_json.get('data'):
  55. print(response_result_json)
  56. raise
  57. response_data = response_result_json['data']
  58. total_count = response_data['total_count']
  59. last_min_id = response_data['min_id']
  60. last_max_id = response_data['max_id']
  61. last_page = response_data['page']
  62. order_item_list = response_data['list']
  63. if len(order_item_list) == 0:
  64. break
  65. for i in order_item_list:
  66. order_time = i["order_time"]
  67. li.append((order_time[:10],
  68. '',
  69. '阅文',
  70. i['app_name'],
  71. i['channel_id'],
  72. i['openid'],
  73. i['order_time'],
  74. i['reg_time'],
  75. i['amount'],
  76. i['book_name'],
  77. i['order_id'],
  78. i['order_status']
  79. ))
  80. if len(order_item_list) < 100:
  81. break
  82. else:
  83. page += 1
  84. if len(li) > 0:
  85. print(f"{email} 有订单{len(li)}")
  86. save_order(li)
  87. if __name__ == '__main__':
  88. a = "guangzhouliuqi2@sina.com,10ce1dd6ccb330a82b73701d1e78f518"
  89. b = "mqud82950@163.com,74ca754515fa253c8ab790603cebc2ee"
  90. get_yuewen_order_task('2021-05-28', '2021-05-28', a.split(','))