PHP获取微信小程序的带参数二维码

最近公司的一款产品需要用到微信小程序的带参数的二维码。虽然微信提供了现成的API,但是整个过程中有非常多的坑。
微信的官方文档:获取二维码 · 小程序

获取Access Token

获取二维码的接口需要用到应用的Access Token。只需要向微信的提供的接口发送 AppIDAppSecret即可获得Access Token。每个Access Token的有效期为7200秒,我们的方案是获取到Access Token之后将其写入Redis并设置7200秒的过期时间。

获取二维码

接下来我们向微信的获取二维码接口使用GET发送 access_token,使用POST发送 path(小程序页面的URI)和 width(二维码宽度)。
需要注意的是, pathwidth参数需要用 json_encode()封装为json后发送,而不能直接用POST作为表单发送。

存储二维码

当我完成上一步骤之后,我得到了这么一堆东西:

这塔马什么鬼?
经过观察和大佬的指点,得出这其实是二维码图片的二进制数据流。注意看图中第一行有个JFIF字样,如果你用文本编辑器打开一个jpg文件,会发现里面也一样会有JFIF字样。
我们只要将它写入到服务器硬盘就可以了。代码非常简单:

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注

Are you human? Click the Pineapple...