php微信用户绑定网站用户

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

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即可。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值