/// <summary>/// 获取access_token/// </summary>/// <returns></returns>[HttpGet][Route("GetAccessToken")]public async Task<ActionResult> GetAccessToken(){string token = string.Empty;try{string wechatapi = "https://api.weixin.qq.com/";string appID = "wxc1aac131465e16b5";string appSecret = "ef392ad696f8ccbfd6659758ebead29c";//获取微信tokenstring token_url = wechatapi + "cgi-bin/token?grant_type=client_credential&appid=" + appID + "&secret=" + appSecret;HttpWebRequest request = (HttpWebRequest)WebRequest.Create(token_url);request.Method = "GET";HttpWebResponse response = (HttpWebResponse)request.GetResponse();Stream getImgStream = response.GetResponseStream();StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);string content = reader.ReadToEnd();response.Close();reader.Dispose();token = content;}catch (Exception ex){}return Ok(token);}/// <summary>/// B接口-微信小程序带参数二维码的生成/// </summary>/// <param name="access_token"></param>/// <returns></returns>[HttpGet][Route("CreateWxCode")]public async Task<ActionResult> CreateWxCode(string access_token){//适用于需要的码数量极多,或仅临时使用的业务场景//通过该接口生成的小程序码,永久有效,数量暂无限制。string postUrl = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + access_token;HttpWebRequest request = WebRequest.Create(postUrl) as HttpWebRequest;request.Method = "POST";request.ContentType = "application/json;charset=UTF-8";string options = "{\"scene\":\"" + 1 + "\",\"page\":\"pages/home/home\",\"width\":\"150\"}";byte[] payload = Encoding.UTF8.GetBytes(options);request.ContentLength = payload.Length;Stream writer = request.GetRequestStream();writer.Write(payload, 0, payload.Length);writer.Close();System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();System.IO.Stream stream = response.GetResponseStream();List<byte> bytes = new List<byte>();int temp = stream.ReadByte();while (temp != -1){bytes.Add((byte)temp);temp = stream.ReadByte();}byte[] result = bytes.ToArray();string base64 = Convert.ToBase64String(result);//将byte[]转为base64var QRcode = ToImage(base64);CombineBitmap("D://EWM/immm/222.jpg", QRcode);return Ok("{\"errcode\":0,\"errmsg\":\"获取成功\",\"buffer\":\"" + base64 + "\"}");}private string ToImage(string base64String){byte[] bytes = Convert.FromBase64String(base64String);using (Image image = Image.FromStream(new MemoryStream(bytes))){var imgName = DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg";image.Save("D://EWM/" + imgName, System.Drawing.Imaging.ImageFormat.Jpeg);  // Or Pngreturn "D://EWM/" + imgName;}}public string CombineBitmap(string backgroundImg,string FrontImg){var imgName = DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg";String jpg3 = "D://EWM/" + imgName;Image img1 = Image.FromFile(FrontImg);Image img2 = Image.FromFile(backgroundImg);int width = img2.Width;int height = Math.Max(img1.Height, img2.Height);Bitmap img3 = new Bitmap(width, height);Graphics g = Graphics.FromImage(img3);g.Clear(Color.Black);g.DrawImage(img2, new Point(0, 0));g.DrawImage(img1, new Point(img2.Width - img1.Width, img2.Height - img1.Height));System.Drawing.Text.PrivateFontCollection font = new System.Drawing.Text.PrivateFontCollection();font.AddFontFile("E:/Orchard_GOV/OnonMRMS/src/OrchardCore.Onon/Onon.Gov/wwwroot/Fonts/MQG.ttf");//检测字体类型是否可用var r = font.Families[0].IsStyleAvailable(FontStyle.Regular);var b = font.Families[0].IsStyleAvailable(FontStyle.Bold);//定义成新的字体对象FontFamily myFontFamily = new FontFamily(font.Families[0].Name, font);Font myFont = new Font(myFontFamily, 22, FontStyle.Bold);//将字体显示到控件  //g.DrawString("这里输入文字", font, new SolidBrush(Color.Red), 15, 15);g.TranslateTransform(15, 15);//设置旋转角度g.RotateTransform(90);//画文字 g.DrawString("ᠮᠣᠩᠭᠣᠯ ᠬᠥᠮᠥᠨ ᠡᠨᠳᠡ ᠪᠠᠢᠨ᠎ᠠ", myFont, new SolidBrush(Color.White),60, -60);g.ResetTransform();g.Dispose();img2.Dispose();img1.Dispose();img3.Save(jpg3, System.Drawing.Imaging.ImageFormat.Jpeg);img3.Dispose();return jpg3;}
-----GT

C#生成微信小程序文章二维码相关推荐

  1. 微信小程序分享二维码生成

    生成微信小程序分享二维码 微信小程序官方开放的二维码的接口,其中有一个是生成小程序二维码的,还有一个是圆形的小程序码,我这里就用php生成二维码. 完整代码: public function shar ...

  2. 微信小程序扫描二维码或者条码

    程序是需要扫描条形码然后跳转到对应的产品信息页,其实微信小程序就有一个扫码识别的API,下面一起来看看: wx.scanCode(Object object) 调起客户端扫码界面进行扫码. 示例代码: ...

  3. 微信小程序转二维码方法分享

    微信小程序转二维码方法分享 需要转码的可以看看 这个东西是看个人需求的,618就要来了,各种活动也将来袭 有些小伙伴不知道怎么生成 为了方便小程序邀请活动没法外发,这里分享下将小程序转二维码的方法 首 ...

  4. 【微信小程序】二维码跳转规则的前缀匹配是什么意思?

    前言 基础库 2.12.0 开发者工具 1.03.2008270 微信小程序的二维码跳转规则 为了方便小程序开发者更便捷地推广小程序,兼容线下已有的二维码,微信公众平台开放扫描普通链接二维码跳转小程序 ...

  5. 微信小程序获取二维码中URL中带的参数

    解析微信小程序获取二维码中的url参数 onLoad: function (options) { console.log(options) let qrUrl = decodeURIComponent ...

  6. 微信小程序普通二维码解析

    1.区别于微信小程序官方二维码是直接从onLoad的 options 解构出来就行,它是一个对象,这个大家都知道. 2.普通二维码 也是从onLoad的 options 里解构出来,此时options ...

  7. 微信小程序获取二维码接口整理,.Net Core后台获取小程序二维码

    2019独角兽企业重金招聘Python工程师标准>>> 一.关于二维码接口说明 参考:https://my.oschina.net/tianma3798/blog/1811307 获 ...

  8. 微信小程序获取二维码

    原文链接:https://blog.csdn.net/w410589502/article/details/77702358/ 版权归原有博主,此处为了方便自己是查看,故copy一份,B接口调用,亲测 ...

  9. 【微信小程序】微信小程序保存二维码海报到相册,以及解决二维码不够清晰的问题

    小程序保存二维码海报 添加 canvas 元素poster <canvas class="poster" canvas-id="poster" style ...

最新文章

  1. Zookeeper服务端线程分析(单机)
  2. CSS样式表初始化代码
  3. Download Excel
  4. QuickWAP 2005企业WAP网站系统简介
  5. SQL OVER用法
  6. java quartz没执行完_quartz 防止上一任务未执行完毕,下一时间点重复执行
  7. (JAVA)线程之lock和死锁(例)
  8. Struts2标签库常用标签
  9. 应用发布前,需要注意事情
  10. Java并发之ThreadLocal
  11. decimal.tostring()格式
  12. iOS底层探索之多线程(三)—初识GCD
  13. cmd长ping记录日志和时间_ping记录带时间戳
  14. SPSS数据分析全套教程(1)——SPSS概览
  15. 在java中new一个对象的流程是怎样的
  16. 交换机(三层)接入层、汇聚层和核心层交换机的特点
  17. 网络营销人应具备的五大思维
  18. 计算机版初中语文课文原文,初中语文课文蝉原文
  19. 字节跳动技术岗官方解析 · 客户端篇:业务、中台、infra,这里的客户端究竟是怎样的?...
  20. 一个项目中两台西门子S7-1500CPU之间的TCP通信组态

热门文章

  1. nowcoder_A_放羊的贝贝_思维+数学
  2. winform程序中e.Cancel有什么意义
  3. 关于2021/12/17国内bing不能正常访问的解决方法。
  4. 千兆网线的制作方法法与千兆水晶头的制作方法
  5. gmap.net基础详细介绍
  6. DirectX 3D灯光和材质
  7. 欢乐夺宝源码欢乐夺宝系统开发功能分享
  8. maven创建离线本地仓库的坑之verifying availability
  9. Linux 远程复制文件和目录
  10. 商标分类表45类明细图解及下载(更新)