public JsonResult Query(string tradeno, string alipayTradeNo) { /*DefaultAopClient client = new DefaultAopClient(Config.Gatewayurl, Config.AppId, Config.PrivateKey, "json", "2.0", * Config.SignType, Config.AlipayPublicKey, Config.CharSet, false);*/ AlipayTradeQueryModel model = new AlipayTradeQueryModel { OutTradeNo = tradeno, TradeNo = alipayTradeNo }; AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); request.SetBizModel(model); var response = _alipayService.Execute(request); return(Json(response.Body)); }
protected override async Task <HandleRequestResult> HandleRemoteAuthenticateAsync() { // 第一步,处理工作 AuthenticationProperties properties = null; var query = Request.Query; // 若用户禁止授权,则重定向后不会带上 auth_code 参数,仅会带上 state 参数 var code = query["auth_code"]; var state = query["state"]; properties = Options.StateDataFormat.Unprotect(state); if (properties == null) { return(HandleRequestResult.Fail("The oauth state was missing or invalid.")); } // OAuth2 10.12 CSRF if (!ValidateCorrelationId(properties)) { return(HandleRequestResult.Fail("Correlation failed.")); } if (StringValues.IsNullOrEmpty(code)) { return(HandleRequestResult.Fail("Code was not found.")); } // 第二步,通过 Code 获取 Access Token AlipaySystemOauthTokenResponse resAccessToken = null; try { var alipaySystemOauthTokenRequest = new AlipaySystemOauthTokenRequest { Code = code, GrantType = "authorization_code", RefreshToken = "" }; resAccessToken = _alipayService.Execute(alipaySystemOauthTokenRequest); } catch (Exception) { throw; } if (resAccessToken.IsError) { throw new Exception("Error occur when getting access token from Alipay."); } var identity = new ClaimsIdentity(ClaimsIssuer); if (Options.SaveTokens) { var authTokens = new List <AuthenticationToken> { new AuthenticationToken { Name = "access_token", Value = resAccessToken.AccessToken } }; if (!string.IsNullOrEmpty(resAccessToken.RefreshToken)) { authTokens.Add(new AuthenticationToken { Name = "refresh_token", Value = resAccessToken.RefreshToken }); } if (!string.IsNullOrEmpty(resAccessToken.ExpiresIn)) { if (int.TryParse(resAccessToken.ExpiresIn, NumberStyles.Integer, CultureInfo.InvariantCulture, out int value)) { var expiresAt = Clock.UtcNow + TimeSpan.FromSeconds(value); authTokens.Add(new AuthenticationToken { Name = "expires_at", Value = expiresAt.ToString("o", CultureInfo.InvariantCulture) }); } } properties.StoreTokens(authTokens); } var ticket = await CreateTicketAsync(identity, properties, ConvertToOAuthTokenResponse(resAccessToken)); if (ticket != null) { return(HandleRequestResult.Success(ticket)); } else { return(HandleRequestResult.Fail("Failed to retrieve user information from remote server.")); } }