生成帶參數(shù)的微信小程序二維碼用的還是比較多的,雖然微信小程序開發(fā)文檔接口寫的很清楚,如下圖,但實(shí)際開發(fā)中總有人不知道如何操作或者經(jīng)常出錯(cuò),下面方維網(wǎng)絡(luò)根據(jù)微信小程序定制開發(fā)經(jīng)驗(yàn),分享使用ThinkPHP生成微信小程序帶參數(shù)二維碼的整個(gè)過程。
第一步、需要獲取ACCESS_TOKEN,需要小程序的APPID和APPSECRET,這兩個(gè)只要到微信小程序管理后臺(tái)即可獲得。
第二步、使用微信小程序開發(fā)接口生成二維碼并保存到服務(wù)器。代碼如下,其中sendCmd是遠(yuǎn)程請(qǐng)求的函數(shù),file_put_contents是PHP自帶函數(shù),用于保存圖片,【APPID】和【APPSECRET】請(qǐng)換成你自己的實(shí)際參數(shù)值。
$url_access_token = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=【APPID】&secret=【APPSECRET】;
$json_access_token = sendCmd($url_access_token,array());
$arr_access_token = json_decode($json_access_token,true);
$access_token = $arr_access_token['access_token'];
if(!empty($access_token)) {
$url = 'https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token='.$access_token;
$data = '{"path": "pages/index/index?shop_id='.$shop_id.'&no_id='.$no_id.'", "width": 430}';
$result = sendCmd($url,$data);
file_put_contents('Public/code/code-'.$shop_id.'-'.$no_id.'.jpg',$result);
return 'success';
} else {
return 'ACCESS TOKEN為空!';
}
/**
* 發(fā)起請(qǐng)求
* @param string $url 請(qǐng)求地址
* @param string $data 請(qǐng)求數(shù)據(jù)包
* @return string 請(qǐng)求返回?cái)?shù)據(jù)
*/
function sendCmd($url,$data)
{
$curl = curl_init(); // 啟動(dòng)一個(gè)CURL會(huì)話
curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對(duì)認(rèn)證證書來源的檢測(cè)
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 從證書中檢查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); //解決數(shù)據(jù)包大不能提交
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動(dòng)跳轉(zhuǎn)
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動(dòng)設(shè)置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 發(fā)送一個(gè)常規(guī)的Post請(qǐng)求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的數(shù)據(jù)包
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設(shè)置超時(shí)限制防止死循
curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區(qū)域內(nèi)容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 執(zhí)行操作
if (curl_errno($curl)) {
echo 'Errno'.curl_error($curl);
}
curl_close($curl); // 關(guān)鍵CURL會(huì)話
return $tmpInfo; // 返回?cái)?shù)據(jù)
}
上面代碼不多,是不是很簡(jiǎn)單,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明來源方維網(wǎng)站建設(shè)http://m.oulysa.com
如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來自http://m.oulysa.com/news/3928.html