前期工作
調用微信公眾號接口前,請先熟悉微信公眾平臺開(kāi)發(fā)的前期準備工作與接口調用模式,具體詳情請參考:
https://mp.weixin.qq.com/wiki
1、獲取access token
調用方法
weixin::get_access_token()
相關(guān)參數
無(wú)
調用實(shí)例
$access_token = weixin::get_access_token();
2、網(wǎng)頁(yè)授權(獲取用戶(hù)openid)
該接口網(wǎng)頁(yè)授權模式為snsapi_base,并且返回用戶(hù)的openid,在得到用戶(hù)openid后緩存起來(lái),以便后續使用。注意:不要將該方法作為獲取openid的手段。
調用方法
weixin::get_openid()
相關(guān)參數
無(wú)
調用實(shí)例
啟用網(wǎng)頁(yè)授權,并將得到openid緩存起來(lái)。
$openid = weixin::get_openid(); $_SESSION['openid] = $openid;
3、POST提交json類(lèi)型數據
發(fā)起微信公眾號接口可使用該方法,并將請求數據原樣返回(JSON)。
調用方法
weixin::post2json()
相關(guān)參數
共2個(gè)必要參數,具體如下:
1、待提交的json數據
2、提交的接口網(wǎng)址,不可帶任何參數,包括“access_token=xxx”
調用實(shí)例
發(fā)送消息模板
$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()
相關(guān)參數
共1個(gè)必要參數,具體如下:
1、待提交的數據
2、提交的接口網(wǎng)址
調用實(shí)例
發(fā)送消息模板
$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()方法類(lèi)似,可將數組轉換成JSON格式,并且處理中文轉碼問(wèn)題,如無(wú)特殊需求,并不建議使用該方法。
注:PHP5.4+ 版本可直接使用 json_encode($data,JSON_UNESCAPED_UNICODE) ,無(wú)需使用該方法。
調用方法
weixin::array2json()
相關(guān)參數
共1個(gè)必要參數,具體如下:
1、待轉換的數組
調用實(shí)例
將數據轉換JSON,并發(fā)送消息模板
$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()
相關(guān)參數
共1個(gè)必要參數,具體如下:
1、待轉換的對象
調用實(shí)例
weixin::object2array($obj);
7、設置cookie緩存
該方法區別于setcookie()函數,使用緩存文件保存到服務(wù)器中,用于緩存全局數據,如:access token、微信用戶(hù)信息等。
調用方法
weixin::set_cookie()
相關(guān)參數
共2個(gè)必要參數,2個(gè)可選參數,具體如下:
1、變量名
2、變量值
3、文件名,默認為用戶(hù)openid,如果緩存全局通用數據需另起文件名
4、有效期(秒),默認為3200秒
調用實(shí)例
1、保存用戶(hù)微信信息到服務(wù)端cookie文件中,并記錄保存時(shí)間。
// 獲取微信用戶(hù)信息 $wxuser = weixin::get_fans_info('abc'); // 保存微信用戶(hù)信息 weixin::set_cookie('wxuser',$wxuser); // 記錄保存微信用戶(hù)信息的時(shí)間 weixin::set_cookie('wxuser_updatetime',time());
2、緩存access token,有效時(shí)間為7200秒
weixin::set_cookie('access_token','aaa','access_token_time');
8、獲取cookie緩存
獲取由 weixin::set_cookie() 方法緩存的所有數據,返回一維數組。
調用方法
weixin::get_cookie()
相關(guān)參數
共1個(gè)可選參數,具體如下:
1、文件名,默認為當前用戶(hù)openid
調用實(shí)例
1、獲取當前用戶(hù)的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 替代函數
如果服務(wù)器開(kāi)通了curl擴展,則使用curl發(fā)起請求,否則使用file_get_contents()函數。
調用方法
weixin::file_get_contents()
相關(guān)參數
共1個(gè)必選參數,具體如下:
1、待請求的url
調用實(shí)例
weixin::file_get_contents('http://www.mlecms.com')
10、返回碼轉換請求結果
可以將微信公眾號接口返回的"errcode"轉換成錯誤信息
調用方法
weixin::code2msg()
相關(guān)參數
共1個(gè)必選參數,具體如下:
1、微信接口返回碼
調用實(shí)例
發(fā)送模板消息,并將返回碼轉換成錯誤信息
$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;