/// <summary>
/// B接口-微信小程序带参数二维码的生成
/// </summary>
/// <param name="access_token"></param>
/// <returns></returns>
public static string CreateWxCode(string access_token string roomId)
{
string ret = string.Empty;
try
{
string page = ConfigurationManager.AppSettings["page"].ToString(); string DataJson = string.Empty;
//适用于需要的码数量极多,或仅临时使用的业务场景
//通过该接口生成的小程序码,永久有效,数量暂无限制。
string url = "wxa/getwxacodeunlimit?access_token=" + access_token;
DataJson = "{";
DataJson += string.Format("'scene':'{0}'" "");//所要传的参数用分看
DataJson += string.Format("'width':'{0}'" );
DataJson += string.Format("'page':'{0}'" page);//扫码所要跳转的地址,根路径前不要填加'/'不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面
DataJson += "'line_color':{";
DataJson += string.Format("'r':'{0}'" "");
DataJson += string.Format("'g':'{0}'" "");
DataJson += string.Format("'b':'{0}'" "");
DataJson += "}";
DataJson += "}"; string jsondata = JsonConvert.Serializeobxxxxject(DataJson);
//DataJson的配置见小程序开发文档,B接口:https://mp.weixin.qq.com/debug/wxadoc/dev/api/qrcode.html
ret = CreateWeChatQrCode(url jsondata);
}
catch (Exception e)
{
ret = e.Message;
}
return ret;//返回图片地址
} /// <summary>
/// 返回二维码图片
/// </summary>
/// <param name="url"></param>
/// <param name="param"></param>
/// <returns></returns>
public static string CreateWeChatQrCode(string url string param)
{
string wechatapi = ConfigurationManager.AppSettings["wechatapi"].ToString();
string qrcodepath = ConfigurationManager.AppSettings["qrcodepath"].ToString();
string strURL = wechatapi+ url;
HttpWebRequest request;
string imgName = string.Empty;
string path = string.Empty;
try
{
request = (System.Net.HttpWebRequest)WebRequest.Create(strURL); request.Method = "POST";
request.ContentType = "application/json;charset=UTF-8";
string paraUrlCoded = param;
//byte[] payload;
byte[] payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
request.ContentLength = payload.Length;
Stream writer = request.GetRequestStream();
writer.Write(payload 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[] //在文件名前面加上时间,以防重名
imgName = DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg";
//文件存储相对于当前应用目录的虚拟目录
path = qrcodepath + "EWM/"; //获取相对于应用的基目录创建目录
string imgPath = System.Web.Hosting.HostingEnvironment.MapPath(path);//System.AppDomain.CurrentDomain.baxxxxseDirectory + path; //通过此对象获取文件名
if (!Directory.Exists(imgPath))
{
Directory.CreateDirectory(imgPath);
}
System.IO.File.WriteAllBytes(HttpContext.Current.Server.MapPath(path + imgName) tt);//讲byte[]存储为图片
}
catch (Exception ex)
{
ExceptionPolicy.HandleException(ex LZExceptionType.System
"生成小程序二维码失败!源:Lz.Product.LJXQJGF.BLL.Files.CreateWeChatQrCode方法出错 ");
}
return path + imgName;
} /// <summary>
/// 将数据流转为byte[]
/// </summary>
/// <param name="stream"></param>
/// <returns></returns>
public static byte[] StreamToBytes(Stream stream)
{
List<byte> bytes = new List<byte>();
int temp = stream.ReadByte();
while (temp != -)
{
bytes.Add((byte)temp);
temp = stream.ReadByte();
}
return bytes.ToArray();
}

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

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

  1. nodejs + 小程序云函数 生成小程序码

    前言:这个东西坑死我了 业务需求要生成小程序码 然后我找了两天的资料 运行 生成一堆的乱码 死活就是不能生成 最后看了一遍博客 套用了一下 自己又简单的改了一下  nodejs 我是刚刚接触  有很多 ...

  2. 微信小程序获取Access_token和页面URL生成小程序码或二维码

    1.微信小程序获取Access_token: access_token具体时效看官方文档. using System; using System.Collections.Generic; using ...

  3. .NET生成小程序码,并合自定义背景图生成推广小程序二维码

    前言: 对于小程序大家可能都非常熟悉了,随着小程序的不断普及越来越多的公司都开始推广使用起来了.今天接到一个需求就是生成小程序码,并且于运营给的推广图片合并在一起做成一张漂亮美观的推广二维码,扫码这种 ...

  4. 小程序-生成一个小程序码画在canvas画布上生成一张图片分享出去

    这个需求我遇到过2次.一次是在识别二维码后跳转到其它页面,另一次是识别二维码后进入到生成小程序码的当前页面. 我有一个梦想,就是成为一名黑客!!!!!! 小程序中js wx.request({     ...

  5. 微信小程序分享小程序码的生成,多参数以及参数的获取

    如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人.谢谢大家!❤ 如果解决不了,可以在文末进群交流. 官方文档地址:https://developers.weixin.qq.com/minipro ...

  6. uniapp如何生成自己的小程序码并且携带参数

    生成小程序码需要用到的参数appId  appSecret这两个参数可以再微信公众平台里面登录获取 也可以用测试号里面的获取小程序码步骤1.首先要请求官方的API`https://api.weixin ...

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

    随着微信小程序的火热应用,市面上有关小程序开发的需求也多了起来.近来分析了一项生成有关生成微信小程序码的需求——要求扫码跳转到小程序指定页面(带参数):看了下小程序官方文档文档,结合网上的例子,未看到 ...

  8. php实现自定义中间logo的微信小程序码

    小程序码生成的时候是默认使用小程序后台设置的小程序icon图片的,但是在有些场景我们可能要替换成我们自己想要的icon. 下面先放代码: public function makeNewQrCodeAc ...

  9. 微信小程序扫码解析小程序码

    通过微信扫小程序码,跳转到应用小程序内, 如何解析小程序码的参数呢? 一般小程序码会跳转到设置的页面,如首页, 可以直接跳转到小程序首页,然后解析小程序携带的参数,再打开某个页面. (小程序码的路径要 ...

随机推荐

  1. 字符串类——KMP算法的应用

    1,字符串类中的新功能(本文代码已集成到字符串类——字符串类的创建(上)中,这里讲述函数实现原理): 2,子串查找(KMP 算法直接运用): 1,int indexOf(const char* s) ...

  2. Codeforces 1110F(DFS序+线段树)

    题面 传送门 分析 next_id = 1 id = array of length n filled with -1 visited = array of length n filled with ...

  3. 简单写入excel

    import pymysql,xlwt def to_excel(table_name): host, user, passwd, db = '127.0.0.1', 'root', '123', ' ...

  4. Day8---Python的字典类型及操作

    字典类 1.生成方法: a.介绍: 字典是键值对的集合,键值对 : 键是数据索引的扩展 b.生成方法: 使用{}  或者  dict()  a = {'a' = 1, 'b' = 2, 'c' = 3 ...

  5. U33405 纽约 (二分)

    [题目描述] 牧民 Azone 需要多次往返于两个草场之间运输家当.为了顺利转场,Azone 决定花费 w元津巴布韦币,购买一辆载重为 w 的汽车.共有 n 件家具需要搬运,每件家具的重量为 wi​  ...

  6. 75.Binary Tree Maximum Path Sum(二叉树的最大路径和)

    Level:   Hard 题目描述: Given a non-empty binary tree, find the maximum path sum. For this problem, a pa ...

  7. 【刷题】java 常见的几种运行时异常RuntimeException

    常见的几种罗列如下: -NullPointerException - 空指针引用异常 ClassCastException - 类型强制转换异常. IllegalArgumentException - ...

  8. 【记录】jd-gui解析class文件 报INTERNAL ERROR

    用GUI查看class文件时候出现INTERNAL ERROR 错误,是因为jd-gui解析不了该class文件,报错问题如下 解决方式:换个解析器,推荐luyten解析 下载地址:https://g ...

  9. linux性能分析工具Sysstat

  10. CentOS下安装中文man 手册

    为了方便使用man,安装中文手册,具体如下: 版本:CentOS release 6.6 (Final) 中文包:http://pkgs.fedoraproject.org/repo/pkgs/man ...