Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah yang perlu saya lakukan jika kod QR yang dijana oleh program mini PHP bercelaru?

Apakah yang perlu saya lakukan jika kod QR yang dijana oleh program mini PHP bercelaru?

藏色散人
藏色散人asal
2021-12-02 09:39:054169semak imbas

Penyelesaian kepada kod QR bercelaru yang dihasilkan oleh program mini PHP: 1. Dapatkan token WeChat 2. Tambah "base64_encode($res);" 3. Dapatkan parameter kod QR; , Dan hanya lulus parameter.

Apakah yang perlu saya lakukan jika kod QR yang dijana oleh program mini PHP bercelaru?

Persekitaran pengendalian artikel ini: sistem windows7, versi PHP7.4, komputer DELL G3

php menjana program kecil QR kod kacau apa yang perlu dilakukan?

Kod QR yang dijana oleh applet PHP WeChat kelihatan bercelaru, {"errcode":44002,"errmsg":"data pos kosong"}, '{"errcode":41001,"errmsg" :"access_token hilang petunjuk: [OoC.2a0822e255]"}', dan perangkap lain

Terdapat lebih banyak perangkap dalam applet WeChat daripada rambut saya, saya mendapat kod QR WeChat tengah hari ini dan menemui 44002 , 41001, terdapat juga masalah gambar tidak dapat dipaparkan dengan betul dan parameter program mini diperolehi Seterusnya, kami akan menyelesaikannya satu persatu

Mula-mula dapatkan token WeChat dan kemudian dapatkan kod QR tiada apa yang perlu dikatakan, hanya pergi ke kod

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就会出现乱码的问题 仔细看文档的同学可能就知道 这是因为微信会返回图片二进制内容

 

Alamak, jangan terlalu malu

$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根本没有获取到

在本地测试的时候可以

Parameter akan berlaku diperolehi. Kemudian apabila anda pergi ke latar belakang untuk mencetak, anda akan mendapati bahawa parameter yang anda lalui bukan 1 sama sekali, tetapi {'id':'1'}. > Jadi jika anda mengujinya secara tempatan, anda masih perlu melakukan beberapa operasi, saya telah ditakluki secara langsung.

Ma, program kecil ini tidak terlalu mengelirukan

Pembelajaran yang disyorkan: "

Tutorial Video PHP

"

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika kod QR yang dijana oleh program mini PHP bercelaru?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn