微信公众号生成二维码

时间:2022-11-16 21:38:12

前言:公众号开发,难免遇到二维码,再此做个记录

第一:到  https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432  去看一下文档,选择账户管理,里面有生成带参数二维码的说明

第二:二维码分为零时和永久

        共同点:不管是永久还是临时,都是请求同一个地址

            https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN

            其中token是调用微信获得

        1、永久格式

            请求参数:

                数值型:{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 123}}}

                字符串型:{"action_name": "QR_LIMIT_STR_SCENE", "action_info": {"scene": {"scene_str": "test"}}}

            请求格式:post

    php请求示例:微信公众号生成二维码

            请求之后得到的数据格式(临时,永久相同):

                {"ticket":"gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhYmJJAAIEZ23sUwMEmm

3sUw==","expire_seconds":60,"url":"http://weixin.qq.com/q/kZgfwMTm72WWPkovabbI"}

            到此得到了二维码信息,但二维码图片还没有。ticket:根据该数据到微信获取二维码图片。expire_seconds:二维码有效期(永久二维码没有)。url:扫描二维码解析之后的地址

      PS:如果要自己利用第三方的工具类,或者插件生成二维码,到此就可以了,把url作为内容拿去生成二维码

            获取二维码图片:

                请求地址(get):

https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET

                微信公众号生成二维码

到此永久二维码结束。

2、临时二维码

    请求参数类型

            数值:

{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}
            字符串:
{"expire_seconds": 604800, "action_name": "QR_STR_SCENE", "action_info": {"scene": {"scene_str": "test"}}}

    同上post请求 https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN 地址并传递参数过去

    PS:    是字符串就传字符串是数值就传数值

    请求之后同上得到

{"ticket":"gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhYmJJAAIEZ23sUwMEmm
3sUw==","expire_seconds":60,"url":"http://weixin.qq.com/q/kZgfwMTm72WWPkovabbI"}
    一串数据

    转换数据取出 ticket

    调用地址并传递ticket

https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET

    以get请求获取图片信息。

之后保存就行



二维码加水印:

    1、通过上面获取到二维码并保存之后,继续加载logo

        通过 getimgagesize(路径)获取到保存的二维码和log图片信息,得到图片数据。

    2、删除原图

   3、利用imagecopymerge()函数合并生成图片

           将  log 图像中坐标从0开始到0结束,高为$logoWidth的部分拷贝到$logox和$logoy的地方,合并程度为100

            说明:0到0标识logo图片全部加载,不用裁剪。合并程度为0到100 如果是0就什么都没做,100完全重叠,类似透明的感觉。

微信公众号生成二维码


到此二维码结束。