public static WxJsonResult Temp(Stream stream, string path, int r = 0, int g = 0, int b = 0, int width = 430, bool auto_color = false, int timeOut = Config.TIME_OUT) { var accessTokenOrAppId = WXHelper.GetXCXAccessToken(appId, appSecret); return(ApiHandlerWapper.TryCommonApi(accessToken => { const string urlFormat = "https://api.weixin.qq.com/wxa/getwxacode?access_token={0}"; var url = string.Format(urlFormat, accessToken); var data = new { path = path, width = width, auto_color = false, is_hyaline = false }; Post.Download(url, SerializerHelper.GetJsonString(data), stream); return new WxJsonResult() { errcode = ReturnCode.请求成功 }; }, accessTokenOrAppId)); }
/// <summary> /// 获取微信小程序码 /// </summary> /// <param name="pages"></param> /// <param name="scenes"></param> /// <param name="fileName"></param> /// <returns></returns> public static string GetWxImage(string pages, string scenes, string fileName) { var accessToken = WXHelper.GetXCXAccessToken(appId, appSecret); if (accessToken == "error") { throw new Exception("accessToken出错"); } string url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken; var parm = new { page = pages, //"pages/index/index", scene = scenes //= "id=1" }; var DataJson = JsonConvert.SerializeObject(parm); var ret = PostMoths(url, DataJson, fileName); return(ret);//返回图片地址 }
/// <summary> /// 检查评论 /// </summary> /// <param name="content">评论内容</param> /// <returns></returns> public static WxJsonResult MsgCheck(string content) { var accessTokenOrAppId = WXHelper.GetXCXAccessToken(appId, appSecret); try { return(ApiHandlerWapper.TryCommonApi(accessToken => { var data = new { content = content }; const string urlFormat = "https://api.weixin.qq.com/wxa/msg_sec_check?access_token={0}"; var url = string.Format(urlFormat, accessToken); return Senparc.Weixin.CommonAPIs.CommonJsonSend.Send(null, url, data); }, accessTokenOrAppId)); } catch (Senparc.Weixin.Exceptions.ErrorJsonResultException e) { return(e.JsonResult); } }
/// <summary> /// Post请求微信小程序码 /// </summary> /// <param name="url"></param> /// <param name="pages"></param> /// <param name="fileName"></param> /// <returns></returns> public static string PostMoths(string url, string pages, string fileName) { //在文件名前面加上时间,以防重名 string imgName = fileName + ".jpg"; //文件存储相对于当前应用目录的虚拟目录 var path = "/Upload/WecharImg/"; //获取相对于应用的基目录,创建目录 WebHelper.DirectoryIsExists(path); //物理路径 var fileUrl = HttpContext.Current.Server.MapPath(path + imgName);//图片地址 //返回路径 var returnUrl = path + imgName; //是否创建了 if (File.Exists(fileUrl)) { return(returnUrl); } try { string ret = string.Empty; string strURL = url; System.Net.HttpWebRequest request; request = (System.Net.HttpWebRequest)WebRequest.Create(strURL); request.Method = "POST"; request.ContentType = "application/json;charset=UTF-8"; string paraUrlCoded = pages; byte[] payload; payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded); request.ContentLength = payload.Length; Stream writer = request.GetRequestStream(); writer.Write(payload, 0, payload.Length); writer.Close(); System.Net.HttpWebResponse response; response = (System.Net.HttpWebResponse)request.GetResponse(); System.IO.Stream s; s = response.GetResponseStream(); //返回图片数据流 byte[] tt = StreamToBytes(s); //将数据流转为byte[] StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8); var result = sr.ReadToEnd().Trim(); if (result.Contains("40001")) { WXHelper.GetXCXAccessToken(appId, appSecret, true); Log.Error("生成小程序码失败,失败原因:", "accessToken过期或无效"); return(""); } if (result.Contains("errcode")) { Log.Error("生成小程序码失败,原因:", result.Substring(result.IndexOf("errcode"))); return(""); } System.IO.File.WriteAllBytes(fileUrl, tt);//讲byte[]存储为图片 return(returnUrl); } catch (Exception ex) { Log.Error("生成小程序码失败,原因:", ex.Message.ToString()); return(""); } }