微信 开发生成带参数的二维码的实例
微信开发生成带参数的二维码:与实战应用
在微信公众号平台开发者账号管理的板块中,有一个特别实用的功能——“生成带参数的二维码”。这一功能生成的二维码具有推送事件至微信公众号的能力,只要用户通过微信扫一扫,相关事件信息就会自动发送到开发者处。
微信扫一扫推送的数据格式呈现为XML格式,其中包含了一些关键信息字段,例如用户的微信ID、创建时间、消息类型以及事件密钥等。其中,“Event”标识扫码行为,“EventKey”则是我们在生成二维码时设置的JSON数值。通过自定义EventKey的数据,开发者可以实现扫描指定二维码后自动回复特定数据的功能。
想象一下,如果你正在运行一个猜谜游戏,每个谜题都有一个唯一的编号,这个编号就可以作为EventKey。用户扫描对应的带参数二维码时,谜语的编号会被传送到服务器,然后服务器可以根据这个编号自动回复相应的谜底。这样,只需微信扫一扫,用户就能立刻知道答案。
微信官方提供了开发文档,详细介绍了生成带参数二维码的接口。这个接口可以生成临时二维码和永久二维码。临时二维码有指定的过期时间,最大为1800秒,但能够生成较多的数量;永久二维码则无过期时间限制,但数量相对较少。两种二维码适用于不同的场景,如账号绑定、用户来源统计等。
在用户扫描带有场景值的二维码时,微信会将带场景值的事件推送给开发者。如果用户尚未关注公众号,关注后微信会推送带场景值的关注事件;如果用户已关注公众号,扫描后会进入会话,并推送带场景值的扫描事件。
创建带参数的二维码的过程分为两步:首先创建二维码的ticket,然后凭借这个ticket到指定的URL换取二维码。这里的“ticket”可以理解为一种入场凭证,通过它来获取二维码。在实际应用中,ticket会被添加到URL后面,形成./x.php?ticket=的形式。
根据微信官方文档,创建二维码ticket需要提供开发者自行设定的参数(scene_id)。scene_id的最大值是10万,请求的方式为post。被请求的是固定的。请求的数据格式需为json,例如:{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}。这里的expire_seconds表示二维码的过期秒数,如果包含这个参数,那么生成的二维码就是临时的,例如在这个例子中,二维码将在3分钟后过期。
微信开发生成带参数的二维码是一项非常实用的功能,它极大地丰富了微信公众号的应用场景,提高了用户体验。无论是做活动推广、用户管理还是其他互动功能,带参数的二维码都能发挥巨大的作用。作为开发者,熟练掌握这项功能,无疑会为你的公众号运营带来更多可能。二维码请求与返回的详细说明
亲爱的开发者朋友们,你是否遇到过需要生成永久二维码的场景?以下是对永久二维码请求及返回结果的详细,希望能帮助你更好地理解并应用。
一、请求说明
当你想生成永久二维码时,需要通过POST方式发送数据,数据格式需为json。请求的数据例子如下:
```json
{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 123}}}
```
或者,你也可以选择使用字符串形式的二维码参数:
```json
{"action_name": "QR_LIMIT_STR_SCENE", "action_info": {"scene": {"scene_str": "123"}}}
```
请注意以下几点:
`scene_str`表示字符串场景值,即推送的数据中EventKey的值是字符串形式,需加双引号,并可以包含英文字符。
`scene_id`对于永久二维码的最大值是10万,此值应为数字,无需加双引号。
请求方式为POST,数据必须为json格式。
二、参数详解
1. `expire_seconds`:该二维码的有效时间,以秒为单位,最大不超过1800秒。
2. `action_name`:二维码类型。其中,`QR_SCENE`表示临时二维码,`QR_LIMIT_SCENE`和`QR_LIMIT_STR_SCENE`表示永久二维码。
3. `action_info`:二维码的详细信息。
4. `scene_id`:场景值ID。对于临时二维码,此ID为32位非0整型;对于永久二维码,其最大值为100000。
5. `scene_str`:场景值ID的字符串形式,长度限制为1到64。此字段仅适用于永久二维码。
三、返回说明
正确的Json返回结果示例:
```json
{"ticket":"gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnfxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhBmJIAwMEmm3sUw==","expire_seconds":60,"url":"http:\/\/weixin.qq.\/q\/kZgfwMTm72WWPkovabbI"}
```
返回的参数包括:
`ticket`:获取的二维码ticket,凭借此ticket可以在有效时间内换取二维码。
`expire_seconds`:二维码的有效时间,以秒为单位,最大不超过1800秒。
`url`:二维码图片后的地址,开发者可根据该地址自行生成需要的二维码图片。
错误的Json返回示例:`{"errcode":13,"errmsg":"invalid appid"}`。这表示请求错误,可能原因是appid无效。
四、操作说明
获取二维码ticket后,开发者可以使用ticket换取二维码图片。值得注意的是,本接口无需登录态即可调用。换取二维码时,请确保对ticket进行UrlEncode。
感谢大家的阅读和支持,希望以上内容能够帮助到你!如果有任何疑问或建议,欢迎随时联系我们。
编程语言
- 微信 开发生成带参数的二维码的实例
- 正则表达式惰性匹配模式(-)
- PHP实现记录代码运行时间封装类实例教程
- PHP实现找出链表中环的入口节点
- 深入理解$.each和$(selector).each
- AngularJS框架中的双向数据绑定机制详解【减少需
- jQuery实现列表的增加和删除功能
- 在ASP.NET 2.0中操作数据之五十七:在分层架构中缓
- PHP命名空间namespace定义及导入use用法详解
- 微信JS-SDK分享功能的.Net实现代码
- php+pdo实现的购物车类完整示例
- jQuery三级下拉列表导航菜单代码分享
- 浅析PHP程序设计中的MVC编程思想
- 一步步做自己的webinstall安装包
- PHP实现留言板功能的详细代码
- AngularJS学习笔记之基本指令(init、repeat)