.NET WebAPI 微信網頁授權的實現(二)後端篇

寫在前面:

本文接上文前端篇,將爲大家使用.NET WebAPI實現獲取用戶信息的接口

前端篇:https://blog.csdn.net/weixin_42550800/article/details/94978769

正式開始

1.創建一個WebAPI項目

2.在Nuget中安裝 Senparc.Weixin.MP

在程序包管理控制檯中輸入 Install-package Senparc.Weixin.MP

3.創建一個新的控制器 WechatController 

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Cors;
using Senparc.Weixin;
using Senparc.Weixin.MP;
using Senparc.Weixin.MP.AdvancedAPIs;
using Senparc.Weixin.MP.AdvancedAPIs.OAuth;
using Senparc.Weixin.MP.Containers;

namespace TryWeChat.Controllers
{
    
    public class WechatController : ApiController
    {
        //這兩個已經在web.config裏面寫入,所以直接利用ConfiurationManager類下的AppSetting方法獲取
        public static readonly string appID = ConfigurationManager.AppSettings["appID"];
        public static readonly string appsecret = ConfigurationManager.AppSettings["appsecret"];
      
        // GET api/values
        [HttpGet]
        public object GetUserInfo(string code)
        {
            
            Dictionary<string, OAuthUserInfo> keyValues = new Dictionary<string, OAuthUserInfo>();
            OAuthAccessTokenResult oAuthAccessTokenResult = new OAuthAccessTokenResult();
            //獲取AccessToken
            oAuthAccessTokenResult = OAuthApi.GetAccessToken(appID, appsecret, code);
            if (oAuthAccessTokenResult.errcode != ReturnCode.請求成功)
            {
                //請求失敗後的處理
            }
            //獲取UserInfo
            OAuthUserInfo oAuthUserInfo =  OAuthApi.GetUserInfo(oAuthAccessTokenResult.access_token, oAuthAccessTokenResult.openid);

            keyValues.Add("Accesstoken", oAuthUserInfo);
            //返回Json對象
            return Json(keyValues);

        }
    }
}

4.在配置文件中加入APPID與Secret

<appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    //appid
    <add key="appID" value="wXXXXXXb9" />
    //secret
    <add key="appsecret" value="XXXXXX" />
</appSettings>

5.在配置文件中配置全局跨域

<system.webServer>
    <!--允許跨域 開始-->
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
      </customHeaders>
    </httpProtocol>
    <!--允許跨域 結束-->
<system.webServer>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章