zy_mf_create_link.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. //执行一个创建掌阅链接任务
  2. const axios = require('axios');
  3. const helper = require('../src/helper');
  4. const config = require('../etc/config.json');
  5. const video_product_controllers = require('../src/data_manager/Controllers/video_product_controllers');
  6. const tools = require('../tools');
  7. const CMD = {}
  8. CMD.runTask = async function(t_data,main_info,PlatformInfo,call_back){
  9. // let recharge = await get_recharge_template()
  10. let zy_conifg = JSON.parse(main_info.zy_conifg)
  11. try {
  12. let token = await require('../src/api/zy_mf/get_zy_mf_token').get_token()
  13. console.log("token:",token)
  14. let clinet = tools.getOneNewClinet()
  15. let book_info = await video_product_controllers.getProductData({book_id:t_data.product_id})
  16. if(book_info.success==false){
  17. throw "没有找到这本书:"+t_data.product_id
  18. }
  19. let unlock_gradients = zy_conifg.unlock_gradients
  20. let free_word_count = zy_conifg.free_word_count
  21. let start_pay_section = zy_conifg.start_pay_section!=0?zy_conifg.start_pay_section:book_info.data.default_pay_section
  22. let response = await clinet.post(`https://openapi-gaia.zhangyue.com/opendata/reseller/free/book/link/create`,{
  23. access_token:token,
  24. name:`${t_data.product_name}_${main_info.id}`,
  25. source:"toutiao2", //媒体 - 抖音小程序 只能使用 "toutiao2" - 微信小程序可选项如下 - bili B站/ - toutiao2 头条2.0 - gdt3 广点通3.0
  26. start_pay_section:start_pay_section, //开始付费章节
  27. book_chapter:zy_conifg.book_chapter, //调起章节
  28. book_id:parseInt(t_data.product_id),
  29. callback_conf_reseller_id:zy_conifg.callback_conf_reseller_id, //回传策略ID
  30. owner:zy_conifg.owner, //创建用户id
  31. app_key:zy_conifg.app_key, //应用Key
  32. free_word_count:free_word_count, //超短篇免费字数
  33. unlock_gradients:unlock_gradients //[{"end_unlock_count":999,"start_unlock_count":0,"unlock_word_count":80}] //超短篇单本书解锁次数
  34. })
  35. let promotion_info = null
  36. if(response.data.code!=0){
  37. console.error("get_zy_account_list error:",response)
  38. }else{
  39. promotion_info = response.data.body
  40. }
  41. if(promotion_info==null){
  42. console.error("promotion_info==null")
  43. throw response.data
  44. }
  45. let start_page = promotion_info.start_page
  46. let start_param = promotion_info.start_params
  47. t_data.promotion_id = promotion_info.channel_id
  48. t_data.start_page = start_page
  49. t_data.start_param = start_param
  50. console.log('t_data:',t_data)
  51. await call_back(t_data,null)
  52. } catch (error) {
  53. await call_back(t_data,error)
  54. return null;
  55. }
  56. }
  57. module.exports = CMD;