index.html 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  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/identify.css" rel="stylesheet">
  8. </head>
  9. <body>
  10. <div class="float_pop-outer">
  11. <div class="float_pop-inner float_auth">
  12. <h4 class="float_pop-tit">实名认证</h4>
  13. <div class="float_pop-con">
  14. 根据国家规定,游戏用户需要进行实名认证。
  15. <span class="float_auth-msg"> · 信息仅用于认证且绝对保密</span>
  16. <span class="float_auth-msg"> · 未成年人游戏支付额度有限制</span>
  17. <p class="float_auth-item">
  18. <label>
  19. <i class="icon_user"></i>
  20. <input name="realname" type="text" placeholder="请输入您的真实姓名">
  21. </label>
  22. </p>
  23. <p class="float_auth-item">
  24. <select name="type">
  25. <foreach name="$type['list']" item="list">
  26. <option value="{$list.type_id}">{$list.type_name}</option>
  27. </foreach>
  28. </select>
  29. </p>
  30. <p class="float_auth-item">
  31. <label>
  32. <i class="icon_card"></i>
  33. <input name="idcard" type="text" placeholder="请输入您的证件号码">
  34. </label>
  35. </p>
  36. </div>
  37. <div class="float_pop-btn">
  38. <!--<a id="next" href="javascript:;" class="float_auth-default">下次认证</a>-->
  39. <a style="max-width: 100%;" id="identify" href="javascript:;" class="float_auth-primary">立即认证</a>
  40. </div>
  41. </div>
  42. </div>
  43. <div class="pop huosdk_tips" style="display: none;">
  44. <div class="pop_body">
  45. <h5>提示信息</h5>
  46. <p class="cont">请输入用户名</p>
  47. <p class="btn">
  48. <a href="javascript:;" onclick="$(this).parents('.pop').hide()">确定</a>
  49. </p>
  50. </div>
  51. </div>
  52. <div class="pop loading" style="z-index: 5;display: none;">
  53. <img style="width: 30px;" src="__STATIC__/h5sdk/images/loading.gif" alt="">
  54. </div>
  55. <script>
  56. function getQueryString(name) {
  57. var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
  58. var r = window.location.search.substr(1).match(reg);
  59. if (r != null) {
  60. return unescape(r[2]);
  61. }
  62. return null;
  63. }
  64. </script>
  65. <script src="__STATIC__/h5sdk/js/jquery.js"></script>
  66. <script src="__STATIC__/h5wap/js/md5.js"></script>
  67. <script>
  68. window.identify_status = 1;
  69. var skip = getQueryString('skip')
  70. console.log(skip);
  71. /*默认为未验证通过*/
  72. $('#identify').click(function () {
  73. var realname = $('[name="realname"]').val().trim()
  74. var type = $('[name="type"]').val()
  75. var idcard = $('[name="idcard"]').val().trim()
  76. if (!realname) {
  77. $('.huosdk_tips').show().find('.cont').text('请输入您的真实姓名')
  78. return false
  79. }
  80. if (!idcard) {
  81. $('.huosdk_tips').show().find('.cont').text('请输入您的证件号码')
  82. return false
  83. }
  84. $('.loading').show();
  85. var token = window.sessionStorage.getItem('huosdk_HS-Token') || ''
  86. var device_type = $('[name="device_type"]').val();
  87. if (!token) {
  88. token = $('[name="token"]').val();
  89. }
  90. // var deviceType = window.sessionStorage.getItem('huosdk_HS-Device-Type')
  91. var data = {
  92. format: 'json',
  93. idcard: idcard,
  94. realname: realname,
  95. token: token,
  96. type: type,
  97. app_id:"{$app_id}",
  98. device_id:"{$device_id}",
  99. device_type: device_type
  100. }
  101. var sign = ''
  102. for (var key in data) {
  103. sign += '&' + key + '=' + data[key]
  104. }
  105. sign = sign.substr(1)
  106. sign = ('POST&' + encodeURIComponent('wap/identify/set') + '&' + encodeURIComponent(sign) + '&' + token).replace(/\(/g, '%28').replace(/\)/g, '%29')
  107. data.sign = md5(sign).toString()
  108. $.ajax({
  109. url: '/wap/identify/set',
  110. method: 'post',
  111. data: data,
  112. beforeSend: function (req) {
  113. // req.setRequestHeader('HS-Lang', 'cn')
  114. // req.setRequestHeader('HS-Token', token)
  115. // req.setRequestHeader('HS-Device-Type', deviceType)
  116. },
  117. success: function (res) {
  118. if (res.code === 200 || res.code==42016) {
  119. $('.loading').hide();
  120. $('.huosdk_tips').show().find('.cont').text('认证成功!')
  121. $('.huosdk_tips .btn').click(function () {
  122. // var urlParams = new URLSearchParams(window.location.search);
  123. // var loginUrl = urlParams.get('login_url');
  124. // var username = urlParams.get('username')
  125. // var isBindPhone = urlParams.get('is_bind_phone')
  126. var loginUrl = getQueryString('login_url');
  127. var username = getQueryString('username')
  128. var isBindPhone = getQueryString('is_bind_phone')
  129. if (loginUrl) {
  130. var loginHref = loginUrl + '?is_back_from_auth=true&username=' + username
  131. if (isBindPhone) {
  132. loginHref += '&is_bind_phone=true'
  133. } else {
  134. loginHref += 'is_back_from_auth=true'
  135. }
  136. location.href = loginHref
  137. } else {
  138. window.parent.postMessage({
  139. type: 'identify.success'
  140. // type: 'frame.close'
  141. }, '*')
  142. next();
  143. /*关闭窗口*/
  144. // window.huo && huo.closeWeb();
  145. }
  146. })
  147. window.identify_status = 2;
  148. $('.float_pop-outer').hide()
  149. /*传递身份证信息到客户端*/
  150. if (skip) return
  151. window.huo && huo.setIdentify(JSON.stringify({
  152. id_card: res.data.id_card, /*身份证信息*/
  153. real_name: res.data.real_name, /*身份证名称*/
  154. is_auth: $('[name=game_auth]').val(), /*认证模式*/
  155. birthday: res.data.birthday, /*用户生日*/
  156. status: 2
  157. }));
  158. setTimeout(function () {
  159. try {
  160. window.huo.completeAuth()
  161. } catch (err) {
  162. // _self.huoAlert(err)
  163. }
  164. }, 1000)
  165. }else if (res.code === 42015) {
  166. $('.loading').hide();
  167. window.location.href = res.data.url
  168. }else if (res.code === 42017) {
  169. setTimeout(() => {
  170. $('#identify').trigger('click')
  171. }, 10000)
  172. }else{
  173. $('.loading').hide();
  174. $('.huosdk_tips').show().find('.cont').text(res.msg);
  175. }
  176. }
  177. })
  178. })
  179. function next() {
  180. // var urlParams = new URLSearchParams(window.location.search);
  181. // var loginUrl = urlParams.get('login_url');
  182. // var username = urlParams.get('username')
  183. // var isBindPhone = urlParams.get('is_bind_phone')
  184. var loginUrl = getQueryString('login_url');
  185. var username = getQueryString('username')
  186. var isBindPhone = getQueryString('is_bind_phone')
  187. if (loginUrl) {
  188. var loginHref = loginUrl + '?is_back_from_auth=true&username=' + username
  189. if (isBindPhone) {
  190. loginHref += '&is_bind_phone=true'
  191. }
  192. location.href = loginHref
  193. } else {
  194. window.parent.postMessage({
  195. type: 'frame.close'
  196. }, '*');
  197. /*关闭窗口*/
  198. if (skip) {
  199. } else {
  200. window.huo && huo.closeWeb();
  201. }
  202. }
  203. try{
  204. window.huo.completeAuth()
  205. }catch(e){
  206. }
  207. if (skip) {
  208. return
  209. }
  210. /*传递身份证信息到客户端*/
  211. if (window.identify_status == 1) {
  212. $('.huosdk_tips').show().find('.cont').text('执行')
  213. return false;
  214. window.huo && huo.setIdentify(JSON.stringify({
  215. id_card: '', /*身份证信息*/
  216. real_name: '', /*身份证名称*/
  217. is_auth: $('[name=game_auth]').val(), /*认证模式*/
  218. birthday: '', /*用户生日*/
  219. status: 1
  220. }));
  221. }
  222. }
  223. $(function () {
  224. /*隐藏APP标题栏*/
  225. window.huo && huo.setTitleVisibility(0);
  226. })
  227. </script>
  228. </body>
  229. </html>