zh_create_link.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. const fetch = require('node-fetch'); // Node.js 18以下版本需要安装 node-fetch
  2. const helper = require('../src/helper');
  3. const config = require('../etc/config.json');
  4. const redis_help = require('../src/use_redis');
  5. const CMD = {}
  6. CMD.runTask = async function(t_data,main_info,PlatformInfo,call_back){
  7. try{
  8. let timestamp = helper.getCurrentUnixTimestamp()
  9. let tg_link_config = JSON.parse(main_info.tg_link_config)
  10. let chongzhi_id = tg_link_config['chongzhi_id']
  11. let huichuan_id = tg_link_config['huichuan_id']
  12. let chongzhi_list = JSON.parse(PlatformInfo.chongzhi)
  13. let huichuan_list = JSON.parse(PlatformInfo.huichuan)
  14. let payment_template_id = ""
  15. let callback_rule_id = ""
  16. // let section_id = main_info.zh_id
  17. // console.log("section_id:",section_id)
  18. for (let index = 0; index < chongzhi_list.length; index++) {
  19. const cz_obj = chongzhi_list[index];
  20. if(cz_obj.id==chongzhi_id){
  21. payment_template_id = cz_obj.value
  22. break
  23. }
  24. }
  25. for (let index = 0; index < huichuan_list.length; index++) {
  26. const hc_obj = huichuan_list[index];
  27. if(hc_obj.id==huichuan_id){
  28. callback_rule_id = hc_obj.value
  29. break
  30. }
  31. }
  32. const headers = {
  33. "accept": "application/json, text/plain, */*",
  34. "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
  35. "priority": "u=1, i",
  36. "sec-ch-ua": "\"Not(A:Brand\";v=\"99\", \"Microsoft Edge\";v=\"133\", \"Chromium\";v=\"133\"",
  37. "sec-ch-ua-mobile": "?0",
  38. "sec-ch-ua-platform": "\"Windows\"",
  39. "sec-fetch-dest": "empty",
  40. "sec-fetch-mode": "cors",
  41. "sec-fetch-site": "same-origin",
  42. "x-requested-with": "XMLHttpRequest",
  43. "cookie": "_xsrf=7bCsoKjmfrIE0D36ajUc9s6CM9OxdPHQ; _zap=aa0b20fb-9951-4f27-9f66-dafff809f1a9; d_c0=ADASSwlwjxmPTrW0768vZ0BKygxzh_LFDDI=|1731902666; __zse_ck=004_hDt/N6kJqB2LjbDPVi1aeHkPAJ3D9i0XH1OtWnDkJmeiOQerdhuEbZ7dE7LoCSKq93LfwfCm76sfwzVzS1KLr=3ysQ/G7PdXsGsTgfiXvwpaBdKuV8K4A2Q7hwuIbMxC-BsdYkcUoqCnI0s8QnvTGFO/DzhuqvMnZKGYCg8jcpLXqMyAJKrwjqGNnSQLDZXttYF+4VvXX+eGFPaVbxoRWYhzQ86gtapCiGeU+o6g4bqdj0i/CnoJVmn67lMHZoDUB; BEC=684e706569bf16169217bb2a788786f3; Hm_lvt_98beee57fd2ef70ccdd5ca52b9740c49=1739763111,1741447186; Hm_lpvt_98beee57fd2ef70ccdd5ca52b9740c49=1741447186; HMACCOUNT=8B23C823A8286BDF; 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; z_c0=2|1:0|10:1741447200|4:z_c0|92:Mi4xN1lrbldnQUFBQUFBTUJKTENYQ1BHU1lBQUFCZ0FsVk5JSzY1YUFDY1RrZmZuVXJRTXVQYWplQ1ZiRkVTNUZXUXp3|16df962e9951eafd96b5a7b6405bbbec0154b787755fed1df9f4ebc6e206dd21; ecom_merchant=1857114769787609088",
  44. "Referer": "https://ecom.zhihu.com/vip-apps/out-distribution/contentLib/list",
  45. "Referrer-Policy": "no-referrer-when-downgrade"
  46. };
  47. let app_type = 4
  48. if(PlatformInfo.mini_program_platform_id==config.wx){
  49. app_type = 6
  50. }else if(PlatformInfo.mini_program_platform_id==config.dy){
  51. app_type = 4
  52. }
  53. let postData = {
  54. "multi_sections": "0",
  55. "ad_link_name": `${t_data.product_name}_${main_info.id}`,
  56. "media_channel_id":5,
  57. "app_type": app_type,
  58. "app_id": main_info.app_id,
  59. "callback_type": 0,
  60. "payment_template_id":`${payment_template_id}`,
  61. "num": 1,
  62. "callback_rule_id":`${callback_rule_id}`,
  63. "section_id": t_data.product_id,
  64. };
  65. console.log("postData:",postData)
  66. let response = await fetch("https://ecom.zhihu.com/api/km-agent/ad-link", {
  67. method: "POST",
  68. headers: headers,
  69. body: JSON.stringify(postData)
  70. });
  71. const data = await response.json();
  72. console.log('CMD.runTask:响应数据:', data);
  73. if(data.success!=true){
  74. throw data
  75. }
  76. let promotion_info = data.data
  77. let t_params = promotion_info.ad_link.split('?')
  78. let start_page = t_params[0]
  79. let start_param = t_params[1]
  80. t_data.promotion_id = promotion_info.ad_link_id
  81. t_data.start_page = start_page
  82. t_data.start_param = start_param
  83. console.log('CMD.runTask::响应状态:', response.status);
  84. console.log('t_data:',t_data)
  85. call_back(t_data,null)
  86. }catch(error){
  87. console.error('CMD.runTask:请求错误:', error);
  88. call_back(t_data,error)
  89. return null;
  90. }
  91. }
  92. module.exports = CMD;