工作需要,根據動態參數生成小程序二維碼。
找了下開發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