php微信用户绑定网站用户实现原理:因为对于每个公共号,每个微信用户的open_id是固定不变的,也就是说可以利用网站用户id与微信用户的open_id建立一一对应关系。废话不多说,直接看代码:
数据库设计如下:
当用户关注的时候,当用户信息添加到微信用户表
case 'SUBSCRIBE': //用户订阅事件
$openid = $this->xmlObj->FromUserName;
$UserController=new UserController();
$rs=$UserController->addUser($openid);
添加之前判断数据表中是否存在该用户信息,没有则添加,否则更新
获取用户信息的方式如下:
$token=$this->getTooken();
$url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid={$openid}&lang=zh_CN";
$userInfo = $this->https_request($url);
其实,是一个很关键的步骤,再绑定页面提交数据时候,如何获取用户的openid呢?都知道我们是通过openid来建立绑定呢?但是微信怎样才能让我获取用户的openid呢?
这就需要进行oauth认证 ,即:网页授权获取用户基本信息
再次我将其封装在方法里:
我选择的是:
scope为snsapi_userinfo,也是静默授权,用户无感知。
/**
* 通过code值获取open_id
* @param unknown $code
*/
public function getOpenIdByCode($code){
$appid=$this->appid;
$secret=$this->appsecret;
$queryUrl='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';
$res=$this->https_request($queryUrl);
$openid = $res['openid'];
return $openid;
}
最后通过open_id检索用户表,将该行字段中uid改为需要绑定的uid即可。

本文详细介绍了PHP环境下实现微信用户与网站用户绑定的技术原理,包括数据库设计、用户信息添加与更新过程,以及通过OAuth认证获取用户openid的方法。重点突出了一键绑定操作的关键步骤。
2615

被折叠的 条评论
为什么被折叠?



