Esempio n. 1
0
File: AliPayAPI.cs Progetto: qdjx/C5
    public static AlipayUserUserinfoShareResponse alipay_user_userinfo_share(string accessToken)
    {
        var client = GetAlipayClient();
        AlipayUserUserinfoShareRequest request = new AlipayUserUserinfoShareRequest();

        AlipayUserUserinfoShareResponse response = client.Execute(request, accessToken);

        return(response);
    }
Esempio n. 2
0
        /// <inheritdoc />
        public ThirdPartyAuthorizeResult Authorize(AuthorizationInput input)
        {
            IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do",
                                                     AppId, AppPrivateKey, "json", "1.0", "RSA2", AppPublicKey, "utf-8", false);
            AlipaySystemOauthTokenRequest tokenRequest = new AlipaySystemOauthTokenRequest
            {
                Code      = input.Code,
                GrantType = "authorization_code"
            };
            AlipaySystemOauthTokenResponse tokenResponse = client.Execute(tokenRequest);

            if (tokenResponse.IsError)
            {
                throw new UserFriendlyException("认证失败,请重试");
            }

            var thirdPartyUser = _thirdPartyUserRepository
                                 .GetAll()
                                 .FirstOrDefault(u => u.OpenId == tokenResponse.UserId);

            if (thirdPartyUser == null)
            {
                AlipayUserUserinfoShareRequest  userRequest  = new AlipayUserUserinfoShareRequest();
                AlipayUserUserinfoShareResponse userResponse = client.Execute(userRequest, tokenResponse.AccessToken);
                if (userResponse.IsError)
                {
                    throw new UserFriendlyException("认证失败,请重试");
                }
                thirdPartyUser = new ThirdPartyUser
                {
                    OpenId      = tokenResponse.UserId,
                    AccessToken = tokenResponse.AccessToken,
                    Name        = userResponse.RealName,
                    NickName    = userResponse.NickName,
                    ThirdParty  = "Alipay"
                };
                _thirdPartyUserRepository.Insert(thirdPartyUser);
                CurrentUnitOfWork.SaveChanges();
            }
            thirdPartyUser.AccessToken = tokenResponse.UserId;
            CurrentUnitOfWork.SaveChanges();
            return(new ThirdPartyAuthorizeResult
            {
                ThirdPartyUser = new ThirdPartyUserOutput
                {
                    UserId = thirdPartyUser.UserId,
                    Name = thirdPartyUser.NickName,
                    NickName = thirdPartyUser.NickName
                },
                Token = $"OpenId={tokenResponse.UserId}&date={DateTime.Now:yyyy-MM-dd HH:mm:ss}&type=Alipay".EncryptQueryString(),
                Success = thirdPartyUser.UserId > 0,
                RequireCreateNewUser = thirdPartyUser.UserId == 0
            });
Esempio n. 3
0
 public static string GetUserId(string companyId, string auth_code)
 {
     try
     {
         AlipayUserUserinfoShareRequest  request  = new AlipayUserUserinfoShareRequest();
         AlipayUserUserinfoShareResponse response = GetDefaultAopClient(companyId).Execute(request);
         if (response.IsError)
         {
             TxtLogServices.WriteTxtLogEx("AliPayApiServices", string.Format("GetUserId()获取用户授权失败,auth_code:{0},body:{1}", auth_code, response.Body));
         }
         else
         {
             return(response.UserId);
         }
     }
     catch (Exception ex)
     {
         TxtLogServices.WriteTxtLogEx("AliPayApiServices", string.Format("GetUserId()获取用户授权失败,auth_code:{0},Message:{1}", auth_code, ex.Message));
     }
     return("");
 }
Esempio n. 4
0
        public void AlipayLoginAction(SiteSettings site)
        {
            if (string.IsNullOrEmpty(AlipayFuwuConfig.appId) && !AlipayFuwuConfig.CommSetConfig(site.AlipayAppid, this.Page.Server.MapPath("~/"), "GBK"))
            {
                this.WriteFuwuError(this.Page.Request.QueryString.ToString(), "服务窗口参数配置不准确!");
                this.Page.Response.Redirect(Globals.ApplicationPath + "/UserLogin.aspx");
            }
            string text  = this.Page.Request.QueryString["auth_code"];
            string value = this.Page.Request.QueryString["scope"];

            if (!string.IsNullOrEmpty(value) && !string.IsNullOrEmpty(text))
            {
                this.WriteFuwuError(this.Page.Request.QueryString.ToString(), "已授权");
                AlipaySystemOauthTokenResponse oauthTokenResponse = AliOHHelper.GetOauthTokenResponse(text);
                this.WriteFuwuError(AliOHHelper.SerializeObject(oauthTokenResponse, true), "获取AccessToken");
                if (oauthTokenResponse == null || oauthTokenResponse.IsError || oauthTokenResponse.AccessToken == null)
                {
                    this.Page.Response.Redirect(Globals.ApplicationPath + "/UserLogin.aspx?returnUrl=" + Globals.UrlEncode(HttpContext.Current.Request.Url.AbsoluteUri.ToString()));
                    return;
                }
                string  text2   = oauthTokenResponse.AlipayUserId;
                string  text3   = "";
                JObject jObject = JsonConvert.DeserializeObject(oauthTokenResponse.Body) as JObject;
                if (jObject["alipay_system_oauth_token_response"]["user_id"] != null)
                {
                    text3 = jObject["alipay_system_oauth_token_response"]["user_id"].ToString();
                }
                if (this.HasLogin(text3, "fuwu") || this.HasLogin(text2, "fuwu"))
                {
                    MemberInfo openIdMember = MemberProcessor.GetOpenIdMember(text3, "fuwu");
                    if (openIdMember == null || openIdMember.Status == Convert.ToInt32(UserStatus.DEL))
                    {
                        this.Page.Response.Redirect(Globals.ApplicationPath + "/logout.aspx");
                    }
                    string alipayOpenid = openIdMember.AlipayOpenid;
                    if ((text2 != "" && text2 != alipayOpenid) || string.IsNullOrEmpty(alipayOpenid))
                    {
                        openIdMember.AlipayOpenid = text2;
                        MemberProcessor.SetAlipayInfos(openIdMember);
                    }
                    this.setLogin(openIdMember.UserId);
                    this.WriteFuwuError("已存在用户登入!", text3);
                    return;
                }
                string accessToken = oauthTokenResponse.AccessToken;
                AlipayUserUserinfoShareResponse alipayUserUserinfo = AliOHHelper.GetAlipayUserUserinfo(accessToken);
                this.WriteFuwuError(AliOHHelper.SerializeObject(alipayUserUserinfo, true), "获取用户信息");
                string alipayUsername = "";
                string text4          = "";
                if (alipayUserUserinfo != null && !alipayUserUserinfo.IsError)
                {
                    text4 = alipayUserUserinfo.Avatar;
                    if (alipayUserUserinfo.RealName != null)
                    {
                        alipayUsername = alipayUserUserinfo.RealName;
                    }
                    if (string.IsNullOrEmpty(text2))
                    {
                        text2 = alipayUserUserinfo.UserId;
                    }
                    if (string.IsNullOrEmpty(text3))
                    {
                        JObject jObject2 = JsonConvert.DeserializeObject(alipayUserUserinfo.Body) as JObject;
                        if (jObject2["alipay_user_id"] != null)
                        {
                            text3 = jObject2["alipay_user_id"].ToString();
                        }
                    }
                }
                string     text5      = "FW*" + text3.Substring(10);
                string     generateId = Globals.GetGenerateId();
                MemberInfo memberInfo = new MemberInfo();
                memberInfo.GradeId        = MemberProcessor.GetDefaultMemberGrade();
                memberInfo.UserName       = text5;
                memberInfo.CreateDate     = DateTime.Now;
                memberInfo.SessionId      = generateId;
                memberInfo.SessionEndTime = DateTime.Now.AddYears(10);
                memberInfo.UserHead       = text4;
                memberInfo.AlipayAvatar   = text4;
                memberInfo.AlipayLoginId  = text5;
                memberInfo.AlipayOpenid   = text2;
                memberInfo.AlipayUserId   = text3;
                memberInfo.AlipayUsername = alipayUsername;
                HttpCookie httpCookie = HttpContext.Current.Request.Cookies["Vshop-ReferralId"];
                if (httpCookie != null)
                {
                    memberInfo.ReferralUserId = Convert.ToInt32(httpCookie.Value);
                }
                else
                {
                    memberInfo.ReferralUserId = 0;
                }
                memberInfo.Password = HiCryptographer.Md5Encrypt("888888");
                MemberProcessor.CreateMember(memberInfo);
                MemberInfo member = MemberProcessor.GetMember(generateId);
                this.setLogin(member.UserId);
                return;
            }
            else
            {
                if (!string.IsNullOrEmpty(value))
                {
                    this.WriteFuwuError(this.Page.Request.QueryString.ToString(), "拒绝授权");
                    this.Page.Response.Redirect(Globals.ApplicationPath + "/UserLogin.aspx");
                    return;
                }
                string text6 = AliOHHelper.AlipayAuthUrl(HttpContext.Current.Request.Url.ToString().Replace(":" + HttpContext.Current.Request.Url.Port, ""), site.AlipayAppid, "auth_userinfo");
                this.WriteFuwuError(text6, "用户登入授权的路径");
                this.Page.Response.Redirect(text6);
                return;
            }
        }
        public void AlipayLoginAction(SiteSettings site)
        {
            if (string.IsNullOrEmpty(AlipayFuwuConfig.appId) && !AlipayFuwuConfig.CommSetConfig(site.AlipayAppid, this.Page.Server.MapPath("~/"), "GBK"))
            {
                this.WriteFuwuError(this.Page.Request.QueryString.ToString(), "服务窗口参数配置不准确!");
                this.Page.Response.Redirect(Globals.ApplicationPath + "/UserLogin.aspx");
            }
            string str  = this.Page.Request.QueryString["auth_code"];
            string str2 = this.Page.Request.QueryString["scope"];

            if (!string.IsNullOrEmpty(str2) && !string.IsNullOrEmpty(str))
            {
                this.WriteFuwuError(this.Page.Request.QueryString.ToString(), "已授权");
                AlipaySystemOauthTokenResponse oauthTokenResponse = AliOHHelper.GetOauthTokenResponse(str);
                this.WriteFuwuError(AliOHHelper.SerializeObject(oauthTokenResponse, true), "获取AccessToken");
                if (((oauthTokenResponse != null) && !oauthTokenResponse.IsError) && (oauthTokenResponse.AccessToken != null))
                {
                    string  alipayUserId = oauthTokenResponse.AlipayUserId;
                    string  openId       = "";
                    JObject obj2         = JsonConvert.DeserializeObject(oauthTokenResponse.Body) as JObject;
                    if (obj2["alipay_system_oauth_token_response"]["user_id"] != null)
                    {
                        openId = obj2["alipay_system_oauth_token_response"]["user_id"].ToString();
                    }
                    if (this.HasLogin(openId, "fuwu") || this.HasLogin(alipayUserId, "fuwu"))
                    {
                        MemberInfo openIdMember = MemberProcessor.GetOpenIdMember(openId, "fuwu");
                        if ((openIdMember == null) || (openIdMember.Status == Convert.ToInt32(UserStatus.DEL)))
                        {
                            this.Page.Response.Redirect(Globals.ApplicationPath + "/logout.aspx");
                        }
                        string alipayOpenid = openIdMember.AlipayOpenid;
                        if (((alipayUserId != "") && (alipayUserId != alipayOpenid)) || string.IsNullOrEmpty(alipayOpenid))
                        {
                            openIdMember.AlipayOpenid = alipayUserId;
                            MemberProcessor.SetAlipayInfos(openIdMember);
                        }
                        this.setLogin(openIdMember.UserId);
                        this.WriteFuwuError("已存在用户登入!", openId);
                    }
                    else
                    {
                        AlipayUserUserinfoShareResponse alipayUserUserinfo = AliOHHelper.GetAlipayUserUserinfo(oauthTokenResponse.AccessToken);
                        this.WriteFuwuError(AliOHHelper.SerializeObject(alipayUserUserinfo, true), "获取用户信息");
                        string str7     = "";
                        string realName = "";
                        string avatar   = "";
                        if ((alipayUserUserinfo != null) && !alipayUserUserinfo.IsError)
                        {
                            avatar = alipayUserUserinfo.Avatar;
                            if (alipayUserUserinfo.RealName != null)
                            {
                                realName = alipayUserUserinfo.RealName;
                            }
                            if (string.IsNullOrEmpty(alipayUserId))
                            {
                                alipayUserId = alipayUserUserinfo.UserId;
                            }
                            if (string.IsNullOrEmpty(openId))
                            {
                                JObject obj3 = JsonConvert.DeserializeObject(alipayUserUserinfo.Body) as JObject;
                                if (obj3["alipay_user_id"] != null)
                                {
                                    openId = obj3["alipay_user_id"].ToString();
                                }
                            }
                        }
                        str7 = "FW*" + openId.Substring(10);
                        string     generateId = Globals.GetGenerateId();
                        MemberInfo member     = new MemberInfo {
                            GradeId        = MemberProcessor.GetDefaultMemberGrade(),
                            UserName       = str7,
                            CreateDate     = DateTime.Now,
                            SessionId      = generateId,
                            SessionEndTime = DateTime.Now.AddYears(10),
                            UserHead       = avatar,
                            AlipayAvatar   = avatar,
                            AlipayLoginId  = str7,
                            AlipayOpenid   = alipayUserId,
                            AlipayUserId   = openId,
                            AlipayUsername = realName
                        };
                        HttpCookie cookie = HttpContext.Current.Request.Cookies["Vshop-ReferralId"];
                        if (cookie != null)
                        {
                            member.ReferralUserId = Convert.ToInt32(cookie.Value);
                        }
                        else
                        {
                            member.ReferralUserId = 0;
                        }
                        member.Password = HiCryptographer.Md5Encrypt("888888");
                        MemberProcessor.CreateMember(member);
                        MemberInfo info3 = MemberProcessor.GetMember(generateId);
                        this.setLogin(info3.UserId);
                    }
                }
                else
                {
                    this.Page.Response.Redirect(Globals.ApplicationPath + "/UserLogin.aspx?returnUrl=" + Globals.UrlEncode(HttpContext.Current.Request.Url.AbsoluteUri.ToString()));
                }
            }
            else if (!string.IsNullOrEmpty(str2))
            {
                this.WriteFuwuError(this.Page.Request.QueryString.ToString(), "拒绝授权");
                this.Page.Response.Redirect(Globals.ApplicationPath + "/UserLogin.aspx");
            }
            else
            {
                string msg = AliOHHelper.AlipayAuthUrl(HttpContext.Current.Request.Url.ToString().Replace(":" + HttpContext.Current.Request.Url.Port, ""), site.AlipayAppid, "auth_userinfo");
                this.WriteFuwuError(msg, "用户登入授权的路径");
                this.Page.Response.Redirect(msg);
            }
        }