微信公众号生成带参数二维码

最近做公众号开发,不同小程序绑定一个公众号完成企业打款,需要识别不同场景,也就是识别二维码来自哪个渠道,需要在用户扫描二维码时识别携带的参数
上网查到了解决办法

如下(永久二维码)
  • 获取二维码的ticket
//接口地址
https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=$access_token

//POST参数
{
    "action_name": "QR_LIMIT_SCENE",
    "action_info": {
        "scene": {
            "scene_id": 1 //二维码的场景值
            //"scene_str": "aaa" 尝试过这种写法,结果接受到的eventkey都为0 ,无法区分,如果有人有成功案例,还请在评论区评论 \(^0^)/
        }
    }
}

//返回参数
{
    "ticket": "gQFWATwswdefrAAAAS5odHRwOi8vd2VpeGluwnFxLssvbS9xLzqwsxh2eTVDZ3BJamsxaaaaaDAwM1IAAgRWgNlbwQswxsaz",
    "url": "http://weixin.qq.com/q/02Ixcdscdergw0003R"
}
//url为二维码链接
  • 接下来通过取得的ticket换取二维码图片
//接口地址(GET)
https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=$ticket

结果会输出二维码的图片
  • 当用户扫码访问 (可根据EventKey判断场景值)
//接收参数
<xml>
<ToUserName>ToUserName>        //开发者微信号
<FromUserName>FromUserName>     //发送者账号(openid)
<CreateTime>123456789CreateTime>             //消息创建时间
<MsgType>MsgType>                    //消息类型event
<Event>Event>               //事件类型 event
<EventKey>EventKey>            //事件key值,是一个32位无符号整数,即创建二维码时的二维码scene_id
<Ticket>Ticket>                     //二维码的ticke,可以用来换取二维码图片
xml>
临时二维码
  • 获取ticket
//接口地址
https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN
//POST参数 
{
	"expire_seconds": 3592000, //二维码有效时间 最大为2092000 = 30天
	"action_name": "QR_SCENE", 
	"action_info": {
		"scene": {
			"scene_id": 2 // 二维码场景值
		}
	}
}

//结果
{
    "ticket": "asgufgchkjdacnkaeucmiwkskasjfhgyuvhkdsjncfdaijcfv",
    "expire_seconds": 2592000,
    "url": "http://weixin.qq.com/q/tuiopdfghjklfghjkl"
}
  • 生成二维码同上

你可能感兴趣的:(微信)