bind_mobile.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
  6. <title>绑定手机</title>
  7. <!-- <link href="../../../../static/h5sdk/css/bindMobile.css" rel="stylesheet"> -->
  8. <link href="__STATIC__/h5sdk/css/bindMobile.css?v=0.03" rel="stylesheet">
  9. </head>
  10. <body>
  11. <div class="float_pop-outer">
  12. <div class="float_pop-inner float_auth">
  13. <h4 class="float_pop-tit" style="color: #FF6905;">绑定手机
  14. <if condition="$game_auth neq 2">
  15. <i class="ic_off"><img src="__STATIC__/h5sdk/images/ic_off@2x.png"></i>
  16. </if>
  17. </h4>
  18. <div class="float_pop-con">
  19. <p class="float_auth-item">
  20. <label>
  21. <i class="icon_user"></i>
  22. <input name="mobile" type="text" placeholder="输入手机号">
  23. </label>
  24. </p>
  25. <div class="float_auth-item float_auth_item">
  26. <label class="code_label">
  27. <i class="icon_card"></i>
  28. <input name="code" type="text" placeholder="输入验证码" />
  29. </label>
  30. <button class="send">发送验证码</button>
  31. </div>
  32. <div class="float_auth-item password_item">
  33. <label>
  34. <i class="icon_card"></i>
  35. <input name="password" id="password" type="password" placeholder="设置新密码" />
  36. </label>
  37. <i class="showPwd"><img src="__STATIC__/h5sdk/images/icon-openeye.png"></i>
  38. <i class="hidePwd" style="display:none"><img src="__STATIC__/h5sdk/images/icon-closeeye.png"></i>
  39. </div>
  40. </div>
  41. <div class="float_pop-btn">
  42. <a style="max-width: 100%;background:#FF6905;" id="bindMobile" href="javascript:;"
  43. class="float_auth-primary">确定</a>
  44. </div>
  45. </div>
  46. </div>
  47. <div class="pop huosdk_tips" style="display: none;">
  48. <div class="pop_body">
  49. <h5>提示信息</h5>
  50. <p class="cont">请输入用户名</p>
  51. <p class="btn">
  52. <a href="javascript:;" onclick=" $(this).parents('.pop').hide()">确定</a>
  53. </p>
  54. </div>
  55. </div>
  56. <script src="__STATIC__/h5sdk/js/jquery.js"></script>
  57. <script src="__STATIC__/h5wap/js/md5.js"></script>
  58. <script>
  59. function getQueryString(name) {
  60. var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
  61. var r = window.location.search.substr(1).match(reg);
  62. if (r != null) {
  63. return unescape(r[2]);
  64. }
  65. return null;
  66. }
  67. window.identify_status = 1;
  68. var skip = getQueryString('skip')
  69. console.log(skip);
  70. /*默认为未验证通过*/
  71. $('#identify').click(function () {
  72. var realname = $('[name="realname"]').val().trim()
  73. var type = $('[name="type"]').val()
  74. var idcard = $('[name="idcard"]').val().trim()
  75. if (!realname) {
  76. $('.huosdk_tips').show().find('.cont').text('请输入您的真实姓名')
  77. return false
  78. }
  79. if (!idcard) {
  80. $('.huosdk_tips').show().find('.cont').text('请输入您的证件号码')
  81. return false
  82. }
  83. var token = window.sessionStorage.getItem('huosdk_HS-Token') || ''
  84. var device_type = $('[name="device_type"]').val();
  85. if (!token) {
  86. token = $('[name="token"]').val();
  87. }
  88. // var deviceType = window.sessionStorage.getItem('huosdk_HS-Device-Type')
  89. var data = {
  90. format: 'json',
  91. idcard: idcard,
  92. realname: realname,
  93. token: token,
  94. type: type,
  95. app_id: "{$app_id}",
  96. device_id: "{$device_id}",
  97. device_type: device_type
  98. }
  99. var sign = ''
  100. for (var key in data) {
  101. sign += '&' + key + '=' + data[key]
  102. }
  103. sign = sign.substr(1)
  104. sign = ('POST&' + encodeURIComponent('wap/identify/set') + '&' + encodeURIComponent(sign) + '&' + token).replace(/\(/g, '%28').replace(/\)/g, '%29')
  105. data.sign = md5(sign).toString()
  106. $.ajax({
  107. url: '/wap/identify/set',
  108. method: 'post',
  109. data: data,
  110. beforeSend: function (req) {
  111. // req.setRequestHeader('HS-Lang', 'cn')
  112. // req.setRequestHeader('HS-Token', token)
  113. // req.setRequestHeader('HS-Device-Type', deviceType)
  114. },
  115. success: function (res) {
  116. if (res.code === 200) {
  117. $('.huosdk_tips').show().find('.cont').text('认证成功!')
  118. $('.huosdk_tips .btn').click(function () {
  119. // var urlParams = new URLSearchParams(window.location.search);
  120. // var loginUrl = urlParams.get('login_url');
  121. // var username = urlParams.get('username')
  122. // var isBindPhone = urlParams.get('is_bind_phone')
  123. var loginUrl = getQueryString('login_url');
  124. var username = getQueryString('username')
  125. var isBindPhone = getQueryString('is_bind_phone')
  126. if (loginUrl) {
  127. var loginHref = loginUrl + '?is_back_from_auth=true&username=' + username
  128. if (isBindPhone) {
  129. loginHref += '&is_bind_phone=true'
  130. } else {
  131. loginHref += 'is_back_from_auth=true'
  132. }
  133. location.href = loginHref
  134. } else {
  135. window.parent.postMessage({
  136. type: 'identify.success'
  137. // type: 'frame.close'
  138. }, '*')
  139. $('#next').click()
  140. /*关闭窗口*/
  141. // window.huo && huo.closeWeb();
  142. }
  143. })
  144. window.identify_status = 2;
  145. $('.float_pop-outer').hide()
  146. /*传递身份证信息到客户端*/
  147. if (skip) return
  148. window.huo && huo.setIdentify(JSON.stringify({
  149. id_card: res.data.id_card, /*身份证信息*/
  150. real_name: res.data.real_name, /*身份证名称*/
  151. is_auth: $('[name=game_auth]').val(), /*认证模式*/
  152. birthday: res.data.birthday, /*用户生日*/
  153. status: 2
  154. }));
  155. } else {
  156. $('.huosdk_tips').show().find('.cont').text(res.msg);
  157. }
  158. }
  159. })
  160. })
  161. $('#bindMobile').click(function () {
  162. var token = window.sessionStorage.getItem('huosdk_HS-Token') || ''
  163. var mobile = $('[name="mobile"]').val();
  164. var code = $('[name="code"]').val();
  165. var password = $('[name="password"]').val();
  166. if (mobile == "") {
  167. $('.huosdk_tips').show().find('.cont').text('请输入手机号码');
  168. return;
  169. }
  170. if (code == "") {
  171. $('.huosdk_tips').show().find('.cont').text('请输入验证码');
  172. return;
  173. }
  174. if (password == "") {
  175. $('.huosdk_tips').show().find('.cont').text('请输入密码');
  176. return;
  177. }
  178. if (!token) {
  179. token = $('[name="token"]').val();
  180. }
  181. var data = {
  182. format: 'json',
  183. token: token,
  184. 'sms-type': 6,
  185. app_id: "{$app_id}",
  186. device_id: "{$device_id}",
  187. password:password,
  188. 'sms-mobile': mobile,
  189. 'sms-code': code
  190. }
  191. var sign = ''
  192. for (var key in data) {
  193. sign += '&' + key + '=' + data[key]
  194. }
  195. sign = sign.substr(1)
  196. sign = ('POST&' + encodeURIComponent('wap/identify/bind/post') + '&' + encodeURIComponent(sign) + '&' + token).replace(/\(/g, '%28').replace(/\)/g, '%29')
  197. data.sign = md5(sign).toString()
  198. $.ajax({
  199. url: '/wap/identify/bind/post',
  200. method: 'post',
  201. data: data,
  202. success: function (res) {
  203. if (res.code === 200) {
  204. if (res.data && res.data.url) {
  205. window.location.replace(res.data.url)
  206. } else {
  207. try {
  208. window.huo.completeAuth()
  209. } catch (err) {
  210. _self.huoAlert(err)
  211. }
  212. try {
  213. window.parent.postMessage({
  214. type: 'identify.success'
  215. }, '*')
  216. }catch(e){
  217. }
  218. }
  219. try {
  220. window.parent.postMessage({
  221. type: 'bindMobile.success'
  222. }, '*')
  223. }catch(e){
  224. }
  225. } else {
  226. $('.huosdk_tips').show().find('.cont').text(res.msg);
  227. }
  228. }
  229. })
  230. })
  231. $('#next').click(function () {
  232. // var urlParams = new URLSearchParams(window.location.search);
  233. // var loginUrl = urlParams.get('login_url');
  234. // var username = urlParams.get('username')
  235. // var isBindPhone = urlParams.get('is_bind_phone')
  236. var loginUrl = getQueryString('login_url');
  237. var username = getQueryString('username')
  238. var isBindPhone = getQueryString('is_bind_phone')
  239. if (loginUrl) {
  240. var loginHref = loginUrl + '?is_back_from_auth=true&username=' + username
  241. if (isBindPhone) {
  242. loginHref += '&is_bind_phone=true'
  243. }
  244. location.href = loginHref
  245. } else {
  246. window.parent.postMessage({
  247. type: 'frame.close'
  248. }, '*');
  249. /*关闭窗口*/
  250. if (skip) {
  251. } else {
  252. window.huo && huo.closeWeb();
  253. }
  254. }
  255. if (skip) {
  256. return
  257. }
  258. /*传递身份证信息到客户端*/
  259. if (window.identify_status == 1) {
  260. window.huo && huo.setIdentify(JSON.stringify({
  261. id_card: '', /*身份证信息*/
  262. real_name: '', /*身份证名称*/
  263. is_auth: $('[name=game_auth]').val(), /*认证模式*/
  264. birthday: '', /*用户生日*/
  265. status: 1
  266. }));
  267. }
  268. })
  269. $('.ic_off').click(function () {
  270. var identify_url='{$identify_url}';
  271. if(identify_url){
  272. window.location.replace(identify_url);
  273. return;
  274. }
  275. try {
  276. window.parent.postMessage({
  277. type: 'frame.close'
  278. }, '*');
  279. } catch (e) {
  280. }
  281. try {
  282. window.huo.completeAuth()
  283. } catch (err) {
  284. // $('.huosdk_tips').show().find('.cont').text(err)
  285. }
  286. })
  287. $('.showPwd').click(function () {
  288. $(this).hide()
  289. $('.hidePwd').show()
  290. $('#password').attr('type', "text")
  291. })
  292. $('.hidePwd').click(function () {
  293. $(this).hide()
  294. $('.showPwd').show()
  295. $('#password').attr('type', "password")
  296. })
  297. $('.send').click(function () {
  298. var mobile = $('[name="mobile"]').val();
  299. if (mobile == "") {
  300. $('.huosdk_tips').show().find('.cont').text('请输入手机号码');
  301. return;
  302. }
  303. getSms(mobile)
  304. })
  305. function getSms(mobile) {
  306. var token = window.sessionStorage.getItem('huosdk_HS-Token') || ''
  307. if (!token) {
  308. token = $('[name="token"]').val();
  309. }
  310. // var deviceType = window.sessionStorage.getItem('huosdk_HS-Device-Type')
  311. var data = {
  312. format: 'json',
  313. token: token,
  314. 'sms-type': 6,
  315. app_id: "{$app_id}",
  316. 'sms-mobile': mobile
  317. }
  318. var sign = ''
  319. for (var key in data) {
  320. sign += '&' + key + '=' + data[key]
  321. }
  322. sign = sign.substr(1)
  323. sign = ('POST&' + encodeURIComponent('wap/identify/sms/send') + '&' + encodeURIComponent(sign) + '&' + token).replace(/\(/g, '%28').replace(/\)/g, '%29')
  324. data.sign = md5(sign).toString()
  325. $.ajax({
  326. url: '/wap/identify/sms/send',
  327. method: 'post',
  328. data: data,
  329. success: function (res) {
  330. if (res.code === 200) {
  331. $('.huosdk_tips').show().find('.cont').text('发送验证码成功');
  332. var second = 60
  333. $(".send").prop('disabled', true)
  334. var timer = setInterval(function () {
  335. second--
  336. if (second == 0) {
  337. $('.send').text('发送验证码')
  338. clearInterval(timer)
  339. $('.send').removeAttr("disabled");
  340. } else {
  341. $('.send').text('时间('+second+')')
  342. }
  343. }, 1000)
  344. } else {
  345. $('.huosdk_tips').show().find('.cont').text(res.msg || '发送验证码失败');
  346. }
  347. }
  348. })
  349. }
  350. $(function () {
  351. /*隐藏APP标题栏*/
  352. window.huo && huo.setTitleVisibility(0);
  353. })
  354. </script>
  355. </body>
  356. </html>