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 ...
随机推荐
- NOIP 2016 迟来的满贯
17-03-22,雨 17-03-22,一个特别重要的日子 在这一天,本蒻攻克了NOIP 2016最难的一题,D1T2——天天爱跑步 实现了NOIP 2016的AK! YAYAYAYAYAYAY 自然 ...
- reshape中的-1
>>> a = np.array([[1,2,3], [4,5,6]]) >>> np.reshape(a, (3,-1)) # the unspecified v ...
- ubuntu网络连接:Ifupdown(eth0)的连接不能修改或删除
今天其实遇到了三个问题,一个是ubuntu系统上的网络图标不见了,把网络图标弄出来以后有无法联网,联网成功却变成Ifupdown(eth0)的连接且不能修改或删除. 这里我只记录最后一个问题,前两个问 ...
- python的新特性
http://www.jb51.net/article/67699.htm Python中用format函数格式化字符串的用法:http://www.jb51.net/article/63672.ht ...
- vue项目中遇到的一些问题
或访问:https://github.com/littleHiuman/experiences-about-vue 欢迎补充! vuex 状态 vue-cli 命令行 vue vue vue-rou ...
- python基础-类的起源
Python中一切事物都是对象. class Foo(object): def __init__(self,name): self.name = name f = Foo("alex&quo ...
- PlantUML——4.实例演示1
给自己发消息 @startuml Alice -> Alice : This is a signal to self.\nIt also demonstrates \nmultiline tex ...
- matlab随笔(二)
circshift 两种形式 :第一种Y = circshift(A,K)就不用说了,将A中的元素向右移动K个位置. 需要注意的是第二种形式:Y = circshift(A,K,dim),这种形式不好 ...
- group by 并且 count(1)的linq写法
SELECT [MobleNo],count(1) FROM [CustMobleNo] group by [MobleNo] GO ===作用等于=== var rst = from c in da ...
- 怎么使用T-sql生成两位字母
SQL code select char(cast(rand()*25 as int)+97)+char(cast(rand()*25 as int)+97) select 两 ...