zh_create_link.js 6.6 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; __zse_ck=004_Yfd5z9=wVYdipziWJIurZOunLG37mTG2H9iYSlwWRDLk8=MX0olTiRGFlFAjfxcEHEKs3rAZEP/YK23mOi0JdimzivR8x6V8xrTX/SfG2rxez3yjRYZe5TLBDSnO/5x5-qJOwYJOI+PpcVzmlrlnRdtJiOBmlpDaX+iwb4g5wrE5nNLFf5lpJfeqFnUf1/zvSv87a+WPkgCwI5omwr8gRzjTiqCSHq+aDiXaB6KX9RDdi72KjThWCjiJa356jV2Ha; BEC=738c6d0432e7aaf738ea36855cdce904; Hm_lvt_98beee57fd2ef70ccdd5ca52b9740c49=1744797535,1747044239; Hm_lpvt_98beee57fd2ef70ccdd5ca52b9740c49=1747044239; HMACCOUNT=8B23C823A8286BDF; captcha_session_v2=2|1:0|10:1747044240|18:captcha_session_v2|88:WU9XenluNjRDQnRqalZvSmxYU2dNZldqRW1oc1l1aUdUTFh0SmNFWFVOS2E4Zm1ieVVqL0JxTWcwUHB5dng2Qg==|e48d0f7dc867c3386e846e6a046467e209447e0f45de2ec58e40cb5ea89b5024; captcha_ticket_v2=2|1:0|10:1747044266|17:captcha_ticket_v2|728:eyJ2YWxpZGF0ZSI6IkNOMzFfODlzRTFBbml6YmRKcUE1YzFXcHRIOXZ1Q0h4dXBPMXVsQzRNYklwREZpMVlhUkpjY2pseWFEVjR5Y3ZzLktzLnB2NUROQ1Z5LjUxbENrUzQzVFBxTkRqYnlKcWFYYnZRcGM4WGVJQWhQR0dvX3ZIaGlzVldRdzVtelVlcE1sdC5BVTJhYi5VSVM1bWswZUNqdkRlRnRqa1NoWFpjNmdQdUlHVzllX3RWbVFQOG5scmZQUWJBX1JXRWxKTTlBZEgweFpJNkY1U0J2TE52UDlvZlNlY1M1VzhiOGxOcTNrdjA1QzZ1SWhSQTRKQUVQQ2ZOX0tvNHE2RTN6Zk14SklaOVZ6QWtvVS42dE1GbHN3ODJ4b2JGTXlTMXdITGtUNTNpNVJCUUdYWUZ2THdIVTZ3LmNtd3dsX1pGcFJ0VzBfZlRqOU40KjBtcEdEY1JlZVBXbEMwTFlhYlA4bzgxUmxsUWkqZHdKelpKRUdxSnRmKnoqTnhJZl93NlR0Y2RkT3ZvWVVfRFRkVWF3cHl2UlhTcExEb0Q5TldDR0d2cDZxOVJoMU9WNlZXNHdRaEQ0X2Z3U3VPSjlFZipLY3JKTVdvc1o2KkpvVDl6Vms0enVJLkVCLlN0T3JXRm5ZVWduZFlzNW9kY0pCbGRjYkk0Nmd1OUIudlZIQjJIbWdMUHgxQVFiLjk1Q003N192X2lfMSJ9|86552ad9b795608fe66c8628d1a00b37678dfd2c0345979a0ade4da1d9075998; z_c0=2|1:0|10:1747044266|4:z_c0|92:Mi4xWjA2M1hBQUFBQUFBTUJKTENYQ1BHU1lBQUFCZ0FsVk5xaFVQYVFEYmZqdjk5aW90YXVCVWRVaUxjdmcxMlpoNF93|7715e73dbd09a2ff037024e7c3c87c621ee1d97648f3c5a9c82ed50a82e93837; ecom_merchant=1876277363932790784',
  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;