Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        /// <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);//返回图片地址
        }
Exemplo n.º 3
0
        /// <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);
            }
        }
Exemplo n.º 4
0
        /// <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("");
            }
        }