Maison > Article > Applet WeChat > Développement de la plateforme publique WeChat pour obtenir un code QR personnalisé
Lors de la promotion, nous pouvons dire à l'autre partie quel est notre compte public WeChat, et les clients peuvent le rechercher puis le suivre. Le code QR nous offre une grande commodité. Il suffit de le scanner et vous pourrez le suivre.
Si vous l'avez déjà suivi, accédez immédiatement à l'écran de conversation. Lorsque nous faisons de la promotion, ce n'est plus un simple texte, il peut s'agir d'un code QR personnalisé, qui sera certainement très vivant.
WeChat offre un bon support pour les codes QR et peut également générer des codes QR pour différents scénarios selon les besoins. Ci-dessous, nous expliquerons comment obtenir et utiliser les codes QR.
Remarque : limité au compte de service et à l'authentification WeChat, frais 300
Afin de répondre aux besoins d'analyse de la promotion des canaux utilisateurs, la plateforme publique propose une interface de génération de codes QR avec paramètres. Grâce à cette interface, plusieurs codes QR avec différentes valeurs de scène peuvent être obtenus. Une fois que l'utilisateur les a scannés, le compte officiel peut recevoir le push d'événement.
Il existe actuellement deux types de codes QR, à savoir les codes QR temporaires et les codes QR permanents. Le premier a un délai d'expiration, jusqu'à 1800 secondes, mais peut générer un nombre plus grand, tandis que le second n'a pas de délai d'expiration. , le nombre est petit (actuellement, les paramètres ne prennent en charge que 1 à 1 000). Les deux codes QR conviennent respectivement à la liaison de compte, aux statistiques de source d'utilisateurs et à d'autres scénarios.
Lorsque l'utilisateur scanne le code QR avec la valeur de scène, les deux événements suivants peuvent être poussés :
Si l'utilisateur n'a pas suivi le compte officiel, l'utilisateur peut suivez le compte officiel, après avoir prêté attention, WeChat transmettra l'événement d'attention avec une valeur de scène au développeur.
Si l'utilisateur a suivi le compte officiel, l'utilisateur entrera automatiquement dans la session après la numérisation, et WeChat transmettra également l'événement de numérisation avec la valeur de la scène au développeur.
Le processus d'obtention d'un code QR avec des paramètres comprend deux étapes. Tout d'abord, créez un ticket de code QR, puis utilisez le ticket vers l'URL spécifiée pour échanger le code QR.
Chaque fois que vous créez un ticket de code QR, vous devez fournir un paramètre (scene_id) défini par le développeur. Nous introduisons le code QR temporaire et le QR permanent. code respectivement. Le processus de création d’un ticket de code QR.
Instructions de demande de code QR temporaire
http请求方式: POST URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKENPOST数据格式:json POST数据例子:{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}
Instructions de demande de code QR permanent
http请求方式: POST URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKENPOST数据格式:json POST数据例子:{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 123}}}
Description du paramètre
参数 | 说明 |
---|---|
expire_seconds | 该二维码有效时间,以秒为单位。 最大不超过1800。 |
action_name | 二维码类型,QR_SCENE为临时,QR_LIMIT_SCENE为永久 |
action_info | 二维码详细信息 |
scene_id | 场景值ID,临时二维码时为32位整型,永久二维码时最大值为1000 |
Description du retour
Résultat de retour Json correct :
{"ticket":"gQG28DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0FuWC1DNmZuVEhvMVp4NDNMRnNRAAIEesLvUQMECAcAAA==","expire_seconds":1800}
参数 | 说明 |
---|---|
ticket | 获取的二维码ticket,凭借此ticket可以在有效时间内换取二维码。 |
expire_seconds | 二维码的有效时间,以秒为单位。最大不超过1800。 |
Exemple de retour Json incorrect :
{"errcode":40013,"errmsg":"invalid appid"}
Description du code de retour global
Utiliser les outils de débogage Web pour déboguer l'interface
Obtenir un ticket de code QR Ensuite, les développeurs peuvent échanger billets pour les images de code QR. Veuillez noter que cette interface peut être appelée sans vous connecter.
Demande d'instructions
HTTP GET请求(请使用https协议) https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET
Instructions de retour
Lorsque le ticket est correct, le code de retour http est 200, qui est une image qui peut être affichée ou téléchargée directement.
L'en-tête HTTP (exemple) est le suivant :
Accept-Ranges:bytes Cache-control:max-age=604800Connection:keep-alive Content-Length:28026Content-Type:image/jpg Date:Wed, 16 Oct 2013 06:37:10 GMT Expires:Wed, 23 Oct 2013 14:37:10 +0800Server:nginx/1.4.1
En cas d'erreur ( tel qu'un ticket illégal) renvoie le code d'erreur HTTP 404.
Toujours en ajoutant des fonctions basées sur le cas du robot précédent, regardez directement le code.
/// <summary> /// 二维码管理者 /// </summary> public class DimensionalCodeManager { /// <summary> /// 临时二维码地址 /// </summary> /// 使用string.format时,报:字符串格式错误,因为其中有{ //private const string TEMP_URL = "{\"expire_seconds\": 1800, \"action_name\": \"QR_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": {0}}}}"; /// <summary> /// 解决办法,将原有字符串中的一个{用两个{代替 /// </summary> private const string TEMP_JSON_DATA = "{{\"expire_seconds\": 1800, \"action_name\": \"QR_SCENE\", \"action_info\": {{\"scene\": {{\"scene_id\": {0}}}}}}}"; /// <summary> /// 永久二维码地址 /// </summary> private const string PERMANENT_URL = "{{\"action_name\": \"QR_LIMIT_SCENE\", \"action_info\": {{\"scene\": {{\"scene_id\": {0}}}}}}}"; /// <summary> /// 获取ticket的URL /// </summary> private const string GET_TICKET_URL = " https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}"; /// <summary> /// 获取二维码URL /// </summary> private const string GET_CODE_URL = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={0}"; /// <summary> /// 根据场景ID获取ticket /// </summary> /// <param name="sceneID">场景ID</param> /// <param name="isTemp">是否是临时二维码</param> /// <returns></returns> private static string GetTicket(int sceneID, bool isTemp) { string result = null; string data = string.Empty; if (isTemp) { data = string.Format(TEMP_JSON_DATA, sceneID.ToString()); } else { if (sceneID > 0 && sceneID <= 1000) { data = string.Format(PERMANENT_URL, sceneID); } else { //scene_id不合法 return null; } } string ticketJson = HttpUtility.GetData(string.Format(GET_TICKET_URL,Context.AccessToken)); XDocument doc = XmlUtility.ParseJson(ticketJson, "root"); XElement root = doc.Root; if (root != null) { XElement ticket = root.Element("ticket"); if (ticket != null) { result = ticket.Value; } } return result; } /// <summary> /// 创建临时二维码 /// </summary> /// <param name="sceneID">场景id,int类型</param> /// <returns></returns> public static string GenerateTemp(int sceneID) { string ticket = GetTicket(sceneID,true); if (ticket == null) { return null; } return HttpUtility.GetData(string.Format(GET_CODE_URL, ticket)); } /// <summary> /// 创建临时二维码 /// </summary> /// <param name="sceneID">场景id,int类型</param> /// <returns></returns> public static string GeneratePermanent(int sceneID) { string ticket = GetTicket(sceneID, false); if (ticket == null) { return null; } return HttpUtility.GetData(string.Format(GET_CODE_URL, ticket)); } }
Pour plus de développement de plateforme publique WeChat afin d'obtenir des codes QR personnalisés, veuillez faire attention au site Web chinois PHP pour les articles connexes !