您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關php生成小程序二維碼亂碼的解決方法的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
php生成小程序二維碼亂碼的解決辦法:1、獲取微信token;2、添加“base64_encode($res);”;3、獲取二維碼參數;4、請求后臺交互,并將參數傳過去即可。
本文操作環境:windows7系統、PHP7.4版、DELL G3電腦
php微信小程序生成二維碼,出現亂碼,{"errcode":44002,"errmsg":"empty post data"},'{"errcode":41001,"errmsg":"access_token missing hint: [OoC.2a0822e255]"}',以及其他的坑
微信小程序的坑簡直比我的頭發還多,今天下午獲取微信二維碼,遇到的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編寫 然后請求后臺交互 將參數傳過去 ,本來后臺接口已經寫好了 我想今天的工作可以告一段段落了,尼瑪沒想到檢查數據的時候發現id根本沒有獲取到 在本地測試的時候可以
這樣操作開發工具 就會獲取到參數 接著去后臺打印的時候你就會發現你傳過去的參數根本不是1,而是{‘id’:'1'},我日 就沒遇到過他們這種的
所以如果本地測試的話還得需要進行一下操作 兄弟我是直接被征服了 隨便截取了一下1前邊的7個字符 后邊的2個字符 這樣才得到完整’1‘,
感謝各位的閱讀!關于“php生成小程序二維碼亂碼的解決方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。