绑定时 点击绑定按钮没反应
来源: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
但点击绑定后:

点了绑定按钮后,没反应.....
写回答
2回答
-
www974
提问者
2017-12-05
if( Member::findOne([ 'mobile' => $mobile]) ){ return $this->renderJSON([], "手机号码已注册,请直接使用手机号码登录~~", -1); }即使mobile已经存在member表,也不会进入这个方法。源码中没有return ,我加上return还是不行
00 -
编程浪子
2017-12-04
打开 网页开发者工具,查看网络返回值
032017-12-05
相似问题