蓝川易枫 2015-02-13 03:23 采纳率: 0%
浏览 4545

微信带字符串参数二维码生成

微信上生成带字符串参数的二维码,不知道你有没试过,我这边是不行,用微信上的demo在测试工具上测试也行不通,是不是哪个细节我忽略了,求指教。。。

  • 写回答

1条回答 默认 最新

  • WorldMobile 2015-02-13 03: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,我就会来见你时,汉子会陷入深深的沉思的。

    评论

报告相同问题?

悬赏问题

  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择
  • ¥15 这款软件是什么?需要能满足我的需求
  • ¥15 SpringSecurityOauth2登陆前后request不一致