zh_create_link.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. const helper = require('../src/helper');
  2. const config = require('../etc/config.json');
  3. const redis_help = require('../src/use_redis');
  4. const tools = require('../tools');
  5. const axios = require('axios');
  6. const CMD = {}
  7. CMD.runTask = async function(t_data,main_info,PlatformInfo,call_back){
  8. try{
  9. let promotion_info = await CMD.makeRequest(t_data,main_info,PlatformInfo)
  10. if(promotion_info==null){
  11. throw "创建失败!"
  12. }
  13. let t_params = promotion_info.ad_link.split('?')
  14. let start_page = t_params[0]
  15. let start_param = t_params[1]
  16. t_data.promotion_id = promotion_info.ad_link_id
  17. t_data.start_page = start_page
  18. t_data.start_param = start_param
  19. console.log('t_data:',t_data)
  20. call_back(t_data,null)
  21. }catch(error){
  22. call_back(t_data,error)
  23. return null;
  24. }
  25. }
  26. CMD.makeRequest = async function(t_data,main_info,PlatformInfo) {
  27. let hasSuccess = false; // 标记是否已经成功获取数据
  28. try {
  29. let tg_link_config = JSON.parse(main_info.tg_link_config)
  30. let chongzhi_id = tg_link_config['chongzhi_id']
  31. let huichuan_id = tg_link_config['huichuan_id']
  32. let chongzhi_list = JSON.parse(PlatformInfo.chongzhi)
  33. let huichuan_list = JSON.parse(PlatformInfo.huichuan)
  34. let payment_template_id = ""
  35. let callback_rule_id = ""
  36. // let section_id = main_info.zh_id
  37. // console.log("section_id:",section_id)
  38. for (let index = 0; index < chongzhi_list.length; index++) {
  39. const cz_obj = chongzhi_list[index];
  40. if(cz_obj.id==chongzhi_id){
  41. payment_template_id = cz_obj.value
  42. break
  43. }
  44. }
  45. for (let index = 0; index < huichuan_list.length; index++) {
  46. const hc_obj = huichuan_list[index];
  47. if(hc_obj.id==huichuan_id){
  48. callback_rule_id = hc_obj.value
  49. break
  50. }
  51. }
  52. let app_type = 4
  53. if(PlatformInfo.mini_program_platform_id==config.wx){
  54. app_type = 6
  55. }else if(PlatformInfo.mini_program_platform_id==config.dy){
  56. app_type = 4
  57. }
  58. const response = await axios({
  59. method: 'POST',
  60. url: 'https://ecom.zhihu.com/api/km-agent/ad-link',
  61. headers: {
  62. 'accept': 'application/json, text/plain, */*',
  63. 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
  64. 'content-type': 'application/json;charset=UTF-8',
  65. 'priority': 'u=1, i',
  66. 'sec-ch-ua': '"Chromium";v="134", "Not:A-Brand";v="24", "Microsoft Edge";v="134"',
  67. 'sec-ch-ua-mobile': '?0',
  68. 'sec-ch-ua-platform': '"Windows"',
  69. 'sec-fetch-dest': 'empty',
  70. 'sec-fetch-mode': 'cors',
  71. 'sec-fetch-site': 'same-origin',
  72. 'x-requested-with': 'XMLHttpRequest',
  73. 'cookie': '_xsrf=7bCsoKjmfrIE0D36ajUc9s6CM9OxdPHQ; _zap=aa0b20fb-9951-4f27-9f66-dafff809f1a9; d_c0=ADASSwlwjxmPTrW0768vZ0BKygxzh_LFDDI=|1731902666; captcha_session_v2=2|1:0|10:1741447186|18:captcha_session_v2|88:bjAvUkJMR1pmaENoaU9lNmNQUHI4VUVOcmNlV29DOUdhc2paN3k4NXgzR1dDbTZZS2hlSE9oT0NHbE9Wd1RHbg==|2c30267bc15ea23a591951d569b02a5866c6fe4153bfe9844e03238e35bb08f1; captcha_ticket_v2=2|1:0|10:1741447199|17:captcha_ticket_v2|728:eyJ2YWxpZGF0ZSI6IkNOMzFfdHgzRlhadC5pRzFLUjhCdTRILlVieUtfKmE4THJTZExjRG5zR0RQQ3piczJOZm1UeFhOWlVlWmVZRSpweGZ0ckhhSGdJUkF2ZVBWVDNVVXdlNk5VdGdaRWswLmlOVHRfZXlMX1BJYjl5YmQ0aVNUU3gxY09lT0FIbXZrRU5jd3RVc1MyWHpiQXo1dGRGX1NUa21Tc0tHYjEuaFFmRHBkMFJtdUNRKjJxMzUucVNZMkRQdktoM2N0c3hlR0syVW1FZ1ltUEVQWF9XR2JxSE5LekRHa2NxdzRua1lkVURPSVBod1g0TktuZFBOcV9mZkVydGxQMUIyYlkyLk5PT1oxRjN3LlhhTTlUUWx3T1QzQ3A4WkswcypsdDljXzNPOVh0S2o0QnFTNkhtM2ZMMjY1MTF6ZUVfeEw4Sm1YX2Y4ZEprQ29vUjVqdnpWZ0xfVjNaSVJQYWJCYnRJU2FhcFBVKlVJZWFPS3FGaVJMKjJBdipXb1dGd3BQUkZWSnNreTZWU0Z2QWttUzAqSGNobFJMVTlIaml2Um9ZZDUweklHclppclM1bGxDYV9lTWpCa2RCUk50TFNlbzEyeU81OXRMY2lYYUhKOHlVUFRuM09Mem1LRjl4RS4yY1RUd1Y5eFp2OVllKnZFMFdEVGNLeEZIRzAya1J5TnRrTUptMExYQ1N3WkduNGc3N192X2lfMSJ9|d385252c1df14a29550fa1bd5e7c0ea7188926820724b891b1e45b4a7957e487; ecom_merchant=1857114769787609088; __zse_ck=004_sIi5cAl5BMYEcRjXCzN9Ss/sPdTgyWyqqlROJEfAC536m/14KU5f3bsu9YkOtEpb3SB7LJcTJmDSF8VOPwDBT7qZQ1X2bc6ZpoxxcZPN4dSC/cCKSAsWTyUcPEiGer9H-GPnGh0a+WoC5zsijY40YdUadlvVR/3+w/qxaA/4xpDkxT3/6olByfH30JO+JQrRdZpbKLEfYzUNaHK7p4+Hk5FsyZtHEgz5/T2iZiDiR3W7ciBwMe0Xo9otuzN31fIED3FRq52IXIf8RBHjNa8bqSsG+C2fN2dlxWq6C9Nzt5SA=; Hm_lvt_98beee57fd2ef70ccdd5ca52b9740c49=1739763111,1741447186,1741685631; z_c0=2|1:0|10:1741685631|4:z_c0|92:Mi4xN1lrbldnQUFBQUFBTUJKTENYQ1BHU1lBQUFCZ0FsVk5JSzY1YUFDY1RrZmZuVXJRTXVQYWplQ1ZiRkVTNUZXUXp3|687b16cb02ca463cfff332a2e451e60a2feceada4a94f4afdbb01fdabda2f0f1; BEC=4589376d83fd47c9203681b16177ae43',
  74. 'Referer': `https://ecom.zhihu.com/vip-apps/out-distribution/contentLib/detail?&sectionId=${t_data.promotion_id}&workId=${t_data.promotion_id}&appId=${main_info.app_id}&media_channel_type=5`,
  75. 'Referrer-Policy': 'no-referrer-when-downgrade'
  76. },
  77. data: {
  78. multi_sections: "0",
  79. ad_link_name: `${t_data.product_name}_${main_info.id}`,
  80. media_channel_id: 5,
  81. app_type: app_type,
  82. app_id: main_info.app_id,
  83. callback_type: 0,
  84. payment_template_id: `${payment_template_id}`,
  85. num: 1,
  86. callback_rule_id: `${callback_rule_id}`,
  87. section_id: t_data.product_id
  88. }
  89. // data: {
  90. // multi_sections: "0",
  91. // ad_link_name: "断子绝孙是渣男应得的_81_fuck",
  92. // media_channel_id: 5,
  93. // app_type: 4,
  94. // app_id: "ttbe09c8b4213ae0bf01",
  95. // callback_type: 0,
  96. // payment_template_id: "1610",
  97. // num: 1,
  98. // callback_rule_id: "1857508752934199296",
  99. // section_id: "1885351423992124349"
  100. // }
  101. });
  102. if(response.data){
  103. hasSuccess = true;
  104. }
  105. console.log('响应状态:', response.status);
  106. console.log('响应数据:', response.data);
  107. return response.data.data
  108. } catch (error) {
  109. if(hasSuccess){
  110. }else{
  111. console.error('请求错误:', error.message);
  112. if (error.response) {
  113. console.error('错误状态码:', error.response.status);
  114. console.error('错误数据:', error.response.data);
  115. }
  116. return null
  117. }
  118. }
  119. }
  120. module.exports = CMD;