.Net Core API網站調用微信第三方API(實現微信授權登錄)

using _SCscHero.Base.Help;
using _SCscHero.Model.System.Retrun;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using static _SCscHero.Base.Constant.ThirdAppConfigConst;

namespace ThirdParty.Core.WeChat
{
    /// <summary>
    /// 微信第三方服務
    /// </summary>
    public class WeChatServices
    {
        /// <summary>
        /// 根據access_token和openid獲取微信用戶信息
        /// </summary>
        /// <param name="token">accessToken</param>
        /// <param name="openid">openid</param>
        public static WeChatUserInfoReturn GetWechatUserInfo(string accessToken, string openid)
        {
            Dictionary<string, string> weChatUserInfoParam = new Dictionary<string, string>();
            weChatUserInfoParam.Add("access_token", accessToken);
            weChatUserInfoParam.Add("openid", openid);
            weChatUserInfoParam.Add("lang", "utf-8");
            string userInfoReturnStr = HttpHelp.Get(ThirdAppWeChatConst.APP_USERINFO_URL, weChatUserInfoParam);
            var userInfoReturn = JsonHelper.JSONToObject<WeChatUserInfoReturn>(userInfoReturnStr);
            return userInfoReturn;
        }


        /// <summary>
        /// 根據票據獲取access_token
        /// </summary>
        /// <param name="code">票據</param>
        /// <returns></returns>
        public static WeChatAccessTokenReturn GetAuthorityWechatAccessToken(string code)
        {
            Dictionary<string, string> accessTokenParam = new Dictionary<string, string>();
            accessTokenParam.Add("appid", ThirdAppWeChatConst.APPID);
            accessTokenParam.Add("secret", ThirdAppWeChatConst.APP_SECRET);
            accessTokenParam.Add("code", code);
            accessTokenParam.Add("grant_type", "authorization_code");
            string accessReturnStr = HttpHelp.Get(ThirdAppWeChatConst.APP_ACCESS_TOKEN_URL, accessTokenParam);
            var accessTokenReturn = JsonHelper.JSONToObject<WeChatAccessTokenReturn>(accessReturnStr);
            return accessTokenReturn;
        }
    }
}

using System;
using System.Collections.Generic;
using System.Text;

namespace _SCscHero.Base.Constant
{
    /// <summary>
    /// 第三方應用配置常量類
    /// </summary>
    public class ThirdAppConfigConst
    {
        /// <summary>
        /// 微信授權常量
        /// </summary>
        public class ThirdAppWeChatConst
        {
            /// <summary>
            /// 授權接口地址
            /// </summary>
            public const string APP_CONNECT_URL = "https://open.weixin.qq.com/connect/qrconnect";
            /// <summary>
            /// 獲取access_token的URL地址
            /// </summary>
            public const string APP_ACCESS_TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/access_token";
            /// <summary>
            /// 獲取詳細用戶信息
            /// </summary>
            public const string APP_USERINFO_URL = "https://api.weixin.qq.com/sns/userinfo";
        }

        /// <summary>
        /// 支付寶授權常量
        /// </summary>
        public class ThridAppAlipayConst
        {
            /// <summary>
            /// oauth2授權
            /// </summary>
            public const string APP_CONNECT_URL = "https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?";
            /// <summary>
            /// app_auth_token
            /// </summary>
            public const string APP_AUTH_TOKEN = "alipay.open.auth.token.app";
            /// <summary>
            /// 支付寶通用接口
            /// </summary>
            public const string ALI_PUBLIC_API = @"https://openapi.alipay.com/gateway.do";
            /// <summary>
            /// 外部 H5 喚起支付寶客戶端進行實名認證接口地址
            /// </summary>
            public const string ALI_ALIPAYAPP_AUTH = @"alipays://platformapi/startapp?appId=20000067&url=";
        }
    }
}

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