小程序生成二维码

#region 生成二维码
        public string QR(string url = "/pages/index/index?user_id=", int type = 1)
        {
            var str = "";
            var rst = new RestfulData<object>();
            Stream s_re = WebRequest.Create("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + "" + "&secret=").GetResponse().GetResponseStream();
            StreamReader s_reader = new StreamReader(s_re, Encoding.UTF8);
            string[] s_out = (s_reader.ReadToEnd()).Split("{},".ToCharArray()).Distinct().ToArray();
            if (s_out.Length > 0)
            {
                if (s_out[1].IndexOf("access_token") > 0)
                {
                    var access_token = s_out[1].ToString().Substring(16, s_out[1].Length - 17);
                    str = BuildRequest(access_token, type, url);

                }
            }
            return str;

        }

        public static string BuildRequest(string session, int type, string url)
        {
            Encoding code = Encoding.GetEncoding("utf-8");
            StringBuilder sb = new StringBuilder();
            sb.Append("{ \r\n");
            sb.Append("        \"path\": \"" + url + "\",\r\n");//pages/details/details?id=0&tid=0&pid=0&fid="+ConfigurationSettings.AppSettings["fid"]+
            sb.Append("        \"width\": \"430\"\r\n");
            sb.Append("}");
            //待请求参数数组字符串
            string strRequestData = sb.ToString();

            //把数组转换成流中所需字节数组类型
            byte[] bytesRequestData = code.GetBytes(strRequestData);

            //构造请求地址
            string strUrl = "";
            if (type == 1)
            {
                strUrl = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" + session;
            }
            else
            {
                strUrl = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=" + session;
            }

            //请求远程HTTP
            string strResult = "";

            //设置HttpWebRequest基本信息
            HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(strUrl);
            myReq.Method = "POST";
            myReq.ContentType = "application/x-www-form-urlencoded";

            //填充POST数据
            myReq.ContentLength = bytesRequestData.Length;
            Stream requestStream = myReq.GetRequestStream();
            requestStream.Write(bytesRequestData, 0, bytesRequestData.Length);
            requestStream.Close();

            //发送POST数据请求服务器
            HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
            // 把 Stream 转换成 byte[]   
            var time = DateTime.Now.ToString("yyyyMMdd");
            string newFileName = DateTime.Now.ToString("yyyyMMddhhmmssfff") + ".jpg";
            string Folder = System.Web.HttpContext.Current.Server.MapPath("~/Upload/img/" + time + "/");
            if (!Directory.Exists(Folder))
            {
                Directory.CreateDirectory(Folder);
            }
            string filePath = Folder + newFileName;
            Stream rs = HttpWResp.GetResponseStream();
            System.Drawing.Image i = Image.FromStream(rs);
            i.Save(filePath, System.Drawing.Imaging.ImageFormat.Gif);
            rs.Close();
            i.Dispose();
            return "https://wxapp.foodszs.cn/Upload/img/" + time + "/" + newFileName;
        }
        #endregion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值