C# 微信小程序获取openid sessionkey
项目介绍
1、微信小程序获取openid和session_key
2、后台使用C#开发
项目流程

准备工作
1 获取appid
1.1 下载微信web开发工具
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
1.2 安装完成后打开
1.2.1 新建项目

1.2.2 点击测试号,点击新建。项目创建成功
测试号功能有限但是对于简单使用已经足够,应用开发可以注册一个AppID
2 获取appsecret

小程序端
1 小程序端官方API访问地址
https://developers.weixin.qq.com/miniprogram/dev/
2 小程序端向服务器发起请求,参数是code

// 登录
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项目

2 右击website,添加服务

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 部署服务,网页界面如下

程序调试
1 网页中打开服务
2 点击GetCode,跳转到如下界面

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

4 复制用户登陆凭证,并填入到服务中,并调用
如果返回结果正确说明服务器端无问题
备注:小程序接收的数据需要时json格式的
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">
C# 微信小程序获取openid sessionkey的更多相关文章
- 微信小程序 获取OpenId
微信小程序 官方API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/ 首先 以下代码是 页面加载请求用户 是否同意授权 同意之后 用code 访问 微信 ...
- 微信小程序——获取openid
1.在微信小程序后台得到appid.AppSecret 2.在任意小程序界面的[onLoad]中取得code(建议将代码写在index.js中) 3.用取得code换取openid 如后台无法将ope ...
- laravel7 微信小程序获取openid
l 通过微信公众号获取appid和appsecret l 在小程序页面中编写代码获取code l 在后端编写方法,换取openid l 添加一个按钮,给按钮一个开放能力 open-type=" ...
- .NET开发微信小程序-获取OpenId
注:获取当前用户信息只需要用GetUserInfo这个方法就行.这里就不需要提了 前端代码: CallBack:回调函数 function GetOpenID(CallBack){ var appIn ...
- 微信小程序 获取用户openid
1,可以在小程序app.js入口文件中放入登录代码 wx.login({ success: res => { // 登录注册接口 if (res.code) { // 调用服务端登录接口,发送 ...
- 微信小程序获取微信的openid
通过登录接口获取登录凭证,然后通过request请求后台获取openid,需要把后台域名放到小程序后台的request 合法域名内: 1.wx.login 获取登录凭证 2.wx.request 发 ...
- .Net之微信小程序获取用户UnionID
前言: 在实际项目开发中我们经常会遇到账号统一的问题,如何在不同端或者是不同的登录方式下保证同一个会员或者用户账号唯一(便于用户信息的管理).这段时间就有一个这样的需求,之前有个客户做了一个微信小程序 ...
- 微信小程序获取手机号码看这篇文章就够了
前言 微信小程序获取手机号码,从官方文档到其他博主的文档 零零散散的 (我就是这样看过来 没有一篇满意的 也许是我搜索姿势不对) 依旧是前人栽树 后人乘凉 系列.保证看完 就可以实现获取手机号码功能 ...
- 小程序获取openid 小程序授权
小程序获取openid 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系. wx.login(Object object) 调用接口获取登录凭证(cod ...
随机推荐
- PE文件结构及其加载机制
一.PE文件结构 PE即Portable Executable,是win32环境自身所带的执行体文件格式,其部分特性继承自Unix的COFF(Common Object File Format)文件格 ...
- p,br,hn,b,i,u,s,sup,sub标签
<!-- -->注释 <p></p>段落标签 <br />换行标签 <h1></h1> 字体标签 最大 <h6> ...
- ASP防XSS代码
原作是在GitHub上,基于Node.js所写.但是..ASP的JS引擎跟V8又有些不同..于是,嗯.. <% Function AntiXSS_VbsTrim(s) AntiXSS_VbsTr ...
- npm 下载node-zookeeper包
环境:centos7(lunix) 1.安装nvm curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install. ...
- python logging 日志
logging与print 区别,为什么需要logging? 在写脚本的过程中,为了调试程序,我们往往会写很多print打印输出以便用于验证,验证正确后往往会注释掉,一旦验证的地方比较多,再一一注释比 ...
- python基础学习之路No.2 数据类型
python中常见的数据类型有:整数.浮点数.字符串.列表.元组.字典 python相较其他语言,可以省略了声明,可以直接定义赋值使用. 例如: a=12 就相当于 其他语言中的 int a=12 ...
- springMVC源码分析--HttpMessageConverter参数read操作(二)
上一篇博客springMVC源码分析--HttpMessageConverter数据转化(一)中我们简单介绍了一下HttpMessageConverter接口提供的几个方法,主要有以下几个方法: (1 ...
- django model常用字段类型
摘自 http://www.cnblogs.com/wt869054461/p/4014271.html V=models.AutoField(**options) #int:在Django代码内是自 ...
- appium----【Mac】address already in user 127.0.0.1:4725,端口被占用的查找与kill进程
报错截图示例: 解决方法: Mac: lsof -i tcp:4723 #查看端口号 sudo kill -9 29443 #杀死进程 Windows: netstat -aon|fi ...
- Redis(二)CentOS7安装Redis4.0.10与集群搭建
一 Redis单机安装 1 Redis下载安装 1.1 检查依赖环境(Redis是C语言开发,编译依赖gcc环境) [root@node21 redis-]$ gcc -v -bash: gcc: c ...