order.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. var ordcoun = 0;
  2. $('#major').unbind('click').on('click',
  3. function() {
  4. $("#major").val("立即开通");
  5. $("#major").attr('disabled',true);
  6. $("body").css("overflow","hidden");
  7. var $iframe = $('<iframe id="uniauthframe" src="https://cap.chinaunicom.cn/CAP-AUTH/auth-tt.html"></iframe>')
  8. var params = {
  9. "PRODUCT_NAME" : PRODUCT_NAME,
  10. "PRODUCT_PRICE" : PRODUCT_PRICE,
  11. "CLIENT_ID" : "",
  12. "CLIENT" : "3",
  13. "SERVICE_ID" : "",
  14. "AUTH_NO" : "",
  15. "CLIENT_SECRET" : "",
  16. "VERSION" : "1.0",
  17. "SERVICE_PHONE" : "",
  18. "THEME" : "",
  19. "PRODUCT_ID" : PRODUCT_ID,
  20. "PRODUCT_TYPE" : "1"
  21. }
  22. $iframe.on('load',function() {
  23. $.ajax({
  24. //请求后项定向服务获取
  25. url : getRootPath() + "-s1api"+ "/ini/clientsecret",
  26. dataType : "JSON",
  27. method : "GET",
  28. success : function(data) {
  29. params.CLIENT_ID = data.client_id;
  30. params.AUTH_NO = data.auth_no;
  31. params.CLIENT_SECRET = data.client_secret;
  32. console.log(JSON.stringify(params))
  33. $('#uniauthframe')[0].contentWindow.postMessage(
  34. JSON.stringify(params),
  35. "https://cap.chinaunicom.cn/CAP-AUTH/")
  36. }
  37. })
  38. })
  39. $('body').append($iframe);
  40. function order(data, product) {
  41. $("#major").val("正在开通请稍等....!");
  42. //活动页面的订购的逻辑
  43. $.ajax({
  44. type : "POST",
  45. contentType : "application/json; charset=utf-8",
  46. dataType : "Json",
  47. url : getRootPath() + "-s1api" + '/com/buyc',
  48. data : JSON.stringify(GetMasData(product, data.SERVICE_ID,data.RSP.DATA[0].TOKEN)),
  49. success : function(msg) {
  50. var resCode = eval(msg["resultCode"]);
  51. switch (resCode) {
  52. case "0000":
  53. $("#major").val("订购成功!");
  54. break;
  55. case "0013":
  56. //$("#major").css("font-size","0.1rem");
  57. $("#major").val("该号码归属省分2/3G暂未开通此产品!");
  58. break;
  59. case "6608":
  60. //$("#major").css("font-size","0.1rem");
  61. $("#major").val("该号码归属省分,暂未开通此产品!");
  62. break;
  63. case "6611":
  64. $("#major").val("订购失败,请重试!");
  65. $("#major").attr('disabled',false);
  66. ordcoun = 0;
  67. break;
  68. case "6615":
  69. $("#major").val("订购失败,请确定用户套餐!");
  70. break;
  71. case "6622":
  72. $("#major").val("用户已订购过此产品!");
  73. break;
  74. case "7777":
  75. //对7777编码不处理
  76. break;
  77. default:
  78. $("#major").val(msg["errorInfo"]);
  79. $("#major").attr('disabled',false);
  80. ordcoun = 0;
  81. }
  82. },
  83. error : function(XMLHttpRequest,
  84. textStatus, errorThrown) {
  85. $("#major").attr('disabled',false);
  86. $("#major").val("请求失败,请确认网络是否正常!");
  87. },
  88. });
  89. }
  90. /**
  91. * 订购发送信息包装
  92. * @param product
  93. * @returns {___anonymous5356_5582}
  94. */
  95. function GetMasData(product, phone, tok) {
  96. var data = {
  97. "fog" : getMemoValbyId(product, "fog"),
  98. "usermob" : phone,
  99. "useraccount" : getMemoValbyId(product,
  100. "useraccount"),
  101. "fes" : getUrlParam("fes"),
  102. "sou" : getUrlParam("sou"),
  103. "token" : tok
  104. };
  105. return data;
  106. }
  107. //监听统一认证结果
  108. window.addEventListener('message', function(e) {
  109. if(ordcoun==0){
  110. ordcoun = 1;
  111. var data = JSON.parse(e.data);
  112. switch (data.RSP.RSP_CODE) {
  113. case "0000": //处理成功
  114. $('iframe').remove();
  115. order(data, air);
  116. ordcoun = 0;
  117. $("body").css("overflow","visible");
  118. break;
  119. case "0001"://auth_no无效 (入参流水)
  120. $("#major").val("认证失败!");
  121. $("#major").attr('disabled',false);
  122. $("body").css("overflow","visible");
  123. ordcoun = 0;
  124. case "0003"://client_id不存在 (注册id存在问题)
  125. $("#major").val("认证失败!");
  126. $("#major").attr('disabled',false);
  127. $("body").css("overflow","visible");
  128. ordcoun = 0;
  129. case "4444"://服务暂时不可用(系统忙/系统队列满)
  130. $("#major").val("服务暂时不可用!");
  131. $("#major").attr('disabled',false);
  132. $("body").css("overflow","visible");
  133. ordcoun = 0;
  134. case "9001"://关闭H5认证页面
  135. $('iframe').remove();
  136. $("#major").attr('disabled',false);
  137. $("body").css("overflow","visible");
  138. ordcoun = 0;
  139. break;
  140. }
  141. }
  142. }, false);
  143. })