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;">

posted @ 2019-04-19 10:25  sky七月凉  阅读(3684)  评论(0编辑  收藏  举报