getUnlimited 獲取小程序碼,適用於需要的碼數量極多的業務場景。通過該接口生成的小程序碼,永久有效,數量暫無限制。
小程序官方文檔 wxacode.getUnlimited
/// <summary>
/// 獲取小店小程序碼
/// </summary>
/// <returns>返回的圖片 Buffer</returns>
public object GetWxacode(string pagePath, int width, string Id)
{
var accessToken = "";//獲取小程序全局唯一后台接口調用憑據(access_token
)
var data = "{\"scene\":\"" + Id + "\",\"path\":\"" + HttpUtility.UrlDecode(pagePath) + "\",\"width\":" + width + "}";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken); //創建url
request.Method = "POST";
request.ContentType = "application/json;charset=UTF-8";
byte[] load = Encoding.UTF8.GetBytes(data);
request.ContentLength = load.Length;
Stream writer = request.GetRequestStream();
writer.Write(load, 0, load.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream s = response.GetResponseStream();
byte[] mg = StreamToBytes(s);
MemoryStream ms = new MemoryStream(mg);
string qrCodeImagePath = string.Empty;
qrCodeImagePath = "data:image/gif;base64," + Convert.ToBase64String(ms.ToArray());
ms.Dispose();
var QrCodeImagePath = qrCodeImagePath;
return QrCodeImagePath;
}
private static byte[] StreamToBytes(Stream stream)
{
List<byte> bytes = new List<byte>();
int temp = stream.ReadByte();
while (temp != -1)
{
bytes.Add((byte)temp);
temp = stream.ReadByte();
}
return bytes.ToArray();
}