H5校验本机号码前端

请在关闭Wifi的时候测试,否则不容易成功

流程:

申请号码认证服务

后端:传入域名后端获取授权accessToken和jwtToken 【getAuthToken】

前端:身份鉴权获传入accessToken和jwtToken【checkAuthAvailable】成功

前端:再获取根据【getVerifyToken】获取spToken

后端:传入手机号和spToken请求【verifyPhoneWithToken】接口校验是否本机流量卡号码。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, viewport-fit=cover">
        <title>手机号一键获取</title>
        <script src="numberAuth-web-sdk.js"></script>
        <script src="https://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
        <script src="https://cdn.bootcss.com/vConsole/3.3.4/vconsole.min.js"></script>
        <script>
            const vConsole = new VConsole()
        </script>
    </head>
    <body>
        <style>
            *{ margin:0px; padding:0px; box-sizing: border-box;}
            *:focus{ outline: none;}
            body{ padding:20px; font-family: Microsoft Yahei;}
        </style>
        
        
        
        <input type="text" id="PhoneNumber" style="border:1px solid #eee; padding:10px; width:100%;" placeholder="请输入手机号" >
        <button type="button" onclick="getphone(1)" style="border:0; padding:12px 20px; background:#f60; display:block; width:100%; color:#fff; display:block; margin:20px 0; border-radius:5px;">本机号码验证</button>
        <!-- <button type="button" onclick="getphone(2)" style="border:0; padding:12px 20px; background:#f60; display:block; width:100%; color:#fff; display:block; margin:20px 0; border-radius:5px;">一键取号</button>
     -->    
        <textarea id="prePage" style="height:500px; width:100%; padding:12px; border:1px solid #eee; margin-top:12px;"></textarea>
    
        <script>
            var phoneNumberServer = new PhoneNumberServer();    
                    
            let phone = ''
            function getphone(type){
                 $("#prePage").append("开始获取TOKEN")
                $.ajax({
                    url:"/getAuthToken",                    
                    data:JSON.stringify({origin:'https://www.xxx.com',url:'https://www.xxx.com/'}),
                    dataType:'json',
                    type:'post',
                    headers: {"Content-Type": "application/json;charset=utf-8"},
                    success:function(res){
                     if(res.status){
                          //$("#prePage").append("[getAuthToken]获取accessToken和jwtToken请求后端接口返回:"+JSON.stringify(res))
                            if(type==1){
                                checkAuthAvailable(res.data.tokenInfo.accessToken, res.data.tokenInfo.jwtToken) //如果是校验手机号
                          }else{
                                checkLoginAvailable(res.data.tokenInfo.accessToken, res.data.tokenInfo.jwtToken) //如果是登录
                            }
                     }else{
                        console.log(r.data)
                     }
                    }
                })
            }
            
            //本机号码检验
            function checkAuthAvailable(accessToken, jwtToken){
                let phoneNumber = $("#PhoneNumber").val()
                if(!phoneNumber){ alert("请输入手机号"); return;}
                 phoneNumberServer.checkAuthAvailable({
                     accessToken,
                     jwtToken,
                     success:function(res){
                         console.log(res)
                         $("#prePage").append("身份鉴权成功")
                         if(res.code == 600000) {
                              phoneNumberServer.getVerifyToken({
                                    success:function(res2){
                                        console.log(res2)
                                        $("#prePage").append("开始获取spToken")
                                        if(res2.code == 600000){
                                             let spToken = res2.spToken
                                             $.ajax({
                                                url:"/verifyPhoneWithToken",                    
                                                data:JSON.stringify({spToken, phoneNumber}),
                                                dataType:'json',
                                                type:'post',
                                                headers: {"Content-Type": "application/json;charset=utf-8"},
                                                success:function(res3){
                                                    console.log(res3)
                                                    $("#prePage").append("根据SpToken和手机号码返回校验结果返回:"+JSON.stringify(res3))
                                                }
                                             })
                                        }
                                    },
                                    error:function(err){
                                     console.log('getVerifyToken:'+err)
                                  }
                                })
                         }
                     },
                     error:function(err){
                         console.log('checkAuthAvailable:'+err)
                     }
                });
            }
            
            
            //授权登录
            function checkLoginAvailable(accessToken,jwtToken){
                //鉴权接口
                let spToken = ""
                phoneNumberServer.checkLoginAvailable({
                        accessToken: accessToken,
                        jwtToken: jwtToken,
                        success:function(res){    
                            console.log("鉴权结果",res)
                            if(res.code===600000){
                                 phoneNumberServer.getLoginToken({
                                     authPageOption: {
                                     navText: '是否为本机号码充值?', //标题
                                     mount: '',  //挂载DIV 默认body
                                     navBackImg: '', 
                                     subtitle: '', // 副标题
                                     isHideLogo: true, // logo显示隐藏
                                     logoImg: '', //LOGO图片
                                     btnText: '是的,我要充值',
                                     agreeSymbol: '', //协议间隔
                                     privacyOne: ['',''], //协议1
                                     privacyTwo: ['',''], //协议2
                                     showCustomView: true,
                                     customView:{
                                         element: '<div class="other-phone" onclick="clickEvent()">不是,更换手机号</div>',
                                         style: '.other-phone{ background: #fff; color: #999; text-align:center; font-size:13px; }',
                                         js: 'function clickEvent(){ alert(666666) }'
                                     },
                                     isDialog: true, // 是否是弹窗样式
                                     manualClose: true, // 是否手动关闭弹窗/授权页
                                     isPrePageType: false, //协议是否前置
                                     isShowProtocolDesc: false,
                                     prePageTypeOption: {
                                         // mount: 'prePage',
                                         //privacyOne: ['条款1', 'https://wap.cmpassport.com/resources/html/contract.html'],
                                         // privacyTwo: ['条款2', 'https://wap.cmpassport.com/resources/html/contract.html'],
                                         // showCustomView: true,
                                         // agreeSymbol: '及',
                                         // tips: '<div>tips</div>',
                                         // btnText: '',
                                     }
                                 },
                                 success: res => {
                                     console.log("获取TOKEN结果",res);
                                     if(code===60000){
                                         phoneNumberServer.closeLoginPage(); // 手动关闭授权页时调用关闭页面
                                         res.clearInput(); // 清空输入框并将光标置于第一个输入框
                                         res.focusOn(2); // 将光标置于第1-4个输入框
                                         // 拿到spToken去服务端发起token验证
                                         if(res.spToken){ spToken = res.spToken }                                     
                                     }
                                 },error: res => {
                                        console.log(res)
                                         // 提示用户关闭wifi或者尝试其他登录方案
                                 },watch: function(status, data){
                                         // console.log('-----------------status', status, data);
                                         // 当status为2时整个流程结束,比如如果按钮有loading状态此处置为false
                                         //1:授权页拉起。
                                         //2:点击返回按钮。
                                         //3:点击协议。
                                         //5:点击登录按钮。
                                         //6:获取掩码成功。获取此状态时,需了解当前使用的是哪个运营商网络,在预授权模式中,协议和登录按钮需此时展示。
                                         if(status==5){
                                             if(spToken){
                                                 $.ajax({
                                                    url:"/getPhoneWithToke",                    
                                                    data:JSON.stringify({spToken}),
                                                    dataType:'json',
                                                    type:'post',
                                                    headers: {"Content-Type": "application/json;charset=utf-8"},
                                                    success:function(r2){
                                                     alert(r2)
                                                     if(r2.status){
                                                         phone =    r2.data.Data.Mobile
                                                     }else{
                                                        console.log(r.data)
                                                     }
                                                    }
                                                 })
                                             }
                                         }
                                 },             
                                 });
                            }
                        },
                        error: function(res){
                            console.log(res,'err:checkLoginAvailable')
                        }  
                 });
            }
        </script>
        
        <style>
            *{ margin:0px; padding:0px;}
            body{ font-size:12px;}
            .dialog-type-container .dialog-type-inner-content{  width: 280px !important; border-radius:10px !important; }
            .dialog-type-container .nav .nav-title { }
            .dialog-type-container .number-con-wrap{ padding-top:20px !important;}
            .dialog-type-container .submit-btn{ margin-bottom:15px; width:90% !important; background:#f60}
        </style>
        
    </body>
</html>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
购物商城前端后端模板是一种被广泛使用的网页设计模板,用于创建在线购物商城的网站。前端模板主要负责界面设计和用户交互,后端模板则负责处理数据和逻辑运算。 前端模板通过使用HTML、CSS和JavaScript等技术,可实现商城网站的页面布局、样式设计和用户交互效果。它通常包括首页、商品分类页面、商品详情页面、购物车页面、订单页面等各个模块。前端模板会提供各种UI组件,如轮播图、导航栏、商品列表、搜索框等,以及一些交互功能,如加入购物车、立即购买等按钮。 后端模板主要负责处理前端模板传递过来的数据,并进行后续的逻辑运算和数据库操作。它通常使用Java、PHP、Python等编程语言来编写,通过编写接口,与前端模板进行数据交互。后端模板可以实现用户注册、登录验证、商品信息查询、购物车管理、订单处理等功能。它还可以对用户的操作进行数据校验和安全验证,确保商城网站的数据完整性和安全性。 使用购物商城前端后端模板可以大大简化网站开发过程,提高开发效率。通过使用现成的模板,开发人员只需要修改一些样式和功能细节,就可以快速搭建一个功能完善、界面美观的购物商城网站。同时,模板也具有一定的扩展性,可以根据具体需求添加或修改功能模块。 总之,购物商城前端后端模板是一种方便快捷的网页设计工具,可用于快速搭建购物商城网站,提供良好的用户体验和强大的功能支持,并能满足不同商城的个性化需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值