C# 生成小程序码

  1  /// <summary>
  2  /// B接口-微信小程序带参数二维码的生成
  3  /// </summary>
  4  /// <param name="access_token"></param>
  5  /// <returns></returns>
  6  public static string CreateWxCode(string access_token string roomId)
  7  {
  8      string ret = string.Empty;
  9      try
 10      {
 11          string page = ConfigurationManager.AppSettings["page"].ToString();
 12
 13          string DataJson = string.Empty;
 14          //适用于需要的码数量极多,或仅临时使用的业务场景
 15          //通过该接口生成的小程序码,永久有效,数量暂无限制。
 16          string url = "wxa/getwxacodeunlimit?access_token=" + access_token;
 17          DataJson = "{";
 18          DataJson += string.Format("‘scene‘:‘{0}‘" "1234567");//所要传的参数用分看
 19          DataJson += string.Format("‘width‘:‘{0}‘" 200);
 20          DataJson += string.Format("‘page‘:‘{0}‘" page);//扫码所要跳转的地址,根路径前不要填加‘/‘不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面
 21          DataJson += "‘line_color‘:{";
 22          DataJson += string.Format("‘r‘:‘{0}‘" "0");
 23          DataJson += string.Format("‘g‘:‘{0}‘" "0");
 24          DataJson += string.Format("‘b‘:‘{0}‘" "0");
 25          DataJson += "}";
 26          DataJson += "}";
 27
 28
 29          string jsondata = JsonConvert.Serializeobxxxxject(DataJson);
 30          //DataJson的配置见小程序开发文档,B接口:https://mp.weixin.qq.com/debug/wxadoc/dev/api/qrcode.html
 31          ret = CreateWeChatQrCode(url jsondata);
 32      }
 33      catch (Exception e)
 34      {
 35          ret = e.Message;
 36      }
 37      return ret;//返回图片地址
 38  }
 39
 40
 41  /// <summary>
 42  /// 返回二维码图片
 43  /// </summary>
 44  /// <param name="url"></param>
 45  /// <param name="param"></param>
 46  /// <returns></returns>
 47  public static string CreateWeChatQrCode(string url string param)
 48  {
 49      string wechatapi = ConfigurationManager.AppSettings["wechatapi"].ToString();
 50      string qrcodepath = ConfigurationManager.AppSettings["qrcodepath"].ToString();
 51      string strURL = wechatapi+ url;
 52      HttpWebRequest request;
 53      string imgName = string.Empty;
 54      string path = string.Empty;
 55      try
 56      {
 57      request = (System.Net.HttpWebRequest)WebRequest.Create(strURL);
 58
 59
 60      request.Method = "POST";
 61      request.ContentType = "application/json;charset=UTF-8";
 62      string paraUrlCoded = param;
 63      //byte[] payload;
 64      byte[] payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
 65      request.ContentLength = payload.Length;
 66      Stream writer = request.GetRequestStream();
 67      writer.Write(payload 0 payload.Length);
 68      writer.Close();
 69      System.Net.HttpWebResponse response;
 70      response = (System.Net.HttpWebResponse)request.GetResponse();
 71      System.IO.Stream s;
 72      s = response.GetResponseStream();//返回图片数据流
 73
 74      byte[] tt = StreamToBytes(s);//将数据流转为byte[]
 75
 76
 77      //在文件名前面加上时间,以防重名
 78      imgName = DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg";
 79      //文件存储相对于当前应用目录的虚拟目录
 80      path = qrcodepath + "EWM/";
 81
 82
 83      //获取相对于应用的基目录创建目录
 84      string imgPath = System.Web.Hosting.HostingEnvironment.MapPath(path);//System.AppDomain.CurrentDomain.baxxxxseDirectory + path;     //通过此对象获取文件名
 85      if (!Directory.Exists(imgPath))
 86      {
 87          Directory.CreateDirectory(imgPath);
 88      }
 89      System.IO.File.WriteAllBytes(HttpContext.Current.Server.MapPath(path + imgName) tt);//讲byte[]存储为图片
 90      }
 91      catch (Exception ex)
 92      {
 93          ExceptionPolicy.HandleException(ex LZExceptionType.System
 94               "生成小程序二维码失败!源:Lz.Product.LJXQJGF.BLL.Files.CreateWeChatQrCode方法出错 ");
 95      }
 96      return path + imgName;
 97  }
 98
 99
100
101
102  /// <summary>
103  /// 将数据流转为byte[]
104  /// </summary>
105  /// <param name="stream"></param>
106  /// <returns></returns>
107  public static byte[] StreamToBytes(Stream stream)
108  {
109      List<byte> bytes = new List<byte>();
110      int temp = stream.ReadByte();
111      while (temp != -1)
112      {
113          bytes.Add((byte)temp);
114          temp = stream.ReadByte();
115      }
116      return bytes.ToArray();
117  }

获取access_token请参考我的另外一篇博客:https://www.cnblogs.com/qinaqina/p/11610346.html

原文地址:https://www.cnblogs.com/qinaqina/p/11610356.html

时间: 2024-10-07 21:46:44

C# 生成小程序码的相关文章

小程序-将页面生成一个小程序码分享出去

这个需求我遇到过2次.一次是在识别二维码后跳转到其它页面,另一次是识别二维码后进入到生成小程序码的当前页面. 我有一个梦想,就是成为一名黑客!!!!!! 小程序中js wx.request({        url: '',        method: 'POST',        data: {        ModuleName: "",    //空间名 接口文档里每个接口会有标明 必填        MethodName: "GetQrCode",   

后台生成带参跳到指定页面的小程序码

方法步骤如下: 1. 获取 access_token 详见:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183 2. 生成小程序码 接口B:适用于需要的码数量极多的业务场景 0)可接受页面参数较短 1)通过该接口生成的小程序码,永久有效 2)数量不做限制(截止今天,官方未对生成数量做限制) 3)用户扫码后,可以在对应页面获取到二维码中scene字段下面的值 4)B接口调用分钟频率受限(目前5000次/分钟,会调整)

生成指定页面带参数的小程序码及踩坑

//获取accessToken let that = this; const APP_ID = 'yourapp_id';// 小程序appid const APP_SECRET = 'yourapp_secreat';// 小程序app_secret let access_token = ''; wx.request({ url:"https://api.weixin.qq.com/cgi-bin/token", data: { grant_type: 'client_credent

php实现小程序码自定义中间icon

小程序码生成的时候是默认使用小程序后台设置的小程序icon图片的,但是在有些场景我们可能要替换成我们自己想要的icon. 下面先放代码: public function makeNewQrCodeAction() { //获取用户头像并转string $avatarUrl = $this->_req->getQuery('avatarUrl', ""); if (!$avatarUrl) { response::err_lack_param(); } $avatar_fil

关于.NET HttpClient方式获取微信小程序码(二维码)

随着微信小程序的火热应用,市面上有关小程序开发的需求也多了起来.近来分析了一项生成有关生成微信小程序码的需求——要求扫码跳转到小程序指定页面(带参数):看了下小程序官方文档,以及网上的例子,未看到多少有价值的采用C#调用小程序接口生成小程序码的例子,于是拾起多年前的代码,略作分析尝试,在此分享给有需要的人,并以此抛砖引玉. 此文以HttpClient方式示例,当然采用老旧的HttpWebRequest也可以,在此不作分析.生成微信小程序码(二维码)的接口主要有三个: https://develo

借助云开发10行代码生成小程序码,可以微信扫码快速进入指定小程序页

最近老有同学问我,如何生成小程序二维码,让用户扫码后能快速进入指定页面.经过一番研究,发现用云开发的云调用来实现特别方便,基本上10行代码就可以快速的生成指定页面的二维码.这样我们在做一些线下业务时就能让用户方便快速的进入到指定页面了,比如我们的点餐小程序,我们可以在二维码里绑定桌号,这样用户用微信扫码二维码,就可以快速的进入点餐页面了,并且可以识别到用户当前所在的桌号. 注意事项 我们生成的小程序码指定的页面,必须是你小程序已经发布,如果小程序还没有发布,获取小程序码绑定的页面不存在,扫码后就

nodejs获取带参数的小程序码

打开项目目录 ,新建一个app.js文件 使用cnpm init命令初始化项目文件 安装express和superagent 并将安装信息保存到package文件中 安装完了 写一个接口看看有木有问题 OK 接口是可以的 接下来就要干正事了. 在app.js文件同级路径建一个config.js文件 用于保存小程序的appid和secret ,使用module.exports导出 在app.js里引用 同时使用superagent发起请求 把参数放到请求的网址里 在浏览器里调用一下 看看打印的内容

小程序结合云开发获取小程序码

最近开发小程序遇到一个生成小程序码的功能,常规操作是通过以下接口请求: POST https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN 但是今天突然不想走寻常路,决定用一用云开发玩一玩. 话不多说,码它! wxml: <button bindstap="creatCode">点击获取</button> 云函数,我定义了一个getcode函数,首先往函数下的config.json文件配

生成微信小程序码java实现

@Override public ModelAndView onSubmit(HttpServletRequest req, HttpServletResponse res, WxQrCodeForm cmd, BindException err) throws Exception { SimpleResult<Object> result = SimpleResult.create(false); Locale locale = new Locale("en", &quo