zh_create_link.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. "content-type": "application/json;charset=UTF-8",
  36. "priority": "u=1, i",
  37. "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Microsoft Edge\";v=\"132\"",
  38. "sec-ch-ua-mobile": "?0",
  39. "sec-ch-ua-platform": "\"Windows\"",
  40. "sec-fetch-dest": "empty",
  41. "sec-fetch-mode": "cors",
  42. "sec-fetch-site": "same-origin",
  43. "x-requested-with": "XMLHttpRequest",
  44. "cookie": "_xsrf=7bCsoKjmfrIE0D36ajUc9s6CM9OxdPHQ; _zap=aa0b20fb-9951-4f27-9f66-dafff809f1a9; d_c0=ADASSwlwjxmPTrW0768vZ0BKygxzh_LFDDI=|1731902666; __zse_ck=004_RAwxSX7iODkHf=KcaqfMYfLtUB=liEm/v0fmgVHxEqKYzUEWDsJ4I5wkbR1yz3X=sAOsMm7PcwNXoQHjg5IxNkMc38yFAYS9Vcvho/AB5CWvfKZL7JZ6yb8JNCk=hJhs-xC0Hm7QqNBqkjTYlQ0LGKY50XF8sCD+ku+G/FUcrxDHtM9cxwgjtwoE7C9tAtkeLkUwyYVe6lZG1PpW/gndPL1lhcrZ53odQtwGooASih8FG2HI3W7Xpo3Bq+eqzshzK; Hm_lvt_98beee57fd2ef70ccdd5ca52b9740c49=1735787111,1735909747,1736148711; captcha_session_v2=2|1:0|10:1736148772|18:captcha_session_v2|88:YkZmazRKNXExV2dHaTkvaWIyQkJaUXpPZDFEbFNwWTR1bjNKK0dpUUdJRTcxZldZOUtFQlFSMUQzT1h1TFlNZw==|7015dcf5d48280e56784ef6d89a2b4d15352adcb1e257453c9907a664ceaa0d9; captcha_ticket_v2=2|1:0|10:1736148810|17:captcha_ticket_v2|728:eyJ2YWxpZGF0ZSI6IkNOMzFfKkxBeEhrcDFRYnhkeGxtTGRnSlZZWVdHbjhtLlc4R3BmQWl5dFNLYlA1ekZITXYydi5KRypfa3plX3poZGJRRExveDlSR3lFVDJJbmQ4Q1ZHNnJFSWkqdyppMDZKMzlXYVZJcFlIX0VHc0ZRRDBsa1BvblJrNVJldWVDNFRNeFBXRmZZcXVJWHB1Yip0ckY1SWFQdVNoS0YyKjZmUHhUKnFiOXpDaFVsc0djdHVBX1hjWENfYkNQemlxREwwSWpWekdSZHlqWUFWQ0d5aE5TaWFzZEhzdWRDWCprYy5QKkh6ajV6VU9nM2lQT296YVBxSzlXemYqcXZzRF9ENWVPU2dGQmhoUWd3d3RZb3ByT0t0M0ZpVSp3SUZsc1FmZTVMRDJwSDhTcHBOZUF4VkhWYkVEdC4zVU1USkl3SjhRWCoqb0xrKnlhU2RudDNXOElfV01mMV84RzF1d05NeUpJS0YqcmJ3MTBsejNDX2lnMFJYM2FMUTBZT04ySDFqRkpZYlNCMCpfVjJseENYdmRPMEtZanJqTEh2b3RFbERnc2xzTDF4eS5TSWZSU3owY3kxRmFpU3hadkNxV00ubUJvbExKQy5JR1BvMG1uLmtNZHRuNElMMGx6NE9DcmdKMXFHeV81aUhUMGhNajZxVTRmdFlSU1JlNUxlbkJGWWdzcnZWZnFxNVk3N192X2lfMSJ9|9a0d71076f5273fc22dd67c3e4eabb975e479e875191d79a44e51972d2d848cc; z_c0=2|1:0|10:1736148810|4:z_c0|92:Mi4xN1lrbldnQUFBQUFBTUJKTENYQ1BHU1lBQUFCZ0FsVk5TdFZvYUFCUDI3aTJFNk5MNThBZ215bXIyZVJIWXhvNXN3|707e10b967760748115ffeee34231345d9323f18a7e61ff853b0d3cf9967dae2; ecom_merchant=1857114769787609088; BEC=6c53268835aec2199978cd4b4f988f8c",
  45. "Referer": "https://ecom.zhihu.com/vip-apps/out-distribution/contentLib/detail?&sectionId=1864766430517526529&workId=1864766430517526529&appId=tt2ffb5946b0cb808001&media_channel_type=5",
  46. "Referrer-Policy": "no-referrer-when-downgrade"
  47. };
  48. let app_type = 4
  49. if(PlatformInfo.mini_program_platform_id==config.wx){
  50. app_type = 6
  51. }else if(PlatformInfo.mini_program_platform_id==config.dy){
  52. app_type = 4
  53. }
  54. let postData = {
  55. "multi_sections": "0",
  56. "ad_link_name": t_data.product_name,
  57. "media_channel_id":5,
  58. "app_type": app_type,
  59. "app_id": main_info.app_id,
  60. "callback_type": 0,
  61. "payment_template_id":`${payment_template_id}`,
  62. "num": 1,
  63. "callback_rule_id":`${callback_rule_id}`,
  64. "section_id": section_id,
  65. };
  66. console.log("postData:",postData)
  67. let response = await fetch("https://ecom.zhihu.com/api/km-agent/ad-link", {
  68. method: "POST",
  69. headers: headers,
  70. body: JSON.stringify(postData)
  71. });
  72. const data = await response.json();
  73. console.log('CMD.runTask:响应数据:', data);
  74. if(data.success!=true){
  75. throw data
  76. }
  77. let promotion_info = data.data
  78. let t_params = promotion_info.ad_link.split('?')
  79. let start_page = t_params[0]
  80. let start_param = t_params[1]
  81. t_data.promotion_id = promotion_info.ad_link_id
  82. t_data.start_page = start_page
  83. t_data.start_param = start_param
  84. console.log('CMD.runTask::响应状态:', response.status);
  85. console.log('t_data:',t_data)
  86. call_back(t_data,null)
  87. }catch(error){
  88. console.error('CMD.runTask:请求错误:', error);
  89. call_back(t_data,error)
  90. return null;
  91. }
  92. }
  93. module.exports = CMD;