绑定时 点击绑定按钮没反应

来源:10-6 打造H5和微信多端通用用户绑定功能

www974

2017-12-04

先贴一下相关代码:

 //账号绑定
    public function actionBind(){
        if( \Yii::$app->request->isGet ){
            var_dump($this->getCookie( $this->auth_cookie_current_openid ));
            return $this->render( "bind" );
        }

        $mobile = trim( $this->post("mobile") );
        $img_captcha = trim( $this->post("img_captcha") );
        $captcha_code = trim( $this->post("captcha_code") );
        $date_now = date("Y-m-d H:i:s");

        $openid = $this->getCookie( $this->auth_cookie_current_openid );

        if( mb_strlen($mobile,"utf-8") < 1 || !preg_match("/^[1-9]\d{10}$/",$mobile) ){
            return $this->renderJSON([],"请输入符合要求的手机号码~~",-1);
        }

        if (mb_strlen( $img_captcha, "utf-8") < 1) {
            return $this->renderJSON([], "请输入符合要求的图像校验码~~", -1);
        }

        if (mb_strlen( $captcha_code, "utf-8") < 1) {
            return $this->renderJSON([], "请输入符合要求的手机验证码~~", -1);
        }


        if ( !SmsCaptcha::checkCaptcha($mobile, $captcha_code ) ) {
            return $this->renderJSON([], "请输入正确的手机验证码~~", -1);
        }

        $member_info = Member::find()->where([ 'mobile' => $mobile,'status' => 1 ])->one();

        if( !$member_info ){
            if( Member::findOne([ 'mobile' => $mobile]) ){
                $this->renderJSON([], "手机号码已注册,请直接使用手机号码登录~~", -1);
            }

            $model_member = new Member();
            $model_member->nickname = $mobile;
            $model_member->mobile = $mobile;
            $model_member->setSalt();
            $model_member->avatar = ConstantMapService::$default_avatar;
            $model_member->reg_ip = sprintf("%u",ip2long( UtilService::getIP() ) );
            $model_member->status = 1;
            $model_member->created_time = $model_member->updated_time = date("Y-m-d H:i:s");
            $model_member->save( 0 );
            $member_info = $model_member;
        }

        if ( !$member_info || !$member_info['status']) {
            return $this->renderJSON([], "您的账号已被禁止,请联系客服解决~~", -1);
        }


        if( $openid ){ //用浏览器打开没有openid ,只有用微信打开才有openid
            $bind_info = OauthMemberBind::find()->where([ 'member_id' => $member_info['id'],'openid' => $openid,'type' => ConstantMapService::$client_type_wechat  ])->one();

            var_dump($bind_info);
            if( !$bind_info ){
                $model_bind = new OauthMemberBind();
                $model_bind->member_id = $member_info['id'];
                $model_bind->type = ConstantMapService::$client_type_wechat;
                $model_bind->client_type = "weixin";
                $model_bind->openid = $openid;
                $model_bind->unionid = '';
                $model_bind->extra = '';
                $model_bind->updated_time = $date_now;
                $model_bind->created_time = $date_now;
                $model_bind->save( 0 );
                //绑定之后要做的事情
//                QueueListService::addQueue( "bind",[
//                    'member_id' => $member_info['id'],
//                    'type' => 1,
//                    'openid' => $model_bind->openid
//                ] );
            }
        }

//        if( UtilService::isWechat() && $member_info['nickname']  == $member_info['mobile'] ){
//            return $this->renderJSON([ 'url' => UrlService::buildMUrl( "/oauth/login",[ 'scope' => 'snsapi_userinfo' ] )  ],"绑定成功~~");
//        }
//        //todo设置登录态
//        $this->setLoginStatus( $member_info );
        return $this->renderJSON([ 'url' => UrlService::serverMUrl( "/default/index" )  ],"绑定成功~~");
    }


在网页上测试,因为没有openid ,所以虽然能正常跳转,也会提示“绑定成功”


在手机上测试,可以打印出openid


但点击绑定后:


http://img.mukewang.com/szimg/5a24fe6d0001bfbc10801920.jpg


点了绑定按钮后,没反应.....

写回答

2回答

www974

提问者

2017-12-05

if( Member::findOne([ 'mobile' => $mobile]) ){
    return $this->renderJSON([], "手机号码已注册,请直接使用手机号码登录~~", -1);
}


即使mobile已经存在member表,也不会进入这个方法。源码中没有return ,我加上return还是不行

0
0

编程浪子

2017-12-04

打开 网页开发者工具,查看网络返回值

0
3
www974
这个问题解决了.... 但是还有一段代码有点儿问题,上面截图
2017-12-05
共3条回复

微信服务号+Yii2.0构建商城系统全栈应用

传统PC后端与火热微信结合,打造一个摩登的商业电商系统

757 学习 · 744 问题

查看课程