order.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. // 南研一键登录测试程序
  2. import * as compnt from "../../../public/js/compnt.js";
  3. import * as unicom from "../../../public/js/unicom.js";
  4. import "../scss/stackpkg.scss";
  5. import "../../../public/scss/unicom.scss";
  6. init();
  7. function init() {
  8. compnt.showLoading();
  9. unicom.init().then(function(response) {
  10. compnt.hideLoading();
  11. unicom.setProduct(response.product[0]);
  12. unicom.setFesname(response.festival);
  13. var cacheTime = localStorage.getItem(unicom.query.code);
  14. if (new Date().getTime() - cacheTime > 1000 * 60 * 60 * 24 * 30) {
  15. localStorage.removeItem(unicom.query.code)
  16. }
  17. if (!!unicom.query.code && cacheTime == null) {
  18. localStorage.setItem(unicom.query.code, new Date().getTime())
  19. unicom.oneClickLogin(unicom.query.code).then(function(userid) {
  20. orderBack();
  21. }).fail(function(data) {
  22. compnt.hideLoading();
  23. })
  24. }
  25. if (!!unicom.query.tradeno) {
  26. showPayQueryDialog();
  27. }
  28. bindSend();
  29. bindOrder();
  30. if (location.href.indexOf('/cancel') >= 0) {
  31. unicom.burypointLogId('110002'); // 退订页面pv, pv去重得到uv
  32. } else if (location.href.indexOf('/draw') >= 0) {
  33. unicom.burypointLogId('110003'); // 领取页面pv, pv去重得到uv
  34. } else if (location.href.indexOf('/flow') >= 0) {
  35. unicom.burypointLogId('110004'); // 流量查询pv, pv去重得到uv
  36. } else if (location.href.indexOf('/active') >= 0) {
  37. unicom.burypointLogId('110005'); // 激活页面pv, pv去重得到uv
  38. } else {
  39. // location.href.indexOf('/index') >= 0
  40. // location.href.indexOf('/order') >= 0
  41. unicom.burypointLogId('110001'); // 订购页面pv, pv去重得到uv
  42. }
  43. })
  44. bindShowAgr();
  45. }
  46. function bindSend() {
  47. // @ts-ignore
  48. var $container = $('.section-login').find('.form-group');
  49. $container.find('.sendcode').unbind('click').on('click', function() {
  50. unicom.sendSms($container, 'orderlogin');
  51. })
  52. }
  53. function bindOrder() {
  54. // @ts-ignore
  55. var $container = $('.section-login').find('.form-group');
  56. $container.find('.login').unbind('click').on('click', function() {
  57. /*compnt.showLoading();
  58. unicom.checkCode($container).then(function() {
  59. orderBack();
  60. }).fail(function(data) {
  61. compnt.hideLoading();
  62. })*/
  63. var cbUrl = 'https://800.wo.cn/festivalchannel/back/stackpkg/order.html?fes=9up&sou=49';
  64. window.location.href = 'https://account.bol.wo.cn/cuuser/unity/redirectOnekeyLogin?clientId=directflow&redirectUrl=' + encodeURIComponent(encodeURIComponent(cbUrl))
  65. })
  66. }
  67. function orderBack() {
  68. unicom.orderBack().then(function(response) {
  69. // console.log(response)
  70. compnt.hideLoading();
  71. var data = response;
  72. switch (data.resultCode) {
  73. case "0000":
  74. // compnt.showAlert('领取成功');
  75. // window.location.reload();
  76. // alert(data.web_url + '&redirect_url=' + encodeURIComponent(window.location.href + '&tradeno=' + data.out_trade_no));
  77. data.tradedate = unicom.getNowFormatDate();
  78. data.userid = unicom.user.userid;
  79. pay(data);
  80. break;
  81. default:
  82. compnt.showAlert(response.errorInfo);
  83. break;
  84. }
  85. }).fail(function(data) {
  86. compnt.hideLoading();
  87. })
  88. }
  89. function bindShowAgr() {
  90. $('#btn-showagr').on('click', function() {
  91. showAgr();
  92. })
  93. }
  94. function showAgr() {
  95. var $overlay = $('<div class="overlay"></div>');
  96. var $dialog = $(
  97. '<section class="section-agr"><div class="container">' +
  98. ' <div class="close">' +
  99. ' <img name="closeBtn" src="./images/close.png">' +
  100. ' </div>' +
  101. ' <div class="title">' +
  102. ' <img src="./images/label-active.png">' +
  103. ' </div>' +
  104. ' <div class="content">' +
  105. ' <ul>' +
  106. ' <li><div class="box-num"><div class="num">01</div></div>' +
  107. ' <p>' +
  108. ' 针对已订购今日头条定向流量10GB月包(前向)且流量剩余接近阈值的用户,' +
  109. ' 现在可叠加订购今日头条定向流量10GB月包(后向)。每用户本月仅限订购' +
  110. ' 一次今日头条定向流量10GB月包(后向)。' +
  111. ' </p>' +
  112. ' </li>' +
  113. ' <li><div class="box-num"><div class="num">02</div></div>' +
  114. ' <p>' +
  115. ' "今日头条定向流量10GB月包(后向)"订购成功后即刻生效,该月流量月底' +
  116. ' 失效,次月不自动续订,本流量包不支持重复订购。' +
  117. ' </p>' +
  118. ' </li>' +
  119. ' </ul>' +
  120. ' </div>' +
  121. ' <div class="title">' +
  122. ' <img src="./images/label-busi.png">' +
  123. ' </div>' +
  124. ' <div class="content">' +
  125. ' <ul>' +
  126. ' <li><div class="box-num"><div class="num">01</div></div>' +
  127. ' <p>符合订购约定的中国联通手机(除冰激凌套餐、懂我卡)4G套餐用户均可订购“今日头条定向流量10GB月包(后向)”。其中,4G套餐中的全国共享组合套餐、4G全国套餐主副卡用户和智慧沃家共享套餐中手机用户等共享类套餐用户的手机号码不共享后向定向流量包。手机套餐中流量资费、流量使用规则另有约定的,按照手机套餐执行。</p>' +
  128. ' </li>' +
  129. ' <li><div class="box-num"><div class="num">02</div></div>' +
  130. ' <p>“今日头条定向流量10GB月包(前向)”和“今日头条定向流量10GB月包(后向)”两者可以叠加订购;叠加订购时,先消耗“今日头条定向流量10GB月包(前向)”中的定向流量,再消耗“今日头条定向流量10GB月包(后向)”中的定向流量,都超出后按照用户所选套餐资费或标准资费及联通公司已审批备案公示的资费标准收取。</p>' +
  131. ' </li>' +
  132. ' <li><div class="box-num"><div class="num">03</div></div>' +
  133. ' <p>用户须处于正常可用状态下才可订购,处于紧急停机(挂失)、欠费停机、停机保号等状态的后付费用户及处于未激活器、充值期、锁定期的预付费用户不可办理。</p>' +
  134. ' </li>' +
  135. ' <li><div class="box-num"><div class="num">04</div></div>' +
  136. ' <p>UNINET、3GNET 、WONET接入点访问能使用该定向流量,其他接入点不能免流使用。</p>' +
  137. ' </li>' +
  138. ' <li><div class="box-num"><div class="num">05</div></div>' +
  139. ' <p>国内指中国内地,不包含港、澳、台地区。</p>' +
  140. ' </li>' +
  141. ' <li><div class="box-num"><div class="num">06</div></div>' +
  142. ' <p>用户成功订购该头条系流量包后,如果遇到页面提示不免流,敬请忽略,正常使用。</p>' +
  143. ' </li>' +
  144. ' </ul>' +
  145. ' </div>' +
  146. '</div></section>'
  147. )
  148. $overlay.appendTo($(document.body))
  149. $dialog.appendTo($(document.body))
  150. $dialog.find('img[name="closeBtn"]').on('click', function() {
  151. $dialog.close();
  152. })
  153. $dialog.close = function() {
  154. $overlay.remove();
  155. $dialog.remove();
  156. $dialog = null;
  157. }
  158. }
  159. function showPayQueryDialog() {
  160. var $overlay = $('<div class="overlay"></div>');
  161. var $dialog = $(
  162. '<div class="dialog-pay">' +
  163. ' <div class="title">' +
  164. ' <span>请确认微信支付是否已完成</span>' +
  165. ' </div>' +
  166. ' <div class="finish">' +
  167. ' <span name="finishspan">已完成支付</span>' +
  168. ' </div>' +
  169. ' <div class="repay">' +
  170. ' <span name="repayspan">支付遇到问题,重新支付</span>' +
  171. ' </div>' +
  172. '</div>');
  173. $overlay.appendTo($(document.body))
  174. $dialog.appendTo($(document.body))
  175. $dialog.find('span[name="finishspan"]').on('click', function() {
  176. queryWxPay(decodeURIComponent(unicom.query.userid));
  177. })
  178. $dialog.find('span[name="repayspan"]').on('click', function() {
  179. var data = {
  180. userid: decodeURIComponent(unicom.query.userid),
  181. web_url: decodeURIComponent(unicom.query.payurl),
  182. out_trade_no: unicom.query.tradeno,
  183. tradedate: unicom.query.tradedate
  184. }
  185. // alert(JSON.stringify(data))
  186. pay(data);
  187. })
  188. }
  189. function pay(data) {
  190. var href = window.location.href;
  191. if (href.indexOf("&tradeno") > 0) {
  192. href = href.substring(0, href.indexOf("&tradeno"));
  193. }
  194. window.location.href = data.web_url +
  195. '&redirect_url=' + encodeURIComponent(href +
  196. '&tradeno=' + data.out_trade_no +
  197. '&tradedate=' + data.tradedate +
  198. '&userid=' + encodeURIComponent(encodeURIComponent(data.userid)) +
  199. '&payurl=' + encodeURIComponent(encodeURIComponent(data.web_url)));
  200. }
  201. function queryWxPay(userid) {
  202. unicom.queryWxPay(unicom.query.tradeno, unicom.query.tradedate, userid).then(function(response) {
  203. var result = response;
  204. if (result.resultCode == "0000" && result.trade_state == "SUCCESS") {
  205. compnt.showAlert('支付成功,请注意接收通知短信。').then(function(response) {
  206. window.location.href = window.location.href.replace("tradeno", "tno");
  207. });
  208. return;
  209. }
  210. $('.dialog-pay').css('display', 'none');
  211. switch (result.trade_state) {
  212. case "REFUND":
  213. compnt.showAlert('订购失败,转入退款').then(function() {
  214. $('.dialog-pay').css('display', 'block');
  215. window.location.href = unicom.root + "-s1api" + '/back/stackpkg/index.html?'
  216. });
  217. break;
  218. case "NOTPAY":
  219. compnt.showAlert('未支付').then(function() {
  220. $('.dialog-pay').css('display', 'block');
  221. });
  222. break;
  223. case "CLOSED":
  224. compnt.showAlert('已关闭').then(function() {
  225. $('.dialog-pay').css('display', 'block');
  226. });
  227. break;
  228. case "REVOKED":
  229. compnt.showAlert('已撤销(付款码支付)').then(function() {
  230. $('.dialog-pay').css('display', 'block');
  231. });
  232. break;
  233. case "USERPAYING":
  234. compnt.showAlert('用户支付中(付款码支付)').then(function() {
  235. $('.dialog-pay').css('display', 'block');
  236. });
  237. break;
  238. case "PAYERROR":
  239. compnt.showAlert('支付失败(其他原因,如银行返回失败)').then(function() {
  240. $('.dialog-pay').css('display', 'block');
  241. });
  242. break;
  243. default:
  244. compnt.showAlert('支付失败,' + result.trade_state).then(function() {
  245. $('.dialog-pay').css('display', 'block');
  246. });
  247. break;
  248. }
  249. });
  250. return;
  251. }