溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php生成小程序二維碼亂碼的解決方法

發(fā)布時間:2021-12-02 10:03:04 來源:億速云 閱讀:347 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)php生成小程序二維碼亂碼的解決方法的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

php生成小程序二維碼亂碼的解決辦法:1、獲取微信token;2、添加“base64_encode($res);”;3、獲取二維碼參數(shù);4、請求后臺交互,并將參數(shù)傳過去即可。

本文操作環(huán)境:windows7系統(tǒng)、PHP7.4版、DELL G3電腦

php微信小程序生成二維碼,出現(xiàn)亂碼,{"errcode":44002,"errmsg":"empty post data"},'{"errcode":41001,"errmsg":"access_token missing hint: [OoC.2a0822e255]"}',以及其他的坑

微信小程序的坑簡直比我的頭發(fā)還多,今天下午獲取微信二維碼,遇到的44002,41001,還有圖片沒法正常顯示以及小程序參數(shù)獲取的問題,接下來一一解決

首先獲取微信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); //如果需要將結(jié)果直接返回到變量里,那加上這句。
    $res = curl_exec($ch);
   }

  雖然已經(jīng)獲取到了小程序二維碼  但是此時打印$res就會出現(xiàn)亂碼的問題 仔細(xì)看文檔的同學(xué)可能就知道 這是因為微信會返回圖片二進制內(nèi)容

  php生成小程序二維碼亂碼的解決方法

  媽的 簡直不要太坑啊

$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;

在代碼上加上這一句 可以轉(zhuǎn)換 直接輸出圖片


ok  二維碼已經(jīng)出來了 接下來就是獲取二維碼參數(shù)  比如參數(shù)為id=1

獲取二維碼參數(shù)還是比較簡單的 微信二維碼指向首頁  
然后在index.js編寫

然后請求后臺交互 將參數(shù)傳過去 ,本來后臺接口已經(jīng)寫好了 我想今天的工作可以告一段段落了,尼瑪沒想到檢查數(shù)據(jù)的時候發(fā)現(xiàn)id根本沒有獲取到

在本地測試的時候可以

  php生成小程序二維碼亂碼的解決方法

    這樣操作開發(fā)工具 就會獲取到參數(shù)  接著去后臺打印的時候你就會發(fā)現(xiàn)你傳過去的參數(shù)根本不是1,而是{‘id’:'1'},我日 就沒遇到過他們這種的

    所以如果本地測試的話還得需要進行一下操作 兄弟我是直接被征服了  隨便截取了一下1前邊的7個字符 后邊的2個字符 這樣才得到完整’1‘,

感謝各位的閱讀!關(guān)于“php生成小程序二維碼亂碼的解決方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI