.net 小程序获取用户UnionID

lihuanancn 2018-04-03 原文

.net 小程序获取用户UnionID

第一次写博客,写的不好多多海涵!

1.小程序获取UnionID的流程
用code去换取session_key,然后去解密小程序获取到的那串字符!

话不多说,原理大家都懂!!!!!!

直接上代码

 1   public string GetMiniAppUserUnionID(string code, string userInfo, string iv)
 2   {
 5             Dictionary<string, string> parames = new Dictionary<string, string>();
 6             parames.Add("appid", "");
 7             parames.Add("secret", "");
 8             parames.Add("js_code", code);
 9             parames.Add("grant_type", "authorization_code");
10             string res = HttpWebResponseHelper.Get("https://api.weixin.qq.com/sns/jscode2session", parames);
12             var obj = Parse(res);
string unionid="";
13 if (!res.Contains("errcode")) 14 { 15 userJson = AESDecrypt(userInfo, obj.session_key, iv); 16 var userobj = Parse(userJson); 17 unionid = userobj.unionId;
}
               return unionid ;
19  } 
AESDecrypt解密算法
 1         /// <summary>
 2         /// AES解密
 3         /// </summary>
 4         /// <param name="text"></param>
 5         /// <param name="password"></param>
 6         /// <param name="iv"></param>
 7         /// <returns></returns>
 8         public static string AESDecrypt(string text, string password, string iv)
 9         {
10             RijndaelManaged rijndaelCipher = new RijndaelManaged();
11             rijndaelCipher.Mode = CipherMode.CBC;
12             rijndaelCipher.Padding = PaddingMode.PKCS7;
13 
14             byte[] encryptedData = Convert.FromBase64String(text);
15             byte[] pwdBytes = Convert.FromBase64String(password);
16 
17             rijndaelCipher.Key = pwdBytes;
18 
19             if (!string.IsNullOrEmpty(iv))
20             {
21                 byte[] ivBytes = Convert.FromBase64String(iv); 
22                 rijndaelCipher.IV = ivBytes;
23             }
24             ICryptoTransform transform = rijndaelCipher.CreateDecryptor();
25             byte[] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);
26 
27             return Encoding.UTF8.GetString(plainText);
28 
29         }

 

序列化方法


1   public static dynamic Parse(string json, Encoding encoding)
2         {
3             using (var reader = JsonReaderWriterFactory.CreateJsonReader(encoding.GetBytes(json), XmlDictionaryReaderQuotas.Max))
4             {
5                 return ToValue(XElement.Load(reader));
6             }
7         }

 

在写代码固然重要,但也要劳逸结合!!!!!! 

允许我打个广告!

https://www.chenfengdy.top/ (晨风电影)

 





发表于 2018-04-03 17:46 i386ee 阅读() 评论() 编辑 收藏

 

版权声明:本文为lihuanancn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lihuanancn/p/8710010.html

.net 小程序获取用户UnionID的更多相关文章

  1. Autofac依赖注入

    简介 Autofac 是一款超赞的.NET IoC 容器 . 它管理类之间的依赖关系, 从而使 应用在规模及复 […]...

  2. .Net Core结合AspNetCoreRateLimit实现限流

    前言   相信使用过WebApiThrottle的童鞋对AspNetCoreRateLimit应该不陌生,As […]...

  3. .NET Core 微信小程序支付——(统一下单)

    最近公司研发了几个电商小程序,还有一个核心的电商直播,只要是电商一般都会涉及到交易信息,离不开支付系统,这里我 […]...

  4. 最新的.NET 热重载介绍 elementui——表格的相同内容单元格合并 基于uni-app全端弹框组件uaPopup「兼容h5+小程序+app端|nvue」 Innodb中有哪些锁? 『无为则无心』Python序列 — 24、Python序列的推导式 【Azure 应用服务】Azure Function App 执行PowerShell指令[Get-Azsubscription -TenantId $tenantID -DefaultProfile $cxt]错误 Flask(1)- 简介 exter

    今天,我们很高兴的向您介绍 Visual Studio 2019 版本 16.11(预览版 1)和 .NET […]...

  5. .NET Core/.NET5/.NET6 开源项目汇总10:实用工具

    系列目录     【已更新最新开发文章,点击查看详细】 开源项目是众多组织与个人分享的组件或项目,作者付出的心 […]...

  6. ASP.NET Corec初步使用Quartz.NET

    一、什么是Quartz.NET? Quartz.NET 是一个功能齐全的开源作业调度系统,可用于从最小的应用程 […]...

  7. 它来了!!!有史以来第一个64位Visual Studio(2022)预览版将在今夏发布!

    美国时间2021年4月19日,微软产品研发部一位负责人Amanda Silver在其博客上发布一则《Visua […]...

  8. .NET平台系列26:在 Windows 上安装 .NET Core/.NET5/.NET6

    系列目录     【已更新最新开发文章,点击查看详细】   本文介绍如何在 Windows 上安装 .NET。 […]...

随机推荐

  1. 免费JS甘特图组件dhtmlxgantt

    安装 参考:https://docs.dhtmlx.com/gantt/desktop__install_wi […]...

  2. UART、SPI和I2C详解

    做单片机开发时UART,SPI和I2C都是我们最经常使用到的硬件接口,我收集了相关的具体材料对这三种接口进行了 […]...

  3. 视频直播流媒体服务器的http-flv是如何直播的?

    我们的流媒体服务器可以输出三种格式的视频流,Http-Flv 就是 http+flv ,将音视频数据封装成FL […]...

  4. jQuery

    jQueryjQuery是一个库,里面存在大量的Javascript函数。 文档站:https://jquery.cuishifeng.cn/ 引用方式一官网下载:下载完成后,将下载的js文件直接引入文档即可使用。...

  5. Echarts 甘特图教程

    Echarts甘特图教程  echarts官网实例: https://gallery.echartsjs.co […]...

  6. Activiti学习笔记

    activiti入门 activiti官网 pom.xml文件 <!-- activiti --> […]...

  7. buckaroo 去中心化的c++包管理工具

    buckaroo 去中心化的c++包管理工具 buckaroo 是一款去中心化的c++ 包管理工具,使用上,类 […]...

  8. er图的绘制方法是怎么样的? – 火山那个火山

    er图的绘制方法是怎么样的? 什么使er图? ER的全称是Entity Relationship,意思就是实体 […]...

展开目录

目录导航