微信小程序的坑簡直比我的頭發還多,今天下午獲取微信二維碼,遇到的44002,41001,還有圖片沒法正常顯示以及小程序參數獲取的問題,接下來一一解決
首先獲取微信token然后再獲取二維碼這個沒什么好說的 直接上代碼
public function getQRcode()
{
$appid = '';
$secret = '';
$access_token = json_decode(file_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$secret),true)['access_token'];
$url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=$access_token";
$ch = curl_init();
$data = json_encode(['scene' => '&id='.$this->user_id]);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 'image/gif');
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data)
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //如果需要將結果直接返回到變量里,那加上這句。
$res = curl_exec($ch);
}
雖然已經獲取到了小程序二維碼 但是此時打印$res就會出現亂碼的問題 仔細看文檔的同學可能就知道 這是因為微信會返回圖片二進制內容
媽的 簡直不要太坑啊
$data = 'data:image/jpeg;base64,'.base64_encode($res);//補全base64加密字符串頭
$html = "<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<title>二維碼</title>
</head>
<body>
<img src='$data'>
</body>
</html>";
echo $html;
exit;
在代碼上加上這一句 可以轉換 直接輸出圖片
ok 二維碼已經出來了 接下來就是獲取二維碼參數 比如參數為id=1
獲取二維碼參數還是比較簡單的 微信二維碼指向首頁
然后在index.js編寫
onLoad (option) { console.log(option) }
然后請求后台交互 將參數傳過去 ,本來后台接口已經寫好了 我想今天的工作可以告一段段落了,尼瑪沒想到檢查數據的時候發現id根本沒有獲取到
在本地測試的時候可以
這樣操作開發工具 就會獲取到參數 接着去后台打印的時候你就會發現你傳過去的參數根本不是1,而是{‘id’:'1'},我日 就沒遇到過他們這種的
所以如果本地測試的話還得需要進行一下操作 兄弟我是直接被征服了 隨便截取了一下1前邊的7個字符 后邊的2個字符 這樣才得到完整’1‘,
尼瑪,這個小程序簡直不要太坑