PHP ミニ プログラムによって生成された文字化けした QR コードの解決策: 1. WeChat トークンを取得; 2. "base64_encode($res);" を追加; 3. QR コード パラメーターを取得; 4. バックグラウンド インタラクションを要求し、パラメータを渡します。
この記事の動作環境: Windows7 システム、PHP7.4 バージョン、DELL G3 コンピューター
php は小さなプログラム QR を生成しますコードが文字化けしているどうすればいいですか?
php WeChat アプレットが QR コードを生成し、文字化けしたコードが表示されます。{"errcode":44002,"errmsg":"empty post data"}、'{"errcode":41001,"errmsg" : 「access_token のヒントがありません: [OoC.2a0822e255]"}」、およびその他の落とし穴
WeChat アプレットには私の髪よりも落とし穴がたくさんあります。今日の午後に WeChat QR コードを取得したところ、44002、41001、および 41001 が発生しました。また、画像が正しく表示されない、ミニプログラムのパラメータが取得できないなどの問題もありますので、一つずつ解決していきます
まずWeChatトークンを取得し、次にQRコードを取得します。何も言うことはありません。コードにアクセスしてください。
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'}。このような奴らに遭遇したことはありません。
したがって、ローカルでテストしたい場合は、まだいくつかの操作を行う必要があります。兄弟、私は直接征服されました。私は 7 を傍受したところです1 の前の文字とその後の 2 文字を使用して、完全な '1' を取得できるようにします。
PHP ビデオ チュートリアル"
以上がPHPミニプログラムで生成したQRコードが文字化けしている場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。