前期工作
调用微信公众号接口前,请先熟悉微信公众平台开发的前期准备工作与接口调用模式,具体详情请参考:
https://mp.weixin.qq.com/wiki
1、获取access token
调用方法
weixin::get_access_token()
相关参数
无
调用实例
$access_token = weixin::get_access_token();
2、网页授权(获取用户openid)
该接口网页授权模式为snsapi_base,并且返回用户的openid,在得到用户openid后缓存起来,以便后续使用。注意:不要将该方法作为获取openid的手段。
调用方法
weixin::get_openid()
相关参数
无
调用实例
启用网页授权,并将得到openid缓存起来。
$openid = weixin::get_openid(); $_SESSION['openid] = $openid;
3、POST提交json类型数据
发起微信公众号接口可使用该方法,并将请求数据原样返回(JSON)。
调用方法
weixin::post2json()
相关参数
共2个必要参数,具体如下:
1、待提交的json数据
2、提交的接口网址,不可带任何参数,包括“access_token=xxx”
调用实例
发送消息模板
$json = '{"touser": "abc", "template_id": "uWZSO", "url": "www.mlecms.com"}'; $send_result = weixin::post2json($json,"https://api.weixin.qq.com/cgi-bin/message/template/send")); echo $send_result; // 打印结果为接口返回的原样数据,如:{"errcode": 40001, "errmsg": "invalid credential, access_token is invalid or not latest"}
4、POST上传文件
调用方法
weixin::post2json_file()
相关参数
共1个必要参数,具体如下:
1、待提交的数据
2、提交的接口网址
调用实例
发送消息模板
$data = array('media' => new CURLFile('demo.jpg')); $url = "https://api.weixin.qq.com/customservice/kfaccount/uploadheadimg?access_token=abc&kf_account=123"; weixin::json2array(weixin::post2json_file($data,$url));
5、数组转JSON格式
与json_encode()方法类似,可将数组转换成JSON格式,并且处理中文转码问题,如无特殊需求,并不建议使用该方法。
注:PHP5.4+ 版本可直接使用 json_encode($data,JSON_UNESCAPED_UNICODE) ,无需使用该方法。
调用方法
weixin::array2json()
相关参数
共1个必要参数,具体如下:
1、待转换的数组
调用实例
将数据转换JSON,并发送消息模板
$data = array( "touser" => "abc", "template_id" => "uWZSO", "url" => "www.mlecms.com" ); $send_result = weixin::post2json(weixin::array2json($data),"https://api.weixin.qq.com/cgi-bin/message/template/send"));
6、对象转数组
调用方法
weixin::object2array()
相关参数
共1个必要参数,具体如下:
1、待转换的对象
调用实例
weixin::object2array($obj);
7、设置cookie缓存
该方法区别于setcookie()函数,使用缓存文件保存到服务器中,用于缓存全局数据,如:access token、微信用户信息等。
调用方法
weixin::set_cookie()
相关参数
共2个必要参数,2个可选参数,具体如下:
1、变量名
2、变量值
3、文件名,默认为用户openid,如果缓存全局通用数据需另起文件名
4、有效期(秒),默认为3200秒
调用实例
1、保存用户微信信息到服务端cookie文件中,并记录保存时间。
// 获取微信用户信息 $wxuser = weixin::get_fans_info('abc'); // 保存微信用户信息 weixin::set_cookie('wxuser',$wxuser); // 记录保存微信用户信息的时间 weixin::set_cookie('wxuser_updatetime',time());
2、缓存access token,有效时间为7200秒
weixin::set_cookie('access_token','aaa','access_token_time');
8、获取cookie缓存
获取由 weixin::set_cookie() 方法缓存的所有数据,返回一维数组。
调用方法
weixin::get_cookie()
相关参数
共1个可选参数,具体如下:
1、文件名,默认为当前用户openid
调用实例
1、获取当前用户的cookie
$cookie = weixin::get_cookie(); echo $cookie['wxuser']['openid'];
2、获取缓存于cookie的access token
$cookie = weixin::get_cookie('access_token_time'); echo $cookie['access_token'];
9、file_get_contents 替代函数
如果服务器开通了curl扩展,则使用curl发起请求,否则使用file_get_contents()函数。
调用方法
weixin::file_get_contents()
相关参数
共1个必选参数,具体如下:
1、待请求的url
调用实例
weixin::file_get_contents('http://www.mlecms.com')
10、返回码转换请求结果
可以将微信公众号接口返回的"errcode"转换成错误信息
调用方法
weixin::code2msg()
相关参数
共1个必选参数,具体如下:
1、微信接口返回码
调用实例
发送模板消息,并将返回码转换成错误信息
$data = array( "touser" => "abc", "template_id" => "uWZSO", "url" => "www.mlecms.com" ); $send_result = weixin::post2json(weixin::array2json($data),"https://api.weixin.qq.com/cgi-bin/message/template/send")); $msg = weixin::code2msg($send_result['errcode']); echo $msg;