WordPress小程序开发如何实现微信授权登录呢?下面模板兔给出简单的代码:
小程序端js:
wx.login({ success: function (res) { if (res.code) { wx.request({ url: app.globalData.appUrl, data: { code: res.code, }, method: 'POST', header: { //'content-type': 'application/json' 'content-type': 'application/x-www-form-urlencoded' }, success: function (res2) { wx.hideToast(); console.log(res2.data); if (res2.data.errCode == '0'){ wx.setStorageSync('UserId', res2.data.id); wx.setStorageSync('UserUnionId', res2.data.unionid); that.setData({ userId: res2.data.id, userAvatarUrl: res2.data.avatar, userNickname: res2.data.nickname}) wx.reLaunch({ url: '../user/user' }) }else{ wx.showToast({ title: '登录失败', icon: 'none', duration: 3000 }); } }, fail: function(){ wx.showToast({ title: '登录失败', icon: 'none', duration: 3000 }); } }) } } })
服务端php:
$appid = ''; $appsecret = ''; $code = $_POST['code']; $jscode2session = file_get_contents("https://api.weixin.qq.com/sns/jscode2session?appid=".$appid."&secret=".$appsecret."&js_code=".$code."&grant_type=authorization_code"); $arr = json_decode($jscode2session, true); //var_dump($arr); $result = array(); $result['errMsg'] = ''; $result['errCode'] = 0; if($arr['errcode']){ $result['errCode'] = $arr['errcode']; $result['errMsg'] = $arr['errmsg']; }else{ $openid = $arr['openid']; $unionid = $arr['unionid']; if($unionid){ $user_id = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE weixin_unionid='".esc_sql($unionid)."'"); if($user_id){ $result['id'] = $user_id; $cuser = get_user_by('id',$user_id); $result['nickname'] = $cuser->nickname; }else{ $pass = wp_create_nonce(rand(10,1000)); $user_login = "u".mt_rand(1000,9999).mt_rand(1000,9999).mt_rand(1000,9999); $userdata = array( 'user_login' => $user_login, 'user_pass' => $pass ); $user_id = wp_insert_user( $userdata ); if ( !is_wp_error( $user_id ) ) { $update = $wpdb->query("UPDATE $wpdb->users SET weixin_unionid = '".esc_sql($unionid)."' WHERE ID = '$user_id'"); if($update){ $result['id'] = $user_id; $cuser = get_user_by('id',$user_id); $result['nickname'] = $cuser->nickname; }else{ $result['errMsg'] = '绑定用户失败'; $result['errCode'] = 1; } }else{ $result['errMsg'] = '注册用户失败'; $result['errCode'] = 1; } } }else{ $result['errMsg'] = '获取用户信息失败'; $result['errCode'] = 1; } $result['openid'] = $openid; $result['unionid'] = $unionid; } echo json_encode($result);
以上就是微信小程序wordpress开发微信登录的全部内容!
0 个评论