Maison > Article > développement back-end > Exemple de génération de code QR WeChat avec PHP
Vous pouvez obtenir le code QR de n'importe quelle page du mini programme via l'interface backend. Scannez le code QR pour accéder directement à la page correspondante du mini programme. Il est officiellement recommandé de générer et d’utiliser du code de petit programme, mieux reconnu. Il existe actuellement 3 interfaces capables de générer de petits codes de programme, et les développeurs peuvent choisir l'interface appropriée en fonction de leurs propres besoins.
Interface A : Convient aux scénarios commerciaux qui nécessitent un petit nombre de codes. Adresse de l'interface :
https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN
Les paramètres sont les suivants :
Remarque : Le petit code de programme généré via cette interface est valide en permanence. La limite de quantité est expliquée à la fin de l'article. Veuillez l'utiliser avec prudence. Une fois que l'utilisateur a scanné le code et entré dans le mini-programme, il entrera directement dans la page correspondant au chemin.
Interface B : adaptée aux scénarios métiers qui nécessitent une quantité extrêmement importante de code ou qui ne sont utilisés que temporairement :
https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKENLes paramètres sont les suivants :
Remarque : Le petit code de programme généré via cette interface est valide en permanence et la quantité n'est pas limitée pour le moment. Une fois que l'utilisateur a scanné le code et entré le mini-programme, le développeur doit obtenir la valeur du champ de scène dans le code sur la page correspondante, puis exécuter la logique de traitement. Utilisez le code suivant pour obtenir la valeur du champ scène dans le code QR. Pendant la phase de débogage, vous pouvez utiliser le paramètre personnalisé de compilation conditionnelle scene=xxxx de l'outil de développement pour la simulation. La valeur du paramètre de la scène lors de la simulation de l'outil de développement doit être urlencode
// 这是首页的 js Page({ onLoad: function(options) { // options 中的 scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene var scene = decodeURIComponent(options.scene) } })Interface C : Adaptée aux scénarios métiers qui nécessitent un petit nombre de codes :
https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN
Remarque : Mini Programme 2 généré via cette interface Le QR code est valable en permanence La limite de quantité est indiquée à la fin de l'article. Veuillez l'utiliser avec prudence. Une fois que l'utilisateur a scanné le code et entré dans le mini-programme, il entrera directement dans la page correspondant au chemin.
Les paramètres POST de ces interfaces doivent être convertis en chaînes json et la soumission de formulaire n'est pas prise en charge. Le nombre total de codes générés par l'interface A plus l'interface C est limité à 100 000, veuillez appeler avec prudence.
Ici, nous prenons l'interface B comme exemple pour parler de la génération d'images de code QR et de leur enregistrement sur le serveur local :
1 Obtenir access_token
access_token est unique au monde. informations d'identification d'appel d'interface. Les utilisateurs de développement doivent utiliser access_token lors de l'appel de chaque interface et les conserver correctement. J'ai fait du développement WeChat et du développement de comptes publics, qui sont les plus basiques. La méthode pour obtenir access_token ici est exactement la même que pour obtenir access_token pour les comptes publics. Pour la méthode, voir :
Obtenir les informations d'identification de l'interface de base WeChat Access_token2. Générer un code QR
Recommandations associées :
/** * 生成小程序二维码 * @param string $qr_path 存储路径,相对于程序根目录(例如:/Public/Qrcode/) * @param string $filename 存储的图片名称(例如:aaa.png) * @param string $scene 二维码场景值 * @param string $page 二维码跳转页面 * @param string $expires_in 二维码有效时间 * @return [type] [description] */ function create_qrcode($qr_path,$filename,$scene,$page='',$expires_in=7200){ if(empty($qr_path)) return array('status'=>0,'info'=>'缺少存储路径'); if(empty($filename)) return array('status'=>0,'info'=>'请确定存储的图片名称'); if(empty($scene)) return array('status'=>0,'info'=>'缺少二维码场景值'); if(!is_dir('.'.$qr_path)){ // ./Public/Qrcode/ mkdir(iconv("GBK","UTF-8",'.'.$qr_path),0777,true); } $file = $qr_path.$filename; // /Public/Qrcode/aaa.png $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; $fileUrl = $protocol.$_SERVER['HTTP_HOST'].$file; // http://yourhost/Public/Qrcode/aaa.png $savePath = '.'.$file; // ./Public/Qrcode/aaa.png if(file_exists($savePath)){ //当前时间-文件创建时间<过期时间 if( (time()-filemtime($savePath)) < $expires_in ) return array('status'=>1,'info'=>$fileUrl); } $accessToken = 'xxxxxxxxxxxxxxxxxxxxxx'; // 获取到的 access_token $url = 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='.$accessToken; $qrcode = array( 'scene' => $scene, 'width' => 200, 'page' => $page, 'auto_color' => true ); $result = request($url,true,'POST',json_encode($qrcode)); $errcode = json_decode($result,true)['errcode']; $errmsg = json_decode($result,true)['errmsg']; if($errcode) return array('status'=>0,'info'=>$errmsg); $res = file_put_contents($savePath,$result); // 将获取到的二维码图片流保存成图片文件 if($res===false) return array('status'=>0,'info'=>'生成二维码失败'); return array('status'=>1,'info'=>$fileUrl); //返回本地图片地址 }
Méthode super simple de Nodejs pour générer un code QR
JS liera la méthode pour générer le code QR et le convertira en images
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!