Maison > Article > développement back-end > Que dois-je faire si le code QR généré par le mini-programme PHP est tronqué ?
Solution au code QR tronqué généré par le mini-programme php : 1. Obtenez le jeton WeChat ; 2. Ajoutez "base64_encode($res);" 3. Obtenez les paramètres du code QR ; 4. Demandez une interaction en arrière-plan et transmettez les paramètres ; Allez-y.
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.4, ordinateur DELL G3
Que dois-je faire si le code QR du mini programme généré par php est tronqué ?
Le code QR généré par l'applet PHP WeChat apparaît tronqué, {"errcode":44002,"errmsg":"vide post data"}, '{"errcode":41001,"errmsg":"access_token indice manquant : [OoC.2a0822e255]"}' et autres pièges
Les pièges de l'applet WeChat ne se limitent pas à mes cheveux. J'ai reçu le code QR WeChat cet après-midi et j'ai rencontré 44002, 41001, et les images n'ont pas pu s'afficher correctement. En plus du problème d'obtention des paramètres du mini programme, nous allons les résoudre un par un
Obtenez d'abord le jeton WeChat puis obtenez le code QR Il n'y a rien à dire, allez simplement au code
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就会出现乱码的问题 仔细看文档的同学可能就知道 这是因为微信会返回图片二进制内容
.
Bon sang, ne soyez pas trop gêné
$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根本没有获取到 在本地测试的时候可以
En utilisant l'outil de développement de cette manière, vous obtiendrez les paramètres. Ensuite, lorsque vous imprimerez en arrière-plan, vous constaterez que le paramètre que vous avez passé. n'est pas 1 du tout, mais {'id':'1'}, que je n'ai jamais rencontré auparavant. Ils sont comme ça
donc si vous le testez localement, vous devez faire quelques opérations Frère, j'ai été directement conquis. . J'ai intercepté au hasard les 7 caractères devant 1 et les 2 caractères après pour pouvoir obtenir le '1' complet,
Maman, ce petit programme n'est pas trop déroutant
Apprentissage recommandé : "Tutoriel vidéo PHP "
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!