.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=";
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_33391499/article/details/105351493