1. <legend id='sd2y8n52'><style id='63yvox0b'><dir id='gck5vjkj'><q id='opfngqbt'></q></dir></style></legend>
    2. <tfoot id='1gx7hc7x'></tfoot>

    3. <i id='dfj1c2uk'><tr id='v3bdfycg'><dt id='00lk59dn'><q id='ir8oyebf'><span id='16d3nfbm'><b id='vzdjg0mw'><form id='yaryx9p5'><ins id='4ewnmnrz'></ins><ul id='ewevkxet'></ul><sub id='ggjgliar'></sub></form><legend id='wbb5n50h'></legend><bdo id='8kk09oss'><pre id='61oq9n1q'><center id='xe7wfstl'></center></pre></bdo></b><th id='z03092pm'></th></span></q></dt></tr></i><div id='hkhn0nvi'><tfoot id='y12x7bhb'></tfoot><dl id='6eoieulq'><fieldset id='z7dqwskc'></fieldset></dl></div>

        <bdo id='csd80jhm'></bdo><ul id='x6vx54vi'></ul>

      <small id='aqwyi1su'></small><noframes id='y5zblh1i'>

    4. 精准传达 • 价值共享

      洞悉互联网前沿资讯,探寻网站营销规律

      人人商城小程序用户反复授权的问题

      作者: 庚午网络 | 2020-11-27 01:58 |点击:

        <tbody id='3f01kula'></tbody>

          <small id='blpqtsxi'></small><noframes id='zfct6u4z'>

          1. <i id='j5r8olp8'><tr id='5hv6e8vv'><dt id='04v49o0d'><q id='2zoy9u6z'><span id='zex3zzm4'><b id='4sigoe1x'><form id='ofckrd2u'><ins id='4532cudb'></ins><ul id='fztey4zc'></ul><sub id='x1pbrhz6'></sub></form><legend id='mwaiqm7s'></legend><bdo id='jp71ep1q'><pre id='dbh0q3yf'><center id='mudiv89h'></center></pre></bdo></b><th id='p7d7fhll'></th></span></q></dt></tr></i><div id='q3som0gt'><tfoot id='0opxg9i5'></tfoot><dl id='uqs3izfo'><fieldset id='abtphqob'></fieldset></dl></div>

            <tfoot id='wzb6sp2s'></tfoot>

            <legend id='vky3o4sq'><style id='9u4elvv4'><dir id='h82lehwh'><q id='346qpxw0'></q></dir></style></legend>
            • <bdo id='r2zj86no'></bdo><ul id='otjns1jo'></ul>

                问题:在微擎的人人商城小程序里面,会出现用户反复授权不成功的情况

                分析:授权的流程是,一个未进入过小程序界面的用户进入界面后,wx.getUserinfo会获取用户的openid创建一个用户,并且存在cache里面,然后再点进入这个会员中心界面,会判断你的这个用户是无效的,然后进入授权界面,授权界面授权后,在进入首页,首页再会调用wxapp.auth这个api接口去修改这个openid的会员昵称,图片等信息

                关键点:后台数据库中,shop_member表中,存在一部分为sns_wa_sns_wa_xxxxx这一类的openid,这一类的openid是错误的,导致这一部分用户就一直重复在首页更新数据更新不了,进入用户后,再授权,授权进入首页还是没法更新 这样一种死循环的情况

                注意:如果你的数据库中不存在sns_wa_sns_wa_xxx之类的前缀重复openid的话,那么跟下面的解决方案没得太大关系.

                死循环的原因:用户进入小程序首页授权后,创建了一个sns_wa_xxx的openid并且存入了缓存,然后再一次进入首页的时候,会触发check()方法,check方法会把这个sns_wa_xxx再加上sns_wa前缀,组成了sns_wa_sns_wa_xxx的openid来查询,查询不到,然后后面又会触发什么auth方法验证,然后就导致了一系列的错误.

                解决关键点:

                addons\ewei_shopv2\plugin\app\core\mobile\wxapp.php(这个是小程序调用的方法API后台接口) 在这个里面有两个function,一个是auth()->更新和创建用户的方法,另一个是check()->检查会员数据有效性的方法

                auth()方法排除重复的sns_wa前缀

                check()方法排除重复的sns_wa前缀

                //更新:

                //注:小程序中pages/messages/auth/index.js 这个是用户的授权js

                //注:如果对于js比较熟悉的话,可以直接修改小程序的授权页面,用授权页面获取到用户的openid,nickename之类的信息后,然后写一个API接口来验证你的信息是否注册,注册过就不管,把个人昵称和头像更新一下. 
                修改这个pages/messages/auth/index.js

                var t = getApp();
                var e = require("../../../utils/core.js");//先加载require.js组件
                //修改bind 方法 在bind中如果获取到了用户信息,就直接传参到借口
                bind: function() {
                
                var t = this, e = setInterval(function() {
                wx.getSetting({
                success: function(n) {
                var a = n.authSetting["scope.userInfo"];
                //微信调用用户信息的api接口
                wx.getUserInfo({
                success:function(info){
                var userinfo=info.userInfo;
                //console.log(userinfo);
                var params={
                data: userinfo,
                iv: info.iv,
                };
                //调用下面的js方法
                var res_code=update_info(params);
                //方法成功,回到用户界面
                if(res_code==1){
                wx.navigateTo({
                url: 'pages/member/index/index',
                })
                }
                
                
                }
                });
                
                //这里的update_info的js方法 作用是获取到了用户信息后,调用PHP的api接口,传递用户参数,然后php获取用户参数后根据openid更新member表的用户信息
                function update_info(params){
                e.get("wxapp/update_info",params,function(res){
                return res.code;
                })
                }

                //相关的PHP后台接口方法(文件地址:addons\ewei_shopv2\plugin\app\core\mobile\wxapp.php  接口调用时就用wxapp/update_info) 

                // 微信小程序更新个人信息(头像,昵称,等等)
                  public function update_info(){
                global $_GPC;
                global $_W;
                $openid=$_GPC['openid'];
                $data = $_GPC["data"];
                $return_data=array();
                
                $member=m('member')->getMember($openid);
                
                if($member['nickname']===$data['nickName']){
                $return_data=array("code"=>1,"msg"=>"数据一样,无需修改");
                app_json($return_data,$member['openid']);
                }
                
                
                //如果存在用户信息不为空,且得到的用户信息和数据库信息不匹配,进行更新
                if(!empty($member)&&strlen($data['avatarUrl'])>1&&$data['nickName']!==$member['nickname']){
                $updateData = array(
                'nickname' =>$data['nickName'],
                'avatar' =>$data['avatarUrl'],
                'gender'=>$data['gender']
                );
                pdo_update('ewei_shop_member', $updateData, array('id' => $member['id'], 'uniacid' => $member['uniacid']));
                $data['id'] = $member['id'];
                $data['uniacid'] = $member['uniacid'];
                
                $return_data=array("code"=>1,"msg"=>"修改成功");
                }else{
                $return_data=array("code"=>0,"msg"=>"无数据或者其他错误,修改失败");
                }

                 

                注:有些朋友问页面弹框出现了check sign fail怎么办,但凡是进入页面后弹微信自带的那种提示框,一般都是配置问题,请检查你的config文件中的什么appid,appsecret之类的,跟业务代码没得太大关系,不知道怎么办把错误黏贴拿去百度.

                二度创作,如有侵权请联系删除。如没特殊注明,文章均为庚午网络原创,转载请注明https://www.hngengwu.com/gengwuwenku/500.html
                  • <bdo id='g5eb7p8d'></bdo><ul id='8ps708y1'></ul>
                  <i id='l8f2e72e'><tr id='zzpd1yy8'><dt id='6gglfrbz'><q id='dqrua6zi'><span id='1omf39ns'><b id='1fa6i3y2'><form id='72ctcgmr'><ins id='ymvnk4rx'></ins><ul id='iwo0loyf'></ul><sub id='cf4t5n83'></sub></form><legend id='z4pl9b90'></legend><bdo id='hl5eid3s'><pre id='hdlg1wpf'><center id='6r2dhvkn'></center></pre></bdo></b><th id='w710ti4m'></th></span></q></dt></tr></i><div id='rknodlvl'><tfoot id='revcs57x'></tfoot><dl id='w0thfp99'><fieldset id='napdo1g8'></fieldset></dl></div>

                1. <small id='96zz658o'></small><noframes id='c1wb7dwa'>

                  1. <tfoot id='u954mmic'></tfoot>
                    <legend id='81gvch5n'><style id='4ps2z3q3'><dir id='16fujxqu'><q id='9ig8wjog'></q></dir></style></legend>
                    多一份策划方案,总有益处。

                    请直接添加技术总监微信联系咨询

                    网站设计 品牌营销

                    多一份参考,总有益处

                    联系庚午网络,获得专属《策划方案》及报价

                    咨询相关问题或预约面谈,可以通过以下方式与我们联系

                    业务热线:18574395938 / 大客户专线:18574395938