/// <summary>/// 生成二维码/// </summary>/// <returns></returns>/// 申请生成二维码的用户 CreatQrCodeUserpublic string CreateQrCodeImage(string CreatQrCodeUser){string WeixinQrCodePath = ConfigurationManager.AppSettings["WeixinQrCodePath"].TryToString(); //配置的文件地址string rootpath = System.AppDomain.CurrentDomain.BaseDirectory;//程序运行地址string path = rootpath + WeixinQrCodePath; //文件夹绝对路径string filename = Guid.NewGuid().TryString() + ".jpg";string absolutelyPath = path + "/" +filename; //生成的二维码绝对路径string returnPath = "";//文件返回的路径if (!Directory.Exists(path)){Directory.CreateDirectory(path);}int Sceneid = WeixinDA.GetQrcodeImgMaxSceneid(CreatQrCodeUser);//保存二维码生成的图片WeixinQrCode.SaveQrCodeImage(Sceneid.TryString(), absolutelyPath);//最终生成二维码string ResultCodeImg = path + "/" + filename; //最终合成图片的绝对路径returnPath = WeixinQrCodePath + "/" + filename;//最终合成图片的相对路径WeixinDA.SaveUserQrcodeImg(CreatQrCodeUser, Sceneid, returnPath);return returnPath;}

/// <summary>
/// 获取二维码图片Url,需要Format 0.ticket
/// </summary>
public const string WeiXin_QrCode_GetUrl = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={0}";

 /// <summary>/// 根据Ticket获取二维码图片保存在本地/// </summary>/// <param name="scene_id">二维码场景id</param>/// <param name="imgPath">图片存储路径</param>public static void SaveQrCodeImage(string scene_id, string imgPath){try{string Ticket = WeiXinCommom.CreateTicket(scene_id);if (Ticket == null)throw new ArgumentNullException("Ticket");//ticket需 urlEncodestring stUrl = string.Format(WeiXinCommom.WeiXin_QrCode_GetUrl, HttpUtility.UrlEncode(Ticket));WeiXinCommom.SaveUrlImage(stUrl, imgPath);}catch (Exception ex){LogHelper.WriteFileLog("qrcodeError", ex.Message);}}public const string WeiXin_Ticket_CreateUrl = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}";public const string QrCodeTicket_Create_TempJsonStrin = "{\"expire_seconds\": 604800, \"action_name\": \"QR_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": {0}}}}";/// <summary>/// 获取Ticket/// </summary>/// <returns></returns>public static string CreateTicket(string scene_id){string access_token = WeiXinCommom.GetAccsss_token(); ;if (string.IsNullOrEmpty(access_token))throw new ArgumentNullException("Access_Token");string url = string.Format(WeiXin_Ticket_CreateUrl, access_token);string postData = QrCodeTicket_Create_TempJsonStrin.Replace("{0}", scene_id);string result = PostData(url, postData);WeixinQrCode.Ticket ticket = JsonConvert.DeserializeObject<WeixinQrCode.Ticket>(result);if (ticket == null || string.IsNullOrEmpty(ticket.ticket)){FileLog.AddLog("ticket", "获取二维码ticket失败");return "";}return ticket.ticket;}/// <summary>/// Post数据/// </summary>/// <param name="posturl"></param>/// <param name="postData"></param>/// <returns></returns>public static string PostData(string posturl, string postData){Stream outstream = null;Stream instream = null;StreamReader sr = null;HttpWebResponse response = null;HttpWebRequest request = null;Encoding encoding = Encoding.UTF8;byte[] data = encoding.GetBytes(postData);// 准备请求...try{// 设置参数request = WebRequest.Create(posturl) as HttpWebRequest;CookieContainer cookieContainer = new CookieContainer();request.CookieContainer = cookieContainer;request.AllowAutoRedirect = true;request.Method = "POST";request.ContentType = "application/x-www-form-urlencoded";request.ContentLength = data.Length;outstream = request.GetRequestStream();outstream.Write(data, 0, data.Length);outstream.Close();//发送请求并获取相应回应数据response = request.GetResponse() as HttpWebResponse;//直到request.GetResponse()程序才开始向目标网页发送Post请求instream = response.GetResponseStream();sr = new StreamReader(instream, encoding);//返回结果网页(html)代码string content = sr.ReadToEnd();string err = string.Empty;return content;}catch (Exception ex){LogHelper.WriteFileLog("PostDataerror", string.Format("{0}", ex.Message));return string.Empty;}}

  

转载于:https://www.cnblogs.com/yyyuguo/p/8426813.html

c# 微信开发 《生成带参数的关注二维码》相关推荐

  1. 微信公众号开发----生成带参数的临时二维码

    本文只提供代码实现,具体参数含义请先仔细阅读微信公众号技术文档之生成带参数的二维码 临时二维码请求说明: 一.常量类 public class WechartConst {//生成带参数的二维码pub ...

  2. 微信公众号怎么生成带统计的渠道二维码

    公众号生成带统计的渠道二维码,通过公众号开发接口生成带参数的二维码实现,记录粉丝关注取关的结果,包含粉丝昵称.粉丝头像等都是公众号平台提供的接口开发.微号帮平台现有功能渠道二维码生成实现,也可以自己开 ...

  3. 基于phpqrcode生成带LOGO图标的二维码(源代码例子)

    基于phpqrcode生成带LOGO图标的二维码(源代码例子) <?php //文件输出 include('phpqrcode.php'); // 二维码数据 $data = 'http://w ...

  4. 微信公众号-添加参数获取场景二维码路径

    1.微信公众平台测试账号 我用内网穿透把本地的项目映射到外网,主要为了方便测试 在本地项目映射成功后可以扫一下"测试号二维码 "看是否正常进入到后台 2,添加参数获取场景二维码路径 ...

  5. 使用vue-qr生成带中间带图片的二维码

    1.安装 npm install vue-qr --save 2.在页面中使用 logoSrc:二维码中间的logo图 size:图片尺寸 text:二维码地址或内容 margin:二维码图片的空白边 ...

  6. 微信开发生成带参数的二维码的讲解

    在微信公众号平台开发者那里,在"账号管理"那里,有一项功能是"生成带参数的二维码",通过这儿生成的二维码,只要通过微信扫一扫之后,会把事件自动推送到微信公众号上 ...

  7. thinkphp5 获取带参数公众号二维码 以及如何接收二维码参数 微信公众号开发(一)

    // 获取公众号带参数二维码     public function getqrcodeticket($value='')     {         // @header('Content-type ...

  8. asp微信会员积分上下级团队注册,带参数推荐人的二维码,分销等级会员生成二维码海报系统

    昨天一个好友来电话让帮忙做一个程序,他的老板让他做一个能扫码注册的会员系统,注册会员必须要推荐人的二维码扫才可以注册,这就是需要带参数的二维码了,还要生成宣传海报,还要生成会员自已的二维码,还要带积分 ...

  9. java 生成带网络头像的二维码

    最近做一个带微信头像的二维码的功能,微信头像是一个链接,所以先把微信头像下载,临时保存,生成二维码 /*** 文件下载工具类** @author zhengxinghua*/ public class ...

  10. 生成带logo图像的二维码

    首先先处理图像 将图片按自己的要求进行缩放,以便于加载到二维码的中心 */ private static BufferedImage scale(String srcImageFile, int he ...

最新文章

  1. delphi dbgrideh 遍历每一个单元格_用Python解数独[1]:求每个单元格的行值域
  2. mxnet:mx.sym.BlockGrad理解
  3. 2014Esri国际用户大会ArcGIS Online
  4. Java HashMap的死循环的启示
  5. Mac下搭建jekyll环境
  6. 坦克大战java_清华毕业大佬用一个坦克大战项目讲完了23种设计模式
  7. IE9以及IE9以下,无法执行innerHTML这一操作的解决方法
  8. java--xml文件读取(SAX)
  9. static关键字_乐字节Java|this关键字、static关键字、block块
  10. 台湾省谷歌高清卫星地图下载
  11. Angular动态加载组件报错:No component factory found for XXXXComponent. Did you add it to
  12. 不服!女性为何成为科技领域的“隐形人”?讲讲崛起中的“她”力量
  13. 2018软考中级嵌入式系统设计师复习思路
  14. android 越来越慢,为什么安卓手机总是越用越慢?怎么...
  15. Matlab 蒙特卡洛求解三门问题
  16. 计算机知识大赛五书,2017昆山千灯镇事业单位考试常识——昆山市情解析
  17. chrome扩展设置代理
  18. html5 2种布局模式
  19. 图像控制点 形变_基于控制点的图像变形方法的研究与实现
  20. springboot项目拦截器重定向循环问题

热门文章

  1. python turtle原点位置_python中turtle库中setworldcoordinates(坐标系的移动)
  2. 如何将交换功能写成函数?
  3. vb 获取设备音量_自制 Windows 10X 启动盘,提前体验微软折叠设备新系统
  4. java 向文件写数据结构_Java Note 数据结构(5)映射
  5. opengl 图片处理 卷纸弯曲效果_神笔马良——基于 OpenGL 的涂鸦框架
  6. python dict遍历_Python专题——详解enumerate与zip用法
  7. 【算法笔记+SGU275+HDU3949】线性基(XOR,求n个数异或得到的第k小的数)
  8. python学习资源分享
  9. Python面向对象:类
  10. 极客大学架构师训练营 框架设计、设计原则、设计模式 第四课 听课总结