zh_create_link_new.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. let tg_link_config = JSON.parse(main_info.tg_link_config)
  9. let chongzhi_id = tg_link_config['chongzhi_id']
  10. let huichuan_id = tg_link_config['huichuan_id']
  11. let chongzhi_list = JSON.parse(PlatformInfo.chongzhi)
  12. let huichuan_list = JSON.parse(PlatformInfo.huichuan)
  13. let payment_template_id = ""
  14. let callback_rule_id = ""
  15. for (let index = 0; index < chongzhi_list.length; index++) {
  16. const cz_obj = chongzhi_list[index];
  17. if(cz_obj.id==chongzhi_id){
  18. payment_template_id = cz_obj.value
  19. break
  20. }
  21. }
  22. for (let index = 0; index < huichuan_list.length; index++) {
  23. const hc_obj = huichuan_list[index];
  24. if(hc_obj.id==huichuan_id){
  25. callback_rule_id = hc_obj.value
  26. break
  27. }
  28. }
  29. let member_token = main_info.member_token
  30. let timestamp = helper.getCurrentUnixTimestamp()
  31. let postData = {
  32. "timestamp": `${timestamp}`,
  33. "app_id": config.zhihu_conifg.app_id,
  34. "data": {
  35. "member_token": member_token,
  36. "work_id": t_data.product_id,
  37. "media_channel_type": 5,
  38. "ad_link_name": `${t_data.product_name}_${main_info.id}`,
  39. "app_id": main_info.app_id,
  40. "callback_type": 0,
  41. "callback_rule_id": callback_rule_id,
  42. "payment_template_id": payment_template_id,
  43. "num": 1
  44. }
  45. }
  46. let sign = tools.zh_sign(JSON.stringify(postData),config.zhihu_conifg.app_secret)
  47. let client = tools.getOneNewClinet({
  48. "Content-Type":"application/json; charset=utf-8",
  49. "Accept":"application/json",
  50. "x-sign":sign
  51. })
  52. try{
  53. let response = await client.post("https://open.zhihu.com/openapi/km-agent/v1/new-ad-link", postData )
  54. if(response.data.success!=true){
  55. throw response.data
  56. }
  57. // console.log("response.data.data:",response.data.data)
  58. let t_params = response.data.data.ad_link_list[0]
  59. let start_page = t_params.ad_link_url
  60. let start_param = t_params.ad_link_query
  61. t_data.promotion_id = t_params.ad_link_id
  62. t_data.start_page = start_page
  63. t_data.start_param = start_param
  64. call_back(t_data,null)
  65. return response.data;
  66. }catch(e){
  67. console.log('zh_create_link_new::请求错误:', e);
  68. call_back(t_data,e)
  69. return null;
  70. }
  71. }
  72. module.exports = CMD;