博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 调用微信公众号接口生成带参数二维码、下载、合并
阅读量:4287 次
发布时间:2019-05-27

本文共 3007 字,大约阅读时间需要 10 分钟。

一、生成带参数二维码

官方文档:

1.请求地址

/// /// 创建二维码--Post/// /// 
public string GetQrCode(){ string url = string.Format("https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}", config.Access_Token); return url;}

2.使用POST提交获取ticket 和链接地址

/// /// 创建二维码-带有推荐人的openid/// /// /// 
public string Create(string fromuser){ string url = new LinkManage().GetQrCode(); JObject data = new JObject(); data.Add("action_name", "QR_LIMIT_STR_SCENE"); data.Add("action_info", JObject.FromObject(new { scene = new { scene_str = fromuser } })); string result = NetHelper.Post(url, data.ToString()); JObject back = JObject.Parse(result); JToken ticket = back.SelectToken("ticket"); if (ticket == null) throw new Exception($"获取二维码失败:" + result); return ticket.ToString();}

3.根据ticket获取二维码图片 ,就是一个地址

/// /// 获取二维码图片/// /// /// 
public string GetQrCodeShow(string ticket){ string url = string.Format("https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={0}" , SecurityHelper.UrlEncode(ticket)); return url;}

二、下载二维码到本地

/// /// 下载二维码图片/// /// /// 
public string Download(string fromuser){ //1.创建 string ticket = Create(fromuser); //2.下载 string url = new LinkManage().GetQrCodeShow(ticket); string filename = $"{fromuser}.jpg"; string path = AppDomain.CurrentDomain.BaseDirectory + "data/wxqrcode/" + filename; //如果已经存在删除 if (File.Exists(path)) File.Delete(path); //下载 DownFile(url, path); return path;}
使用WebClient下载文件:

//下载到文件public static void DownFile(string url, string target){    try    {        WebClient _client = new WebClient();        byte[] data = _client.DownloadData(url);        File.WriteAllBytes(target, data);    }    catch (Exception ex)    {        throw new Exception("下载文件(" + target + ")失败:" + ex.Message + "|" + ex.StackTrace);    }}

三、合成二维码到海报图片

注:C#使用GDI+ 合成图片

/// /// 生成推荐海报,返回图片地址/// /// public string MergeImage(OAuthUser user){    //1.下载二维码    string qrcode = Download(user.openid);    //2.下载头像    string touxiang = AppDomain.CurrentDomain.BaseDirectory + "data/wxtx/" + user.openid + ".jpg";    if (File.Exists(touxiang))        File.Delete(touxiang);    DownFile(user.headimgurl, touxiang);    //3.合成到一张图片    string resultfile = AppDomain.CurrentDomain.BaseDirectory + "data/share/" + user.openid + ".jpg";    string bgfile = AppDomain.CurrentDomain.BaseDirectory + "assets/pages/img/qrcode.jpg";    Bitmap bit = new Bitmap(bgfile, false);    Graphics g = Graphics.FromImage(bit);    //添加二维码    Bitmap qrcodeImage = new Bitmap(qrcode);    g.DrawImage(qrcodeImage, 540, 1155, 180, 180);    //添加头像     Bitmap touxiangImage = new Bitmap(touxiang);    g.DrawImage(touxiangImage, 10, 10, 80, 80);    //添加昵称    g.DrawString(user.nickname, new Font("微软雅黑", 10, FontStyle.Regular), Brushes.White, 100, 25);    g.Dispose();    //保存    bit.Save(resultfile, ImageFormat.Jpeg);    bit.Dispose();    qrcodeImage.Dispose();    touxiangImage.Dispose();    return resultfile;}
更多:

转载地址:http://rxogi.baihongyu.com/

你可能感兴趣的文章
卡巴斯基安全部队2013中文免费版【可免费使用一个月】
查看>>
【Win8网络被攻击教你手动绑定ARP技巧】
查看>>
【让U盘的使用记录在注册表中消失的方法】
查看>>
【找回Win8系统不见的附件目录&小工具】
查看>>
【教你几种禁止修改IP的方法】
查看>>
思量QQ本地会员v3.8官方2013版【免费使用部分QQ会员功能】
查看>>
【U盘修复工具的使用教程】
查看>>
【问答解题:xp无法连接wpa加密怎么办?】
查看>>
【Win7系统 沙滩啤酒桌面主题】
查看>>
【.NET支持上下左右移动操作】
查看>>
【用Win7备份与还原让系统轻松回魂】
查看>>
【用Win7自带的DVD Maker制作视频】
查看>>
【幸福相守Windows7桌面热门主题】
查看>>
【天天酷跑新手全攻略】
查看>>
【有道云笔记手机PC端自动同步】
查看>>
【黑色蕾丝性感女神XP电脑主题】
查看>>
【XP系统命令提示符都有哪些运用技巧】
查看>>
【4个Win7系统轻松清理记录小技巧】
查看>>
【页面脚本错误快速解决方案】
查看>>
【php输出内容乱码解决方法】
查看>>