ホームページ  >  記事  >  バックエンド開発  >  PHPミニプログラムで生成したQRコードが文字化けしている場合はどうすればよいですか?

PHPミニプログラムで生成したQRコードが文字化けしている場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2021-12-02 09:39:054169ブラウズ

PHP ミニ プログラムによって生成された文字化けした QR コードの解決策: 1. WeChat トークンを取得; 2. "base64_encode($res);" を追加; 3. QR コード パラメーターを取得; 4. バックグラウンド インタラクションを要求し、パラメータを渡します。

PHPミニプログラムで生成したQRコードが文字化けしている場合はどうすればよいですか?

この記事の動作環境: 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=&#39;en&#39;>
        <head>
            <meta charset=&#39;UTF-8&#39;>
            <title>二维码</title>
        </head>
        <body>
        <img src=&#39;$data&#39;>
        </body>
        </html>";
echo $html;
exit;

在代码上加上这一句 可以转换 直接输出图片


ok  二维码已经出来了 接下来就是获取二维码参数  比如参数为id=1

获取二维码参数还是比较简单的 微信二维码指向首页  
然后在index.js编写

然后请求后台交互 将参数传过去 ,本来后台接口已经写好了 我想今天的工作可以告一段段落了,尼玛没想到检查数据的时候发现id根本没有获取到

在本地测试的时候可以

このように、開発ツールを操作してパラメータを取得します。そして、印刷するためにバックグラウンドに行くと、渡したパラメータが 1 ではなく、{' id':'1'}。このような奴らに遭遇したことはありません。

したがって、ローカルでテストしたい場合は、まだいくつかの操作を行う必要があります。兄弟、私は直接征服されました。私は 7 を傍受したところです1 の前の文字とその後の 2 文字を使用して、完全な '1' を取得できるようにします。

PHP ビデオ チュートリアル

"

以上がPHPミニプログラムで生成したQRコードが文字化けしている場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。