C# 微信小程序获取openid sessionkey

时间:2022-03-10 15:49:25

项目介绍

1、微信小程序获取openid和session_key
2、后台使用C#开发

项目流程

C# 微信小程序获取openid sessionkey

准备工作

1 获取appid

1.1 下载微信web开发工具

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

1.2 安装完成后打开

1.2.1 新建项目

C# 微信小程序获取openid sessionkey

1.2.2 点击测试号,点击新建。项目创建成功

C# 微信小程序获取openid sessionkey
测试号功能有限但是对于简单使用已经足够,应用开发可以注册一个AppID

2 获取appsecret

C# 微信小程序获取openid sessionkey

小程序端

1 小程序端官方API访问地址

https://developers.weixin.qq.com/miniprogram/dev/

2 小程序端向服务器发起请求,参数是code

C# 微信小程序获取openid sessionkey

// 登录
wx.login({
success: res => {
console.log("getUserremark:"+res.code); wx.request({
url: 'http://localhost:7655/WebService.asmx/GetCode?json_code='+res.code,
data: {
'json_code': res.code
},
method: 'GET',
header: {
'content-type': 'appication/x-www-form-urlencoded'
},
success: function (res) {
console.log("back Data:"+res.data.data);
}
})
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})

3 url说明

访问后台服务器,将code值传递给服务,并进行调用

后端

这里提供的方法仅供参考,其他语言,其他方法均可用

1 Visual Studio新建website项目

C# 微信小程序获取openid sessionkey

2 右击website,添加服务

C# 微信小程序获取openid sessionkey

3 在WebService.cs的public WebService()下添加如下代码

#region 获取小程序openid 和session_key
[WebMethod] //网页中显示这个方法
public void GetCode(string json_code)
{ string serviceAddress =
"https://api.weixin.qq.com/sns/jscode2session?appid=自己的&secret=自己的"
+ "&js_code=" + json_code + "&grant_type=authorization_code";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress);
request.Method = "GET";
request.ContentType = "text/html;charset=utf-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, System.Text.Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
var obj = new
{
data = retString,
Success = true
};
Formatting microsoftDataFormatSetting = default(Formatting);
string result = JsonConvert.SerializeObject(obj, microsoftDataFormatSetting);
HttpContext.Current.Response.Write(result);
}
#endregion

4 程序调用需要用到库,下载地址

链接:https://pan.baidu.com/s/1Lfldi6EouII9F_3eeD7HnA
提取码:r8uf
链接无效可以自己在网上找,或联系我

5 部署服务,网页界面如下

C# 微信小程序获取openid sessionkey

程序调试

1 网页中打开服务

2 点击GetCode,跳转到如下界面

C# 微信小程序获取openid sessionkey

3 获取js_code(用户登陆凭证)

C# 微信小程序获取openid sessionkey

4 复制用户登陆凭证,并填入到服务中,并调用

C# 微信小程序获取openid sessionkey
如果返回结果正确说明服务器端无问题
备注:小程序接收的数据需要时json格式的

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">