index.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449
  1. import * as compnt from "../../../public/js/compnt.js";
  2. import * as unicom from "../../../public/js/unicom.js";
  3. import "../scss/stackpkg.scss";
  4. import "../../../public/scss/unicom.scss";
  5. init();
  6. function init() {
  7. compnt.showLoading();
  8. unicom.init().then(function(response) {
  9. compnt.hideLoading();
  10. unicom.setProduct(response.product[0]);
  11. unicom.setFesname(response.festival);
  12. // alert(JSON.stringify(unicom.query))
  13. if (!!unicom.query.tradeno) {
  14. showPayQueryDialog();
  15. }
  16. // bindSend();
  17. // bindOrder();
  18. if (location.href.indexOf('/cancel') >= 0) {
  19. unicom.burypointLogId('110002'); // 退订页面pv, pv去重得到uv
  20. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'open', ea: 'cancel_open' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  21. } else if (location.href.indexOf('/draw') >= 0) {
  22. unicom.burypointLogId('110003'); // 领取页面pv, pv去重得到uv
  23. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'open', ea: 'draw_open' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  24. } else if (location.href.indexOf('/flow') >= 0) {
  25. unicom.burypointLogId('110004'); // 流量查询pv, pv去重得到uv
  26. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'open', ea: 'flow_open' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  27. } else if (location.href.indexOf('/active') >= 0) {
  28. unicom.burypointLogId('110005'); // 激活页面pv, pv去重得到uv
  29. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'open', ea: 'active_open' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  30. } else {
  31. // location.href.indexOf('/index') >= 0
  32. // location.href.indexOf('/order') >= 0
  33. unicom.burypointLogId('110001'); // 订购页面pv, pv去重得到uv
  34. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'open', ea: 'order_open' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  35. }
  36. })
  37. // bindShowAgr();
  38. }
  39. // function bindSend() {
  40. // // @ts-ignore
  41. // var $container = $('.section-login').find('.form-group');
  42. // $container.find('.sendcode').unbind('click').on('click', function() {
  43. // unicom.sendSms($container, 'orderlogin');
  44. // unicom.burypointLogId('200001');
  45. // // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'draw_click_send_sms_code_btn' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  46. // })
  47. // }
  48. $(".btn_al").click(function() {
  49. $('.overlayr').css('display', 'none')
  50. $('.overlayss').css('display', 'none')
  51. $('body').css('overflow', 'auto')
  52. compnt.unlockClick();
  53. });
  54. $(".box_a").click(function() {
  55. if (!compnt.lockClick()) {
  56. return;
  57. }
  58. var ticket = getUrlParam("ticket");
  59. if (ticket == null || ticket == '') {
  60. if (navigator.userAgent.toLocaleLowerCase().indexOf('unicom') < 0) {
  61. compnt.showAlert('请在中国联通APP中访问本页面!');
  62. compnt.unlockClick();
  63. return;
  64. } else {
  65. compnt.showAlert('未获取到ticket,请联系管理员!');
  66. compnt.unlockClick();
  67. return;
  68. }
  69. }
  70. if (window.localStorage.getItem('ticket') == unicom.query.ticket) {
  71. if (window.localStorage.getItem('ticketMessage') == null) {
  72. compnt.showAlert('会话已过期,请重新打开!');
  73. } else {
  74. // compnt.showAlert(window.localStorage.getItem('ticketMessage'));
  75. $('.overlayr').css('display', 'none')
  76. $('.overlayss').css('display', 'block')
  77. $('.text_abkl').html(window.localStorage.getItem('ticketMessage'))
  78. $('.section-logins').css('display', 'none')
  79. }
  80. compnt.unlockClick();
  81. return;
  82. }
  83. window.localStorage.setItem('ticket', unicom.query.ticket);
  84. $('.overlayssr').css('display', 'flex')
  85. $('body').css('overflow', 'hidden')
  86. // compnt.showLoading();
  87. unicom.allowdeaw(ticket).done(function(response) {
  88. $('.overlayssr').css('display', 'none');
  89. $('body').css('overflow', 'auto');
  90. // compnt.hideLoading();
  91. compnt.unlockClick();
  92. // console.log(response)
  93. // compnt.hideLoading();
  94. // console.log(response.resultCode)
  95. if (response.resultCode == '1104') {
  96. $('.overlayr').css('display', 'none')
  97. $('.overlayss').css('display', 'block')
  98. $('.section-logins').css('display', 'none')
  99. $('.text_abkl').html("号码原因不支持领取!")
  100. window.localStorage.setItem("ticketMessage", "号码原因不支持领取!");
  101. WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  102. } else if (response.resultCode == '0000') {
  103. $('.overlayr').css('display', 'block')
  104. $('.overlayss').css('display', 'none')
  105. $('.section-logins').css('display', 'none')
  106. window.localStorage.setItem("ticketMessage", "您已领取过该产品!");
  107. WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_success' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  108. } else if (response.resultCode == '1105') {
  109. $('.overlayr').css('display', 'none')
  110. $('.overlayss').css('display', 'block')
  111. $('.text_abkl').html("您已领取过该产品!")
  112. window.localStorage.setItem("ticketMessage", "您已领取过该产品!");
  113. $('.section-logins').css('display', 'none')
  114. WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  115. } else if (response.resultCode == '6034') {
  116. $('.overlayr').css('display', 'none')
  117. $('.overlayss').css('display', 'block')
  118. $('.text_abkl').html("您已领取过该产品!")
  119. $('.section-logins').css('display', 'none')
  120. window.localStorage.setItem("ticketMessage", "您已领取过该产品!");
  121. WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  122. } else if (response.resultCode == '1061') {
  123. $('.overlayr').css('display', 'none')
  124. $('.overlayss').css('display', 'block')
  125. $('.text_abkl').html("无效的ticket,请联系管理员!")
  126. $('.section-logins').css('display', 'none')
  127. window.localStorage.setItem("ticketMessage", "无效的ticket,请联系管理员!");
  128. WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  129. }
  130. }).fail(function(response) {
  131. $('.overlayssr').css('display', 'none');
  132. $('body').css('overflow', 'auto');
  133. compnt.unlockClick();
  134. })
  135. function getUrlParam(urlprm) {
  136. var reg = new RegExp("(^|&)" + urlprm + "=([^&]*)(&|$)");
  137. var r = window.location.search.substr(1).match(reg);
  138. if (r != null) {
  139. return r[2];
  140. }
  141. }
  142. });
  143. function showAgr() {
  144. var $overlay = $('<div class="overlay"></div>');
  145. var $dialog = $(
  146. '<section class="section-agr"><div class="container">' +
  147. ' <div class="close">' +
  148. ' <img name="closeBtn" src="./images/close.png">' +
  149. ' </div>' +
  150. ' <div class="title">活动说明</div>' +
  151. ' <div class="content">' +
  152. ' <ul>' +
  153. ' <li><div class="box-num"><div class="num">01</div></div>' +
  154. ' <p>针对已订购今日头条定向流量10GB月包(前向)且流量剩余接近阈值的用户,现在可叠加订购今日头条定向流量10GB月包(后向)。每个用户本月仅限订购一次今日头条定向流量10GB月包(后向)。</p>' +
  155. ' </li>' +
  156. ' <li><div class="box-num"><div class="num">02</div></div>' +
  157. ' <p>“今日头条定向流量10GB月包(后向)”订购成功后立即生效,月底失效,次月不自动续订,本流量包不支持重复订购。</p>' +
  158. ' </li>' +
  159. ' </ul>' +
  160. ' </div>' +
  161. ' <div class="title">温馨提示</div>' +
  162. ' <div class="content">' +
  163. ' <ul>' +
  164. ' <li><div class="box-num"><div class="num">01</div></div>' +
  165. ' <p>符合订购约定的中国联通手机4G、5G套餐用户(除4G冰激凌套餐、4G、5G冰激凌套餐副卡及懂我卡等)用户均可订购,智慧沃家成员用户、主副卡用户订购当前定向流量产品,只限该成员使用,其他成员不可共享。</p>' +
  166. ' </li>' +
  167. ' <li><div class="box-num"><div class="num">02</div></div>' +
  168. ' <p>达量限速套餐用户订购当前定向流量产品,包内定向流量不提升原套餐限速阈值和网速,不能做为限速后解限的加速包使用,依然执行基础套餐限速阈值的约定。</p>' +
  169. ' </li>' +
  170. ' <li><div class="box-num"><div class="num">03</div></div>' +
  171. ' <p>“今日头条定向流量10GB月包(前向)”和“今日头条定向流量10GB月包(后向)”两者可以叠加订购;叠加订购时,先消耗“今日头条定向流量10GB月包(前向)”中的定向流量,再消耗“今日头条定向流量10GB月包(后向)”中的定向流量,都超出后按照用户所选套餐资费或标准资费及联通公司已审批备案公示的资费标准收取。</p>' +
  172. ' </li>' +
  173. ' <li><div class="box-num"><div class="num">04</div></div>' +
  174. ' <p>用户须处于正常可用状态下才可订购,处于紧急停机(挂失)、欠费停机、停机保号等状态的后付费用户及处于未激活器、充值期、锁定期的预付费用户不可办理。</p>' +
  175. ' </li>' +
  176. ' <li><div class="box-num"><div class="num">05</div></div>' +
  177. ' <p>请在UNINET、3GNET 、WONET手机接入点环境下访问使用,其他接入点将无法正常使用定向流量。</p>' +
  178. ' </li>' +
  179. ' <li><div class="box-num"><div class="num">06</div></div>' +
  180. ' <p>定向流量使用区域:在全国范围可以使用(不含港澳台地区),在国际漫游情况下不能使用。</p>' +
  181. ' </li>' +
  182. ' <li><div class="box-num"><div class="num">07</div></div>' +
  183. ' <p>用户成功订购该头条系流量包后,如果遇到页面提示不免流,敬请忽略,正常使用。</p>' +
  184. ' </li>' +
  185. ' <li><div class="box-num"><div class="num">08</div></div>' +
  186. ' <p>关于产品使用过程中有任何疑问可咨询联通客服:10010。</p>' +
  187. ' </li>' +
  188. ' </ul>' +
  189. ' </div>' +
  190. ' <div class="title">流量说明</div>' +
  191. ' <div class="content">' +
  192. ' <ul>' +
  193. ' <li><div class="box-num"><div class="num">01</div></div>' +
  194. ' <p>定向流量包适用范围包含:今日头条、今日头条lite版本、西瓜视频、抖音火山版、抖音视频、多闪、图虫、懂车帝、皮皮虾、海豚股票、海豚财富、gogokid、轻颜、好好学习、飞聊、飞书、激萌、时光相册、半次元、番茄畅听APP使用。</p>' +
  195. ' </li>' +
  196. ' <li><div class="box-num"><div class="num">02</div></div>' +
  197. ' <p>定向流量适用范围不包含:发起直播及上传视频;第三方提供的广告、视频、图片;下载/缓存客户端及第三方链接视频所产生的流量。</p>' +
  198. ' </li>' +
  199. ' <li><div class="box-num"><div class="num">03</div></div>' +
  200. ' <p>如您是头条相关互联网卡套餐用户,如蚂蚁宝卡、阿里宝卡、钉钉宝卡或工商银行e卡等,将优先使用套餐内的专属定向流量,用罄后即消耗该产品包内的定向流量。</p>' +
  201. ' </li>' +
  202. ' </ul>' +
  203. ' </div>' +
  204. '</div></section>'
  205. )
  206. $overlay.appendTo($(document.body))
  207. $dialog.appendTo($(document.body))
  208. $dialog.find('img[name="closeBtn"]').on('click', function() {
  209. $dialog.close();
  210. })
  211. $dialog.close = function() {
  212. $overlay.remove();
  213. $dialog.remove();
  214. $dialog = null;
  215. }
  216. }
  217. function showPayQueryDialog() {
  218. var $overlay = $('<div class="overlay"></div>');
  219. var $dialog = $(
  220. '<div class="dialog-pay">' +
  221. ' <div class="title">' +
  222. ' <span>请确认微信支付是否已完成</span>' +
  223. ' </div>' +
  224. ' <div class="finish">' +
  225. ' <span name="finishspan">已完成支付</span>' +
  226. ' </div>' +
  227. ' <div class="repay">' +
  228. ' <span name="repayspan">支付遇到问题,重新支付</span>' +
  229. ' </div>' +
  230. '</div>');
  231. $overlay.appendTo($(document.body))
  232. $dialog.appendTo($(document.body))
  233. $dialog.find('span[name="finishspan"]').on('click', function() {
  234. queryWxPay(decodeURIComponent(unicom.query.userid));
  235. })
  236. $dialog.find('span[name="repayspan"]').on('click', function() {
  237. var data = {
  238. userid: decodeURIComponent(unicom.query.userid),
  239. web_url: decodeURIComponent(unicom.query.payurl),
  240. out_trade_no: unicom.query.tradeno,
  241. tradedate: unicom.query.tradedate
  242. }
  243. // alert(JSON.stringify(data))
  244. pay(data);
  245. })
  246. }
  247. function pay(data) {
  248. var href = window.location.href;
  249. if (href.indexOf("&tradeno") > 0) {
  250. href = href.substring(0, href.indexOf("&tradeno"));
  251. }
  252. window.location.href = data.web_url +
  253. '&redirect_url=' + encodeURIComponent(href +
  254. '&tradeno=' + data.out_trade_no +
  255. '&tradedate=' + data.tradedate +
  256. '&userid=' + encodeURIComponent(encodeURIComponent(data.userid)) +
  257. '&payurl=' + encodeURIComponent(encodeURIComponent(data.web_url)));
  258. }
  259. function showAlert(message, hideButton, buttonLabel, hideTitle) {
  260. var title = '';
  261. if (hideTitle == undefined || hideTitle == false) {
  262. title = '温馨提示';
  263. }
  264. var $overlay = $('<div class="overlay overlay-alert"></div>');
  265. var $dialog = $(
  266. '<div class="dialog-alert">' +
  267. '<h1>' + title + '</h1>' +
  268. '<div class="content">' + message + '</div>' +
  269. '<div class="actions">' +
  270. ' <div class="btn">' + (buttonLabel == null || buttonLabel == "" ? "关闭" : buttonLabel) + '</div>' +
  271. '</div>' +
  272. '</div>');
  273. $("body").css("overflow", "hidden");
  274. $overlay.appendTo($(document.body));
  275. $dialog.appendTo($(document.body));
  276. if (hideButton == true) {
  277. $dialog.find('.btn').remove();
  278. }
  279. $dialog.close = function() {
  280. $("body").css("overflow", "auto");
  281. $overlay.remove();
  282. $dialog.remove();
  283. $dialog = null;
  284. }
  285. var def = $.Deferred();
  286. $dialog.find('.btn').on('click', function() {
  287. $dialog.close()
  288. def.resolve($dialog);
  289. })
  290. return def;
  291. }
  292. function queryWxPay(userid) {
  293. unicom.queryWxPay(unicom.query.tradeno, unicom.query.tradedate, userid).then(function(response) {
  294. var result = response;
  295. if (result.resultCode == "0000" && result.trade_state == "SUCCESS") {
  296. unicom.burypointLogId('200003');
  297. compnt.showAlert('支付成功,请注意接收通知短信。').then(function() {
  298. window.location.href = window.location.href.replace("tradeno", "tno");
  299. });
  300. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_success' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  301. return;
  302. }
  303. $('.dialog-pay').css('display', 'none');
  304. unicom.burypointLogId('200004');
  305. switch (result.trade_state) {
  306. case "REFUND":
  307. compnt.showAlert('订购失败,转入退款').then(function() {
  308. $('.dialog-pay').css('display', 'block');
  309. window.location.href = unicom.root + "-s1api" + '/back/stackpkg/index.html?'
  310. });
  311. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  312. break;
  313. case "NOTPAY":
  314. compnt.showAlert('未支付').then(function() {
  315. $('.dialog-pay').css('display', 'block');
  316. });
  317. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  318. break;
  319. case "CLOSED":
  320. compnt.showAlert('已关闭').then(function() {
  321. $('.dialog-pay').css('display', 'block');
  322. });
  323. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  324. break;
  325. case "REVOKED":
  326. compnt.showAlert('已撤销(付款码支付)').then(function() {
  327. $('.dialog-pay').css('display', 'block');
  328. });
  329. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  330. break;
  331. case "USERPAYING":
  332. compnt.showAlert('用户支付中(付款码支付)').then(function() {
  333. $('.dialog-pay').css('display', 'block');
  334. });
  335. break;
  336. case "PAYERROR":
  337. compnt.showAlert('支付失败(其他原因,如银行返回失败)').then(function() {
  338. $('.dialog-pay').css('display', 'block');
  339. });
  340. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  341. break;
  342. default:
  343. compnt.showAlert('支付失败,' + result.trade_state).then(function() {
  344. $('.dialog-pay').css('display', 'block');
  345. });
  346. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  347. break;
  348. }
  349. });
  350. return;
  351. }
  352. function formatDuring(time) {
  353. var seconds = Math.round(time * 100 / 1000) / 100;
  354. return seconds
  355. }
  356. const script = document.createElement('script')
  357. script.async = true
  358. script.defer = true
  359. script.src = "https://liuzhuan.oss-accelerate.aliyuncs.com/szjd_mobileMall.js"
  360. const head = document.head  ||  document.getElementsByTagName('head')[0]
  361. head.appendChild(script)
  362. script.onload = function() {
  363. //note 在脚本加载完后执行 把需要手动获取的业务数据传入到对象中(默认必传参数已经通过meta、query、cookie自动获取)  
  364. // console.log(window.performance.timing.domContentLoadedEventEnd - window.performance.timing.navigationStart)\
  365. // console.log(1)
  366. var capUrl;
  367. if (window.location.href.indexOf("https://800.wo.cn/orderchannel") >= 0) {
  368. capUrl = "https://analytics.10010.com:8443/tracker/matomo.php";
  369. } else if (window.location.href.indexOf("http://100.0.4.69:3344") >= 0) {
  370. capUrl = "http://157.148.81.20:45591/csc";
  371. }
  372. window.onload = function() {
  373. // console.log(capUrl)
  374. var myObj = {
  375. type: false, //note false会立即触发页面初始化
  376. //原来的生产地址https://analytics.10010.com:8443/tracker/matomo.php(默认使用这个)
  377. //原来的测试地址http://157.148.81.20:45592/tracker/matomo.php(默认使用这个)
  378. //新采集生产地址https://analytics2.10010.com/csc
  379. //新采集测试地址 http://157.148.81.20:45591/csc
  380. serverUrl: capUrl, //服务器地址
  381. pageName: "今日头条定向流量包", //页面名称
  382. webSite: 1, //note 站点id 需要跟需求确认是多少,通过参数传递过去
  383. activity_id: 123, //note 活动id 需要跟需求确认是多少,通过参数传递过去传递过去
  384. productName: "头条流量包", //note 业务数据 商品名称   
  385. goodSid: "2022051001", //note 业务数据 商品id   
  386. //pageRendDuration: "10",
  387. customDimension: [{
  388. key: 59,
  389. value: formatDuring(new Date().getTime() - starttime)
  390. }]
  391. // formatDuring(new Date().getTime() - t1)
  392. }
  393. _trackerObj.isSinglePage(myObj);
  394. }
  395. }
  396. script.onerror = function() {
  397. console.log("加载失败");
  398. }
  399. console.log(window.Piwik_TY);