if (!string.IsNullOrEmpty(qrCodeUrl))
{
// 使用第三方API或本地生成二维码图片
// imgQrCode.ImageUrl = "GenerateQR.ashx?data=" + Server.UrlEncode(qrCodeUrl);
Bitmap qrBitmap = webncxk_class.GenerateQrCodeBitmap(qrCodeUrl, QRCodeGenerator.ECCLevel.Q, 8);//参数8为手机上可以选择看得到的图片
// 2. 将 Bitmap 转换为 Base64 字符串
using (MemoryStream ms = new MemoryStream())
{
// 将 Bitmap 保存为 PNG 格式到内存流中
qrBitmap.Save(ms, ImageFormat.Png);
// 将内存流转换为字节数组
byte[] byteImage = ms.ToArray();
// 3. 拼接 Base64 前缀并赋值给 asp:Image 的 ImageUrl
imgQrCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
}
}
else
{
// 演示/开发环境:使用本地模拟二维码(实际部署时替换为真实微信支付)
// imgQrCode.ImageUrl = "GenerateQR.ashx?data=" + Server.UrlEncode(
// "weixin://wxpay/bizpayurl?pr=" + orderNo);
Bitmap qrBitmap = webncxk_class.GenerateQrCodeBitmap("weixin://wxpay/bizpayurl?pr=" + orderNo, QRCodeGenerator.ECCLevel.Q, 8);
// 2. 将 Bitmap 转换为 Base64 字符串
using (MemoryStream ms = new MemoryStream())
{
// 将 Bitmap 保存为 PNG 格式到内存流中
qrBitmap.Save(ms, ImageFormat.Png);
// 将内存流转换为字节数组
byte[] byteImage = ms.ToArray();
// 3. 拼接 Base64 前缀并赋值给 asp:Image 的 ImageUrl
imgQrCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
}
// 同时在页面上显示提示
imgQrCode.ToolTip = "微信支付二维码(开发环境模拟)";
}
|