二维码生成

#region 二维码生成

/// <summary>
/// 获取二维码
/// </summary>
///<returns>返回</returns>
[ActionName("GetQRCodeBySysInfo")]
[HttpGet]
[ApiAuth]
public IHttpActionResult GetQRCodeBySysInfo()
{
var data = this.meBll.GetQRCodeBySysInfo();
return this.Success("data:image/png;base64," + data);
}

#endregion

ThoughtWorks.QRCode.Codec

 

 public static string Encrypt(string source, string key);

#region 二维码生成

/// <summary>
/// 生成二维码返回base64
/// </summary>
/// <param name="companyunm">生成码AREANUM+USEDCOMPANYID</param>
/// <param name="companyname">公司名称</param>
/// <returns>返回base64</returns>
public static string GetQRCode(string companyunm, string companyname)
{
string str = "{\"companyNum\":\"" + companyunm + "\",\"companyName\":\"" + companyname + "\"}";
//加密秘钥
string enCodeString = DesHelper.Encrypt(str.Trim(), "0A0B6B901D054ADCBA0FC295");
Bitmap bitmap;
QRCodeEncoder qRCodeEncoder = new QRCodeEncoder
{
QRCodeScale = 4,//二维码的规模,默认4
QRCodeVersion = 7,//二维码版本,默认7
QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M,//设置错误校验码级别,默认中等
};
bitmap = qRCodeEncoder.Encode(enCodeString, Encoding.UTF8);
MemoryStream ms = new MemoryStream();
bitmap.Save(ms, ImageFormat.Jpeg);
byte[] arr = new byte[ms.Length];
ms.Position = 0;
ms.Read(arr, 0, (int)ms.Length);
ms.Close();
return Convert.ToBase64String(arr);
}

#endregion

posted @ 2021-12-24 15:10  laolv  阅读(51)  评论(0编辑  收藏  举报