yuewen.py 2.9 KB

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