微信小程序时下大热,抱着学习的心态了解了一下,目前没有搜到完整的.NET用户数据签名验证和解密代码,于是就写了一点。
简单使用方法:
1、客户端调用wx.getUserInfo方法,服务端创建WeChatLoginInfo类的实例接收客户端发来的数据;
2、服务端新建WeChatAppDecrypt类的实例,初始化此类时需传入appId与AppSecret用于验证;
3、调用WeChatAppDecrypt类中的Decrypt方法,传入步骤1中获取的WechatLoginInfo实例;
4、得到WechatUserInfo类的实例,其中就是解密好的数据。
话不多说,注释比较详尽,感兴趣的朋友可以参考。
using System;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using Newtonsoft.Json;
using System.Security.Cryptography;
using System.Text;
namespace BroadSky.WeChatAppDecrypt
{
///
/// 处理微信小程序用户数据的签名验证和解密
///
public class WeChatAppDecrypt
{
private string appId;
private string appSecret;
///
/// 构造函数
///
/// 应用程序的AppId
/// 应用程序的AppSecret
public WeChatAppDecrypt(string appId, string appSecret)
{
this.appId = appId;
this.appSecret = appSecret;
return;
}
///
/// 获取OpenId和SessionKey的Json数据包
///
/// 客户端发来的code
/// Json数据包
private string GetOpenIdAndSessionKeyString(string code)
{
string temp = "https://api.weixin.qq.com/sns/jscode2session?" +
"appid=" + appId
+ "