微信(WeChat)是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序,由张小龙所带领的腾讯广州研发中心产品团队打造 [2] 。微信支持跨通信运营商、跨操作系统平台通过网络快速发送免费(需消耗少量网络流量)语音短信、视频、图片和文字,同时,也可以使用通过共享流媒体内容的资料和基于位置的社交插件“摇一摇”、“漂流瓶”、“朋友圈”、”公众平台“、”语音记事本“等服务插件。
本文主要和大家分享微信如何获取openid,首先要明确一点,你要用户授权,是需要引导用户到你的授权页面的。
1、你得有个链接
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
说明:
APPID是你的微信公众号ID,以wx开头
URI为你的授权入口,一般是微信公众号指向的主域名下,我这里放在了:http://www.xxoo.com/home/index/test
注意转义,所以 URI=http%3A%2F%2Fwww.xxoo.com%2Fhome%2Findex%2Ftest
2、这个链接可以生成二维码给人家扫,比如到这个网站:https://cli.im/
把上面替换好的链接填进去,生成即可。
3、获取openid的代码
function test(){
$code=$_GET['code'];
//echo htmlspecialchars($code);exit;
$appid='wx**********'; //APPID
$appsecret='**************'; //APP密钥
$url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$appsecret.'&code='.$code.'&grant_type=authorization_code';
$header [] = "content-type: application/json; charset=UTF-8";
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $url );
//请求的方式是post
curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, "GET" );
// 禁用后cURL将终止从服务端进行验证
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );
//不检查证书
curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, FALSE );
//发送头部字段
curl_setopt ( $ch, CURLOPT_HTTPHEADER, $header );
//告诉对方 自己的浏览器型号
curl_setopt ( $ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)' );
//即表示自动进行跳转抓取(如果URL发生了302重定向)继续抓取
curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );
//自动重定向开启
curl_setopt ( $ch, CURLOPT_AUTOREFERER, 1 );
//发送的post参数
//curl_setopt ( $ch, CURLOPT_POSTFIELDS, $param );
//得到的结果不显示在屏幕上,作为变量结果储存
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
$res = curl_exec ( $ch );
//如果运行错误,返回一个错误号
$flat = curl_errno ( $ch );
if ($flat) {
$data = curl_error ( $ch );
}
curl_close ( $ch );
//拿到了返回结果后json格式转化为可以使用的数组格式
$res = json_decode ( $res, true );
//$access_token=$res['access_token'];
$openid=$res['openid'];
//跳转到抽奖页面
header('Location: http://wx.xxoo.com/test/index/index/openid/'.$openid);
}
微信提供公众平台、朋友圈、消息推送等功能,用户可以通过“摇一摇”、“搜索号码”、“附近的人”、扫二维码方式添加好友和关注公众平台,同时微信将内容分享给好友以及将用户看到的精彩内容分享到微信朋友圈。