微信带参数二维码的实现

  微信带参数二维码有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,我就会来见你时,汉子会陷入深深的沉思的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值