微信开发带参数的二维码

1.由于项目需要,需要产生下级代理商,并且为代理商生成自己的二维码,代理商可以通过自己的二维码发展下级客户....

2.刚开始接触微信的接口,也是毫无头绪。。。。 现在后台看看,我去还是真是简单...

3.代码开始:

首先需要一个认证的公众号

需要 【网页授权获取用户基本信息】这个接口,并且配置网页授权回调域名。


然后

第一步:用户同意授权,获取code

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
注意:redirect_uri要urlencode一下,不然会出错



第二步:通过code换取网页授权access_token

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

第三步:刷新access_token(如果需要)可以不用


第四步:拉取用户信息

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
注意:(需scope为 snsapi_userinfo 才可以拉取到用户信息,否则获取不到用户详细信息)





以上是获取用户信息的接口方法



假设以上用户为代理商获取信息并且存入数据库,现在我们通过二维码的接口来给分配。

微信的二维码生成有2中方式,一种是永久的一种是零时的。这里我们用永久的方式:

接口URL :

 https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN
这里是post的方式  所以我们要用模拟的方式 提交。不知道的 百度一下吧。


参数

{"action_name": "QR_LIMIT_STR_SCENE", "action_info": {"scene": {"scene_str": "123"}}}
注意:这里的scene_str 的值,是二维码里面会带的参数而且是唯一一个参数,这里就把用户的UID传入。



通过ticket换取二维码

https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET
TICKET记得进行UrlEncode
这里就可以获取到一张带UID的二维码。这里我们可以写一个函数把图片下载到本地,当用户在获取的时候直接读本地图片即可,减少重复请求。



这样一张代理商的二维码就生成了。代理商可以拿着自己的二维码,获取到自己的客户,那么应该怎么做呢?


当代理商把二维码分享出去以后,用户扫描了这张带有参数的二维码,这里我们就要用关注事件来控制。

用户扫码后,第一个弹出的肯定是关注事件

这里分新用户关注和已关注用户 两种情况


我们就说新扫带参数二维码事件

当点击关注后...... 这里注意要开启服务器配置,不然收不到推送事件的

微信会推送一段xml到 你配置的服务器url



参数 描述
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType 消息类型,event
Event 事件类型,subscribe
EventKey 事件KEY值,qrscene_为前缀,后面为二维码的参数值
Ticket 二维码的ticket,可用来换取二维码图片
判断msgtype为event

这里我们已经获取到了用户的 openid和代理的uid

是不是已经很明显了。把他俩已绑定,是不是这个用户就成了这个代理的客户了。

eventkey我们还需要转换一下  因为有一个前缀。

XML记得要自己转一下


到这里已经做完了,是不是很简单o(∩_∩)o


发表评论 / Comment

用心评论~

金玉良言 / Appraise
路人加站长已认证
2015-11-17 18:07
谢谢