工作需要,根据动态参数生成小程序二维码。
找了下开发API :https://developers.weixin.qq.com/miniprogram/dev/api/qrcode.html
选择了B接口,可以无限生成,只是参数有点限制,但是可以满足需求,开搞。
一、获取 access_token
这个就不啰嗦了,项目里配置唯一的接口去获取。
二、获取小程序码
参数需要用POST,注意下是JSON形式的参数
然后特别坑的是返回值,如果请求成功,是直接返回小程序码图片的二进制流
所以这里处理下,把流转成Base64编码
var stream = GetPostResult(); // 这里就是获取返回的流 // 下面把流转成Base64编码 using (BinaryReader binreader = new BinaryReader(stream)) {byte[] bytes = binreader.ReadBytes(Convert.ToInt32(stream.Length));var base64str = Convert.ToBase64String(bytes);return base64str; }
三、显示图片
这里没有什么难度了,Base64编码可以直接放到img标签里,在页面上呈现图片:
<img src="data:image/png;base64,/*这里用上面生成的Base64字符串代替即可*/" />
四、其他
每次调用生成接口,生成的小程序码,返回的流都是不一样的,所以有心的话,最好保存下来,避免重复生成。
然而,流有点大,也就122K的样子 fu*k