[HttpGet]//微信扫一扫获取密钥public async Task<Hashtable> GetQRCodeSignPackage(){string Jsapi_Ticket = await GetWeiXinJsapi_Ticket();JObject Jsapi_TicketJo = (JObject)JsonConvert.DeserializeObject(Jsapi_Ticket);string jsapi_ticket = Jsapi_TicketJo["ticket"].ToString();          string url = "https://xxxxxxxxxxxxxxxxxxxxx/qrcode.html";string timestamp = Convert.ToString(ConvertDateTimeInt(DateTime.Now));string nonceStr = createNonceStr();string rawstring = "jsapi_ticket=" + jsapi_ticket + "&noncestr=" + nonceStr + "&timestamp=" + timestamp + "&url=" + url + "";string signature = Sha1Sign(rawstring);Hashtable signPackage = new Hashtable();signPackage.Add("appId", "xxxxxxxxxxxxxxxx");//xx智能signPackage.Add("nonceStr", nonceStr);signPackage.Add("timestamp", timestamp);signPackage.Add("url", url);signPackage.Add("signature", signature);signPackage.Add("rawString", rawstring);signPackage.Add("JSTicketTicket", jsapi_ticket);return signPackage;}[HttpGet]private async Task<string> GetWeiXinJsapi_Ticket(){var access1 = await GetAccessToken();string tokenUrl = string.Format("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type={1}", access1, "jsapi");var wc = new WebClient();var strReturn = wc.DownloadString(tokenUrl); //取得微信返回的json数据  return strReturn;return strReturn;}// 3.noncestr 生成签名的随机串////// 创建随机字符串/// </summary>/// <returns></returns>public static string createNonceStr(){int length = 16;string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";string str = "";Random rad = new Random();for (int i = 0; i < length; i++){str += chars.Substring(rad.Next(0, chars.Length - 1), 1);}return str;}[HttpGet]/// <summary>/// Sha1加密签名/// </summary>/// <param name="str"></param>/// <returns></returns>public string Sha1Sign(string str){SHA1 sha1 = new SHA1CryptoServiceProvider();byte[] bytes_sha1_in = System.Text.UTF8Encoding.Default.GetBytes(str);byte[] bytes_sha1_out = sha1.ComputeHash(bytes_sha1_in);string signature = BitConverter.ToString(bytes_sha1_out);signature = signature.Replace("-", "").ToLower();return signature;}//1. 获取access token[HttpPost("GetAccessToken")]/// <summary>/// 获取微信AccessToken/// </summary>/// <returns>Dictionary</returns>public async Task<string> GetAccessToken(){try{var httpClient = new HttpClient();var oldtk = await RedisHelper.Instance.GetAsync($"AccessToken");//检查 token 是否失效if (!oldtk.IsNullOrWhiteSpace()){//尝试获取微信IP 校验token string chkurl = $"https://api.weixin.qq.com/cgi-bin/get_api_domain_ip?access_token={oldtk}";HttpResponseMessage resp = await httpClient.GetAsync(chkurl);if (resp.IsSuccessStatusCode){var resstr = await resp.Content.ReadAsStringAsync();//正确返回则表示token有效if (resstr.Contains("ip_list")){return oldtk;}}}//string token = "42_yS3zlEcbhM8cmTo95oBTKCXrnCB0RNHBhAnnTXxazkbUY7O5ZgzWuD8ydiaAQhoYKFmBCv0V2i0EIXy4Uw3YVqI6IRhYgUub7Fvlda7yJyBmfj-Cz2c-rJ33QNVjZwizshJxI0smUCmXCSZOHWDiAFAKZG";//获得配置信息string send_url = $"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={weixinMp.AppId}&secret={weixinMp.Secret}";HttpResponseMessage response = await httpClient.GetAsync(send_url);string result = string.Empty;if (response.IsSuccessStatusCode){result = await response.Content.ReadAsStringAsync();}//反序列化JSONDictionary<string, object> dic = JsonConvert.DeserializeObject<Dictionary<string, object>>(result);if (!dic.ContainsKey("access_token")){throw new IOException($"获取Token失败!没有返回值: {result}");}string accToken = dic["access_token"].ToString();await RedisHelper.Instance.SetAsync($"AccessToken", accToken, 3600);await CreateMenu(accToken);return accToken;}catch (Exception ex){//LoggerHelper.Error(ex, $"获取AccessToken出错");throw ex;}}

微信扫一扫,扫条形码/二维码后台(C#,NetCore)相关推荐

  1. 个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂功能第12波-快速生成、读取、导出条形码二维码...

    根据指定的内容生成对应的条形码或二维码,在如今移动互联网时代,并不是一件什么新鲜事,随便百度一下,都能找到好多的软件或在线网站可以帮我们做到,但细想一下,如果很偶然地只是生成一个两这样的图形,百度一下 ...

  2. 【C#】最全单据打印(打印模板、条形码二维码、字体样式、项目源码)

    系列文章 [C#]编号生成器(定义单号规则.固定字符.流水号.业务单号) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/12912978 ...

  3. 微信公众号扫描带参数二维码实现自动分组?

    2019独角兽企业重金招聘Python工程师标准>>> 最近很多人都在问微信公众号扫描带参数二维码实现自动分组,通过微号帮平台操作实现,这个功能不止如此,微信二维码来源统计分析.微信 ...

  4. 微信小程序使用canvas绘制二维码实现跳转小程序

    开始接到这个需求的时候,我查阅文档获取小程序码 | 微信开放文档 发现两种途径 需要后端在服务器上调用接口拿到二维码,因为调用的 https://api.weixin.qq.com这个域名是不允许上白 ...

  5. flutter实现条形码二维码扫描

    flutter实现条形码二维码扫描 准备工作 使用 我们使用到的第三方插件为barcode_scan2 地址为:https://pub.flutter-io.cn/packages/barcode_s ...

  6. Java实现微信公众号直接发送参数二维码给用户

    文章目录 前言 一.参数二维码的作用 二.功能实现 1. 生成带参数二维码 2. 上传二维码图片 3. 发送带参数二维码给用户 总结 前言 公众号开发近些年是一个比较热门的方向,今天为大家讲解的是用J ...

  7. 条形码/二维码生成探索

    条形码/二维码生成探索 所用依赖 <!--条形码生成依赖(轻量型,推荐使用这个)(生成条码的同时会把信息生成到条形码下)--><dependency><groupId&g ...

  8. 微信小程序业务-字符串生成二维码(weapp-qrcode)

    微信小程序业务-字符串生成二维码(weapp-qrcode) 前言 邂逅weapp-qrcode 基本使用 详细参数 小程序组件中使用 image属性详解 想使用网络图片? 参考地址 前言 在小程序项 ...

  9. 教你做一个微信添加好友收付款的个性二维码

    准备工作 首先需要了解二维码,二维码即保存数据的一个容器.微信自己让别人添加好友的二维码同样如此,我们需要把url从微信的二维码中提取出来,在加入到自己准备的背景中.完成~ 需要的库 MyQR,pyz ...

最新文章

  1. 虚拟摄像头 安卓版_林俊杰 ft. M.E.,联同视效大厂数字王国加码虚拟偶像
  2. rust狗阳玩的什么游戏_微博搜索
  3. 这样配置,让你的 IDEA 好用到飞起来!
  4. 02繁花嗅Django笔记
  5. python request 留位置4
  6. app-v 4.6 management server部署(一)
  7. Asp.net 1.0与ASP.NET 2.0的异同
  8. AutoCAD导出的图片十分模糊——亲测有效解决
  9. 浏览器无法访问百度的问题
  10. vue3+ts+vite后台管理模板
  11. 如何用python画一个美队盾牌
  12. 二代测序原理及其流程
  13. 【原创】随手记下-电脑版微信双开
  14. Word2019很卡的解决办法
  15. 用理想低通滤波器在频率域实现低通滤波、高通滤波。
  16. java 蓝桥杯 蚂蚁感冒
  17. 2016OSC源创会年终盛典-前端技术专场-肖光宇
  18. 某度翻译-逆向参数解析
  19. Ionic + Vue3 + Capacitor 配置应用信(App 包名、应用名、应用图标、启动动画、版本信息)
  20. cytoscape3.2.0 java_【看图说话】Cytoscape的“傻瓜式”教程

热门文章

  1. 计算机专业轻薄本可以吗,轻薄笔记本电脑推荐,锐智系创造本不可“轻”视!...
  2. 美图将手机业务授权给小米背后:全年最高亏12亿 期待减负
  3. 主机 风冷 水冷 下个阶段是什么冷
  4. 信息安全学习(不断更新),希望可以坚持下去。
  5. 哈哈,崔姓的来源!家谱网竟然还有…
  6. 最强蜗牛击败毁灭机器人_【最强蜗牛攻略】恶魔所有阶段攻略(详细教程)
  7. 如何简单抠图?在手机上就可以完成抠图
  8. 计算机文件克隆到光盘,突破限制复制光盘内容
  9. 数据库中数据的基本查询方法
  10. 程序员半年找不到工作就因为大龄?太歧视了,气人