微信上生成带字符串参数的二维码,不知道你有没试过,我这边是不行,用微信上的demo在测试工具上测试也行不通,是不是哪个细节我忽略了,求指教。。。
1条回答 默认 最新
- WorldMobile 2015-02-12 19:25关注
微信带参数二维码的实现 (2014-05-07 18:04:41)转载▼
标签: rails 微信 带参数二维码 it 分类: 计算机技术
微信带参数二维码有2种类型,分别是临时二维码和永久二维码,前者有过期时间,最大为1800秒,但能够生成较多数量,后者无过期时间,数量较少(目前参数只支持1--100000)。两种二维码分别适用于帐号绑定、用户来源统计等场景。本例以永久的为例,使用的是ruby语言
1,创建一个二维码的ticket,关于一些参数可参数官网上的文档,这里直接上代码吧
def get_ticket wx_mp_user
appid = wx_mp_user.app_id #公众号app_id
secret = wx_mp_user.app_secret #公众号app_secret
url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=# {appid}&secret=#{secret}"
url = URI::encode(url)
result = RestClient.get(url)#发起get请求,获取公众号的access_token
info = JSON(result)
access_token = info['access_token']
return '' unless access_token.present?
attrs = "{\"action_name\": \"QR_LIMIT_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": # {SCENE_ID}}}}"#请求二维码接口所需的参数,注意转义符
result = RestClient.post("https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=# {access_token}", attrs)#发起post请求,得到ticket
info = JSON result
info['ticket']
end通过上面的上步就得到了ticket,现在我们要通过ticket换取二维码了
换取二维码就要看你具体要怎样了,通过下面的url,将ticket补上去就能看到了,
https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET
当然你可以使用代码将它放到你的网站去好了,上面的一系列操作是怎么生成一个二维码,现在说一下二维码怎么用,当你们老板想统计一下到底有多少人会对电线杆上某重金求子的广告感兴趣的时候,他就会在广告上放一个二维码,那么那些‘求子若渴’的人扫描 二维码,会发生什么事情呢。
当某个汉子扫描这个二维码的时候,触发了微信一个叫msgtype的消息类型,扫描的结果有两种,一种是这个汉子关注过你的公众号,直接推送消息,二是汉子没有关注你的公众号,则会弹出一个公众号的关注页面,汉子关注完后再推送消息
当汉子关注了的时候,微信直接会推一个消息过来,event类型为SCAN, 所以你在SCAN事件里面就能捕捉到扫描 后的key和ticket,如下
if 'SCAN'.eql?(xml[:Event])
content = scan_qrcode(mp_user, from_user_name, xml[:EventKey])#这个方法会进行一系统 操作之后,返回一个字符串,给用户,具体怎么操作,看你们自己需要
response_text(from_user_name, to_user_name, content)
end另一种是汉子没有关注,会弹出一个关注页面,点完关注后,再推送消息
if 'subscribe'.eql?(xml[:Event])
#如果是带参数的关注
if xml[:EventKey].present? && xml[:EventKey].start_with?("qrscene")
scene_id = xml[:EventKey].split('_').last
content = scan_qrcode(mp_user, from_user_name, scene_id)#这个方法会进行一系统 操作之后,返回一个字符串,给用户,具体怎么操作,看你们自己需要
return response_text(from_user_name, to_user_name, content)
end
end好了,上面的二种方式汉子就能知道二维码到底返回他什么了,当返回我想和你见一面,请往XX卡上打10W,我就会来见你时,汉子会陷入深深的沉思的。
解决 无用评论 打赏 举报