Maison > développement back-end > tutoriel php > Exemple de génération de code QR WeChat avec PHP

Exemple de génération de code QR WeChat avec PHP

小云云
Libérer: 2023-03-21 19:12:01
original
9992 Les gens l'ont consulté

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
Copier après la connexion

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_TOKEN
Copier après la connexion
Les 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)
  }
})
Copier après la connexion
Interface C : Adaptée aux scénarios métiers qui nécessitent un petit nombre de codes :



Les paramètres sont les suivants :
https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN
Copier après la connexion


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_token<🎜. >2. 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=&#39;&#39;,$expires_in=7200){
	
	if(empty($qr_path)) return array(&#39;status&#39;=>0,&#39;info&#39;=>&#39;缺少存储路径&#39;); 
	if(empty($filename)) return array(&#39;status&#39;=>0,&#39;info&#39;=>&#39;请确定存储的图片名称&#39;); 
	if(empty($scene)) return array(&#39;status&#39;=>0,&#39;info&#39;=>&#39;缺少二维码场景值&#39;); 
	
	if(!is_dir(&#39;.&#39;.$qr_path)){								//	./Public/Qrcode/
		mkdir(iconv("GBK","UTF-8",&#39;.&#39;.$qr_path),0777,true); 
	}
	$file = $qr_path.$filename;								//	 /Public/Qrcode/aaa.png
	$protocol = (!empty($_SERVER[&#39;HTTPS&#39;]) && $_SERVER[&#39;HTTPS&#39;] !== &#39;off&#39; || $_SERVER[&#39;SERVER_PORT&#39;] == 443) ? "https://" : "http://";
	$fileUrl = $protocol.$_SERVER[&#39;HTTP_HOST&#39;].$file;		//	 http://yourhost/Public/Qrcode/aaa.png
	$savePath = &#39;.&#39;.$file;									//	 ./Public/Qrcode/aaa.png
	if(file_exists($savePath)){
		//当前时间-文件创建时间<过期时间
		if( (time()-filemtime($savePath)) < $expires_in ) return array(&#39;status&#39;=>1,&#39;info&#39;=>$fileUrl); 
	}
	
	$accessToken = &#39;xxxxxxxxxxxxxxxxxxxxxx&#39;; 				// 获取到的 access_token
	$url = &#39;https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=&#39;.$accessToken;
	$qrcode = array(
		&#39;scene&#39;			=> $scene,
		&#39;width&#39;			=> 200,
		&#39;page&#39;			=> $page,
		&#39;auto_color&#39;	=> true
	);
	$result = request($url,true,&#39;POST&#39;,json_encode($qrcode));
	$errcode = json_decode($result,true)[&#39;errcode&#39;];
	$errmsg = json_decode($result,true)[&#39;errmsg&#39;];
	if($errcode) return array(&#39;status&#39;=>0,&#39;info&#39;=>$errmsg); 
	$res = file_put_contents($savePath,$result);			//	将获取到的二维码图片流保存成图片文件

	if($res===false) return array(&#39;status&#39;=>0,&#39;info&#39;=>&#39;生成二维码失败&#39;); 
	return array(&#39;status&#39;=>1,&#39;info&#39;=>$fileUrl); 			//返回本地图片地址
}
Copier après la connexion


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

JS pour générer le code QR

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal