.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. 【译】单元测试最佳实践

    原文地址:Unit testing best practicesPS:本文未翻译原文的全部内容,以下为译文。 […]...

  2. (5)ASP.NET CORE微服务 Micro-Service —- 熔断降级(Polly)

    一、 什么是熔断降级 熔断就是“保险丝”。当出现某些状况时,切断服务,从而防止应用程序不断地尝试执行可能会失败 […]...

  3. 基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(4) – EF Core CodeFirst 数据库创建

      概述   在 基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(2) – E […]...

  4. 一个.NET Core下的开源插件框架

        插件模式历史悠久,各种中大型软件基本上都会实现插件机制,以此支持功能扩展,从开发部署层面,插件机制也可 […]...

  5. 一位36岁程序员的困惑(转)

    今天特郁闷,经理找我谈话,我被炒了。以前自信的感觉完全不在,取而代之的是职业生涯的困悉,不知道向何处去。想当初 […]...

  6. .Net Core 自定义配置源从配置中心读取配置

    配置,几乎所有的应用程序都离不开它。.Net Framework时代我们使用App.config、Web.co […]...

  7. [小技巧]ASP.NET Core中如何预压缩静态文件

    原文地址:Pre-compressed static files with ASP.NET Core 作者:G […]...

  8. 在CentOS 8 上 部署 .Net Core 应用程序

    在Centos 8 上 部署 .Net Core 应用程序                           […]...

随机推荐

  1. EAT表

    0X0 EAT表 在windows系统中,“库”是为了方便其他程序调用而集中包含相关的函数的文件(dll,sy […]...

  2. 常见姿势总结

    逻辑漏洞比传统安全漏洞更难发现,也可以理解为在相关的业务流程程序出了一个 BUG,当然开发者设计逻辑正常来走是 […]...

  3. php-实验二php基本程序设计2

    5.设计一个计算器。如下图所示<?php$Sum=0;if(!empty($_POST)){$n1=$_POST['n1'];$n2=$_POST['n2'];$m=$_POST['C'];if($m=='+'){$Sum= $n1+...

  4. VMware虚拟机安装黑苹果MacOS Mojave系统详细教程

    更多资源请百度搜索:前端资源网 欢迎关注我的博客:www.w3h5.com 大家好,我的主要更新渠道是自己搭建 […]...

  5. Spring IoC源码解析之getBean

    一、实例化所有的非懒加载的单实例Bean   从org.springframework.context.sup […]...

  6. 给公司部门设计的SOA架构

    阅读目录: 现有系统 新架构 2.1 逻辑架构图 2.2 解释说明 系统实施 3.1 SOA管理中心 3.2 […]...

  7. php常用全局函数

    print_r (count(array_keys([1]))); //打印数组str_replace("world","Shanghai","Hello world!") //把字符串 "Hello world!" 中的字符 "worl...

  8. 微信小程序之实现页面缩放式侧滑效果

    效果图: 实现原理:点击按钮,往需要动画的div中添加或移除拥有动画效果的class。 由于微信小程序中不能操 […]...

展开目录

目录导航