/// <summary> /// OAuthScope.snsapi_userinfo方式回调 /// </summary> /// <param name="auth_code"></param> /// <param name="expires_in"></param> /// <param name="appId"></param> /// <returns></returns> public ActionResult OpenOAuthCallback(string auth_code, int expires_in, string appId) { try { string openTicket = OpenTicketHelper.GetOpenTicket(component_AppId); var component_access_token = Open.CommonAPIs.CommonApi.GetComponentAccessToken(component_AppId, component_Secret, openTicket).component_access_token; ComponentAccessToken = component_access_token; var oauthResult = Open.ComponentAPIs.ComponentApi.QueryAuth(component_access_token, component_AppId, auth_code); //TODO:储存oauthResult.authorization_info var authInfoResult = Open.ComponentAPIs.ComponentApi.GetAuthorizerInfo(component_access_token, component_AppId, oauthResult.authorization_info.authorizer_appid); ViewData["QueryAuthInfo"] = oauthResult.authorization_info; ViewData["AuthorizerInfoResult"] = authInfoResult; return(View()); } catch (ErrorJsonResultException ex) { return(Content(ex.Message)); } }
public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage) { if (requestMessage.Content == "TESTCOMPONENT_MSG_TYPE_TEXT") { var responseMessage = requestMessage.CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = requestMessage.Content + "_callback";//固定为TESTCOMPONENT_MSG_TYPE_TEXT_callback return(responseMessage); } if (requestMessage.Content.StartsWith("QUERY_AUTH_CODE:")) { string openTicket = OpenTicketHelper.GetOpenTicket(componentAppId); var query_auth_code = requestMessage.Content.Replace("QUERY_AUTH_CODE:", ""); try { var component_access_token = Open.ComponentAPIs.ComponentApi.GetComponentAccessToken(componentAppId, componentSecret, openTicket).component_access_token; var oauthResult = Open.ComponentAPIs.ComponentApi.QueryAuth(component_access_token, componentAppId, query_auth_code); //调用客服接口 var content = query_auth_code + "_from_api"; var sendResult = AdvancedAPIs.CustomApi.SendText(oauthResult.authorization_info.authorizer_access_token, requestMessage.FromUserName, content); } catch (Exception ex) { throw; } } return(null); }
/// <summary> /// 发起授权页的体验URL /// </summary> /// <returns></returns> public ActionResult OAuth() { string openTicket = OpenTicketHelper.GetOpenTicket(component_AppId); var component_access_token = Open.CommonAPIs.CommonApi.GetComponentAccessToken(component_AppId, component_Secret, openTicket).component_access_token; //获取预授权码 var preAuthCode = Open.CommonAPIs.CommonApi.GetPreAuthCode(component_AppId, component_Secret, openTicket).pre_auth_code; var callbackUrl = "http://weixin.senparc.com/OpenOAuth/OpenOAuthCallback";//成功回调地址 var url = Open.ComponentAPIs.ComponentApi.GetComponentLoginPageUrl(component_AppId, preAuthCode, callbackUrl); return(Redirect(url)); }