为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。
目前有2种类型的二维码:
1、临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景
2、永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。
用户扫描带场景值二维码时,可能推送以下两种事件:
如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。
如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者。
获取带参数的二维码的过程包括两步,首先创建二维码ticket,然后凭借ticket到指定URL换取二维码。
一、开发流程
- 调用生成ticket接口,生成ticket。
- 调用获取二维码接口,需传递ticket。
- 在后台获取事件推送消息,从中提取二维码携带的参数。
二、接口
ticket接口
url | https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN |
格式 | JSON |
HTTP请求方式 | POST |
接口说明 | 生成ticket接口 |
参数说明
参数名称 | 是否必填 | 类型 | 说明 |
access_token | 是 | String | 公众号token,不通过jsonbody传递,拼接在url后 |
expire_seconds | 否 | Integer | 该二维码有效时间,以秒为单位。 最大不超过2592000(即30天),此字段如果不填,则默认有效期为60秒。 |
action_name | 是 | String | 二维码类型,QR_SCENE为临时的整型参数值,QR_STR_SCENE为临时的字符串参数值,QR_LIMIT_SCENE为永久的整型参数值,QR_LIMIT_STR_SCENE为永久的字符串参数值 |
action_info | 是 | Object | 二维码详细信息,其中包含了场景值id |
scene_id | 是 | Integer | 场景值ID,临时二维码时为32位非0整型,永久二维码时最大值为100000(目前参数只支持1–100000) |
scene_str | 是 | String | 场景值ID(字符串形式的ID),字符串类型,长度限制为1到64 |
返回参数说明
{ "ticket":"gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhYmJJAAIEZ23sUwMEmm 3sUw==", "expire_seconds":60, "url":"http://weixin.qq.com/q/kZgfwMTm72WWPkovabbI" }
参数名称 | 描述 |
ticket | 获取二维码所需 |
expire_seconds | 过期时间 |
url | 扫码后跳转的地址,可以用这个地址自行生成二维码 |
请求说明
- action_name选择QR_LIMIT_SCENE或QR_LIMIT_STR_SCENE生成永久二维码,不需要传递expire_seconds参数。
- scene_id和scene_str只需传递其中一个,需对应action_name传递的是整型还是字符串类型。
- JSON参数示例
- 整型:{“action_name”: “QR_LIMIT_SCENE”, “action_info”: {“scene”: {“scene_id”: 123}}}
- 字符串类型:{“action_name”: “QR_LIMIT_STR_SCENE”, “action_info”: {“scene”: {“scene_str”: “test”}}}
官方文档
https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html
获取二维码接口
url | https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET |
HTTP请求方式 | get |
接口说明 | 获取二维码接口 |
返回说明
ticket正确情况下,http 返回码是200,是一张图片,可以直接展示或者下载。
官方文档
https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html
三、配置事件推送
(1) 微信会将扫描带参数二维码事件的数据推送到服务器配置的地址。
(2) 在后台解析微信推送的数据即可获得二维码携带的信息,其中包含生成时二维码是传递的场景值id。
官方文档
https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_event_pushes.html
欢迎大家关注公众号:
评论前必须登录!
注册