/// <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. python中bytes和str

    1.python中bytes和str Python3 最重要的新特性大概要算是对文本(text)和二进制数据(binary data)作了更为清晰的区分 (1)Python 3.0使用文本和(二进制) ...

  2. 阿里云centos下搭建vsftpd,被动模式出现的问题

    最近计网课设要做一个ftp服务端,所以先在自己服务器搭一个来了解一下. 首先在默认情况下连接,227 Entering Passive Mode (192,168,*,*,227,175). 显示连接 ...

  3. MySQL04-- 版本区别及管理

    目录 MySQL版本区别及管理 一.MySQL5.6与MySQL5.7安装的区别 二.MySQL用户权限管理 三.MySQL连接管理 四.MySQL启动关闭流程 五.MySQL实例初始化配置 六.My ...

  4. Python网络编程:Linux epoll

    原文地址:http://scotdoyle.com/python-epoll-howto.html 介绍 Python已于2.6版本添加访问Linux epoll库的API.这篇教程使用Python ...

  5. Kotlin学习笔记(9)- 数据类

    系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正.如果你觉得我的文章对你有用,欢迎关注我,我们一起学习进步! Kotlin学习笔记(1)- 环境配置 Kotlin学习笔记(2)- 空安 ...

  6. java使用对象类型作为方法的参数

  7. BZOJ1822 [JSOI2010]Frozen Nova 冷冻波 二分+最大流

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=1822 题解 好久没做网络流的,都没有想到网络流... 首先暴力判断一下一个巫妖和一个精灵之间能 ...

  8. wraps的补充

    # import time# def index(name):# '''index函数'''# time.sleep(1)# print('Welcome %s to China'%name)# re ...

  9. Docker安装RMQ

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11752934.html 进入rabbitmq的docker hub镜像仓库地址:https://hub ...

  10. 如何设置Fiddler来拦截Java代码发送的HTTP请求,进行各种问题排查

    我们使用Java的RestTemplate或者Apache的HTTPClient编程的时候,经常遇到需要跟踪Java 代码发送的HTTP请求明细的情况.和javascript代码在浏览器里发送请求可以 ...