public SignItem GetSignItem(IAopRequest <T> request, string reponseBody) { if (string.IsNullOrEmpty(reponseBody)) { return(null); } SignItem signItem = new SignItem(); string text = signItem.Sign = GetSign(reponseBody); string text2 = signItem.SignSourceDate = GetSignSourceData(request, reponseBody); return(signItem); }
private AopDictionary buildRequestParams <T>(IAopRequest <T> request, String accessToken, String appAuthToken) where T : AopResponse { // 默认参数 AopDictionary oriParams = new AopDictionary(request.GetParameters()); // 序列化BizModel AopDictionary result = SerializeBizModel(oriParams, request); // 获取参数 String charset = String.IsNullOrEmpty(this.charset) ? "utf-8" : this.charset; String apiVersion = String.IsNullOrEmpty(request.GetApiVersion()) ? this.Version : request.GetApiVersion(); // 添加协议级请求参数,为空的参数后面会自动过滤,这里不做处理。 result.Add(METHOD, request.GetApiName()); result.Add(VERSION, apiVersion); result.Add(APP_ID, appId); result.Add(FORMAT, format); result.Add(TIMESTAMP, DateTime.Now); result.Add(ACCESS_TOKEN, accessToken); result.Add(SIGN_TYPE, signType); result.Add(TERMINAL_TYPE, request.GetTerminalType()); result.Add(TERMINAL_INFO, request.GetTerminalInfo()); result.Add(PROD_CODE, request.GetProdCode()); result.Add(NOTIFY_URL, request.GetNotifyUrl()); result.Add(CHARSET, charset); result.Add(RETURN_URL, request.GetReturnUrl()); result.Add(APP_AUTH_TOKEN, appAuthToken); if (request.GetNeedEncrypt()) { if (String.IsNullOrEmpty(result[BIZ_CONTENT])) { throw new AopException("api request Fail ! The reason: encrypt request is not supported!"); } if (String.IsNullOrEmpty(this.encyptKey) || String.IsNullOrEmpty(this.encyptType)) { throw new AopException("encryptType or encryptKey must not null!"); } if (!"AES".Equals(this.encyptType)) { throw new AopException("api only support Aes!"); } String encryptContent = AopUtils.AesEncrypt(this.encyptKey, result[BIZ_CONTENT], this.charset); result.Remove(BIZ_CONTENT); result.Add(BIZ_CONTENT, encryptContent); result.Add(ENCRYPT_TYPE, this.encyptType); } return(result); }
public T Execute <T>(IAopRequest <T> request, string accessToken) where T : AopResponse { // 添加协议级请求参数 AopDictionary txtParams = new AopDictionary(request.GetParameters()); txtParams.Add(METHOD, request.GetApiName()); txtParams.Add(VERSION, version); txtParams.Add(APP_ID, appId); txtParams.Add(FORMAT, format); txtParams.Add(TIMESTAMP, DateTime.Now); txtParams.Add(ACCESS_TOKEN, accessToken); txtParams.Add(SIGN_TYPE, signType); txtParams.Add(TERMINAL_TYPE, request.GetTerminalType()); txtParams.Add(TERMINAL_INFO, request.GetTerminalInfo()); txtParams.Add(PROD_CODE, request.GetProdCode()); // 添加签名参数 txtParams.Add(SIGN, AopUtils.SignAopRequest(txtParams, privateKeyPem)); if (string.IsNullOrEmpty(this.charset)) { this.charset = "utf-8"; } // 是否需要上传文件 string body; if (request is IAopUploadRequest <T> ) { IAopUploadRequest <T> uRequest = (IAopUploadRequest <T>)request; IDictionary <string, FileItem> fileParams = AopUtils.CleanupDictionary(uRequest.GetFileParameters()); body = webUtils.DoPost(this.serverUrl, txtParams, fileParams, this.charset); } else { body = webUtils.DoPost(this.serverUrl, txtParams, this.charset); } T rsp; if ("xml".Equals(format)) { IAopParser <T> tp = new AopXmlParser <T>(); rsp = tp.Parse(body); } else { IAopParser <T> tp = new AopJsonParser <T>(); rsp = tp.Parse(body); } return(rsp); }
public string EncryptSourceData(IAopRequest <T> request, string body, string encryptType, string encryptKey, string charset) { if (!"AES".Equals(encryptType)) { throw new AopException("API only support AES!"); } EncryptParseItem encryptParseItem = parseEncryptData(request, body); string str = body.Substring(0, encryptParseItem.startIndex); string str2 = body.Substring(encryptParseItem.endIndex); string str3 = AlipayEncrypt.AesDencrypt(encryptKey, encryptParseItem.encryptContent, charset); return(str + str3 + str2); }
/// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="requestParams"></param> /// <param name="request"></param> /// <returns></returns> private AopDictionary SerializeBizModel <T>(AopDictionary requestParams, IAopRequest <T> request) where T : AopResponse { AopDictionary result = requestParams; Boolean isBizContentEmpty = !requestParams.ContainsKey(BIZ_CONTENT) || String.IsNullOrEmpty(requestParams[BIZ_CONTENT]); if (isBizContentEmpty && request.GetBizModel() != null) { AopObject bizModel = request.GetBizModel(); String content = Serialize(bizModel); result.Add(BIZ_CONTENT, content); } return(result); }
public T SdkExecute <T>(IAopRequest <T> request) where T : AopResponse { AopDictionary dictionary = buildRequestParams(request, null, null); IDictionary <string, string> dictionary2 = new SortedDictionary <string, string>(dictionary); AopDictionary aopDictionary = new AopDictionary(dictionary2); string text = string.IsNullOrEmpty(charset) ? "utf-8" : charset; string value = AopUtils.SignAopRequest(aopDictionary, privateKeyPem, text, keyFromFile, signType); aopDictionary.Add("sign", value); string body = WebUtils.BuildQuery(aopDictionary, text); T val = (T)Activator.CreateInstance(typeof(T)); val.Body = body; return(val); }
public string EncryptSourceData(IAopRequest <T> request, string body, string encryptType, string encryptKey, string charset) { if (!"AES".Equals(encryptType)) { throw new AopException("API only support AES!"); } EncryptParseItem item = parseEncryptData(request, body); string bodyIndexContent = body.Substring(0, item.startIndex); string bodyEndexContent = body.Substring(item.endIndex); //TODO 解密逻辑 string bizContent = AlipayEncrypt.AesDencrypt(encryptKey, item.encryptContent, charset); return(bodyIndexContent + bizContent + bodyEndexContent); }
public SignItem GetSignItem(IAopRequest <T> request, string responseBody) { if (string.IsNullOrEmpty(responseBody)) { return(null); } var signItem = new SignItem(); var sign = GetSign(responseBody); signItem.Sign = sign; var signSourceData = GetSignSourceData(request, responseBody); signItem.SignSourceDate = signSourceData; return(signItem); }
private static string GetSignSourceData(IAopRequest <T> request, string body) { string text = request.GetApiName().Replace(".", "_") + "_response"; string text2 = "error_response"; int num = body.IndexOf(text); int num2 = body.IndexOf(text2); string result = null; if (num > 0) { result = ParseSignSourceData(body, text, num); } else if (num2 > 0) { result = ParseSignSourceData(body, text2, num2); } return(result); }
private static EncryptParseItem ParseEncryptData(IAopRequest <T> request, string body) { string text = request.GetApiName().Replace(".", "_") + "_response"; string text2 = "error_response"; int num = body.IndexOf(text); int num2 = body.IndexOf(text2); EncryptParseItem result = null; if (num > 0) { result = ParseEncryptItem(body, text, num); } else if (num2 > 0) { result = ParseEncryptItem(body, text2, num2); } return(result); }
public static void CheckResponseSign <T>(IAopRequest <T> request, string responseBody, bool isError, IAopParser <T> parser, string alipayPublicKey, string charset, string signType, bool keyFromFile) where T : AopResponse { if (string.IsNullOrEmpty(alipayPublicKey) || string.IsNullOrEmpty(charset)) { return; } SignItem signItem = parser.GetSignItem(request, responseBody); if (signItem == null) { throw new AopException("sign check fail: Body is Empty!"); } if (!isError || (isError && !string.IsNullOrEmpty(signItem.Sign))) { bool rsaCheckContent = AlipaySignature.RSACheckContent(signItem.SignSourceDate, signItem.Sign, alipayPublicKey, charset, signType, keyFromFile); if (!rsaCheckContent) { if (!string.IsNullOrEmpty(signItem.SignSourceDate)) { string srouceData = signItem.SignSourceDate; if (signItem.SignSourceDate.Contains("\\/")) { srouceData = srouceData.Replace("\\/", "/"); } bool jsonCheck = AlipaySignature.RSACheckContent(srouceData, signItem.Sign, alipayPublicKey, charset, signType, keyFromFile); if (!jsonCheck) { throw new AopException( "sign check fail: check Sign and Data Fail JSON also!" + signItem.Sign); } } else { throw new AopException( "sign check fail: check Sign and Data Fail!" + signItem.Sign); } } } }
private AopDictionary buildRequestParams <T>(IAopRequest <T> request, string accessToken, string appAuthToken) where T : AopResponse { AopDictionary requestParams = new AopDictionary(request.GetParameters()); AopDictionary aopDictionary = SerializeBizModel(requestParams, request); string value = string.IsNullOrEmpty(charset) ? "utf-8" : charset; string value2 = string.IsNullOrEmpty(request.GetApiVersion()) ? Version : request.GetApiVersion(); aopDictionary.Add("method", request.GetApiName()); aopDictionary.Add("version", value2); aopDictionary.Add("app_id", appId); aopDictionary.Add("format", format); aopDictionary.Add("timestamp", DateTime.Now); aopDictionary.Add("auth_token", accessToken); aopDictionary.Add("sign_type", signType); aopDictionary.Add("terminal_type", request.GetTerminalType()); aopDictionary.Add("terminal_info", request.GetTerminalInfo()); aopDictionary.Add("prod_code", request.GetProdCode()); aopDictionary.Add("notify_url", request.GetNotifyUrl()); aopDictionary.Add("charset", value); aopDictionary.Add("return_url", request.GetReturnUrl()); aopDictionary.Add("app_auth_token", appAuthToken); if (request.GetNeedEncrypt()) { if (string.IsNullOrEmpty(aopDictionary["biz_content"])) { throw new AopException("api request Fail ! The reason: encrypt request is not supported!"); } if (string.IsNullOrEmpty(encyptKey) || string.IsNullOrEmpty(encyptType)) { throw new AopException("encryptType or encryptKey must not null!"); } if (!"AES".Equals(encyptType)) { throw new AopException("api only support Aes!"); } string value3 = AopUtils.AesEncrypt(encyptKey, aopDictionary["biz_content"], charset); aopDictionary.Remove("biz_content"); aopDictionary.Add("biz_content", value3); aopDictionary.Add("encrypt_type", encyptType); } return(aopDictionary); }
public SignItem GetSignItem(IAopRequest <T> request, T response) { string body = response.Body; if (string.IsNullOrEmpty(body)) { return(null); } SignItem signItem = new SignItem(); string sign = GetSign(body); signItem.Sign = sign; string signSourceData = GetSignSourceData(request, body); signItem.SignSourceDate = signSourceData; return(signItem); }
private static ResponseParseItem parseRespItem <T>(IAopRequest <T> request, string respBody, IAopParser <T> parser, string encryptKey, string encryptType, string charset) where T : AopResponse { string realContent = null; if (request.GetNeedEncrypt()) { realContent = parser.EncryptSourceData(request, respBody, encryptType, encryptKey, charset); } else { realContent = respBody; } ResponseParseItem item = new ResponseParseItem(); item.realContent = realContent; item.respContent = respBody; return(item); }
private static string GetSignSourceData(IAopRequest <T> request, string body) { string rootNode = request.GetApiName().Replace(".", "_") + AlipayConstants.RESPONSE_SUFFIX; string errorRootNode = AlipayConstants.ERROR_RESPONSE; int indexOfRootNode = body.IndexOf(rootNode, StringComparison.Ordinal); int indexOfErrorRoot = body.IndexOf(errorRootNode, StringComparison.Ordinal); string result = null; if (indexOfRootNode > 0) { result = ParseSignSourceData(body, rootNode, indexOfRootNode); } else if (indexOfErrorRoot > 0) { result = ParseSignSourceData(body, errorRootNode, indexOfErrorRoot); } return(result); }
/// <summary> /// 解析加密节点 /// </summary> /// <param name="request"></param> /// <param name="body"></param> /// <returns></returns> private static EncryptParseItem parseEncryptData(IAopRequest <T> request, string body) { var rootNode = request.GetApiName().Replace(".", "_") + AlipayConstants.RESPONSE_SUFFIX; var errorRootNode = AlipayConstants.ERROR_RESPONSE; var indexOfRootNode = body.IndexOf(rootNode); var indexOfErrorRoot = body.IndexOf(errorRootNode); EncryptParseItem result = null; if (indexOfRootNode > 0) { result = ParseEncryptItem(body, rootNode, indexOfRootNode); } else if (indexOfErrorRoot > 0) { result = ParseEncryptItem(body, errorRootNode, indexOfErrorRoot); } return(result); }
public CertItem GetCertItem(IAopRequest <T> request, string reponseBody) { if (string.IsNullOrEmpty(reponseBody)) { return(null); } CertItem certItem = new CertItem(); string sign = GetSign(reponseBody); certItem.Sign = sign; string signSourceData = GetSignSourceData(request, reponseBody); certItem.SignSourceDate = signSourceData; string certSN = GetCertSN(reponseBody); certItem.CertSN = certSN; return(certItem); }
private void CheckResponseCertSign <T>(IAopRequest <T> request, string responseBody, bool isError, IAopParser <T> parser) where T : AopResponse { if (request.GetApiName().Equals("alipay.open.app.alipaycert.download")) { return; } CertItem certItem = parser.GetCertItem(request, responseBody); if (certItem == null) { throw new AopException("sign check fail: Body is Empty!"); } if (!isError || (isError && !string.IsNullOrEmpty(certItem.Sign))) { String currentAlipayPublicKey = LoadAlipayPublicKey(certItem); bool rsaCheckContent = AlipaySignature.RSACheckContent(certItem.SignSourceDate, certItem.Sign, currentAlipayPublicKey, charset, signType, false); if (!rsaCheckContent) { if (!string.IsNullOrEmpty(certItem.SignSourceDate) && certItem.SignSourceDate.Contains("\\/")) { string sourceData = certItem.SignSourceDate.Replace("\\/", "/"); bool jsonCheck = AlipaySignature.RSACheckContent(sourceData, certItem.Sign, currentAlipayPublicKey, charset, signType, false); if (!jsonCheck) { throw new AopException("sign check fail: check Sign and Data Fail JSON also"); } } else { throw new AopException("sign check fail: check Sign and Data Fail!"); } } } }
public async Task <T> PageExecuteAsync <T>(IAopRequest <T> request, string session, string reqMethod) where T : AopResponse { return(await _aopClient.PageExecuteAsync(request, session, reqMethod)); }
public T Execute <T>(IAopRequest <T> request, string accessToken, string appAuthToken) where T : AopResponse { if (string.IsNullOrEmpty(this.charset)) { this.charset = "utf-8"; } string apiVersion = null; if (!string.IsNullOrEmpty(request.GetApiVersion())) { apiVersion = request.GetApiVersion(); } else { apiVersion = Version; } // 添加协议级请求参数 AopDictionary txtParams = new AopDictionary(request.GetParameters()); // 序列化BizModel txtParams = SerializeBizModel(txtParams, request); txtParams.Add(METHOD, request.GetApiName()); txtParams.Add(VERSION, apiVersion); txtParams.Add(APP_ID, appId); txtParams.Add(FORMAT, format); txtParams.Add(TIMESTAMP, DateTime.Now); txtParams.Add(ACCESS_TOKEN, accessToken); txtParams.Add(SIGN_TYPE, signType); txtParams.Add(TERMINAL_TYPE, request.GetTerminalType()); txtParams.Add(TERMINAL_INFO, request.GetTerminalInfo()); txtParams.Add(PROD_CODE, request.GetProdCode()); txtParams.Add(CHARSET, charset); if (!string.IsNullOrEmpty(request.GetNotifyUrl())) { txtParams.Add(NOTIFY_URL, request.GetNotifyUrl()); } if (!string.IsNullOrEmpty(appAuthToken)) { txtParams.Add(APP_AUTH_TOKEN, appAuthToken); } if (request.GetNeedEncrypt()) { if (string.IsNullOrEmpty(txtParams[BIZ_CONTENT])) { throw new AopException("api request Fail ! The reason: encrypt request is not supported!"); } if (string.IsNullOrEmpty(this.encyptKey) || string.IsNullOrEmpty(this.encyptType)) { throw new AopException("encryptType or encryptKey must not null!"); } if (!"AES".Equals(this.encyptType)) { throw new AopException("api only support Aes!"); } string encryptContent = AopUtils.AesEncrypt(this.encyptKey, txtParams[BIZ_CONTENT], this.charset); txtParams.Remove(BIZ_CONTENT); txtParams.Add(BIZ_CONTENT, encryptContent); txtParams.Add(ENCRYPT_TYPE, this.encyptType); } // 添加签名参数 txtParams.Add(SIGN, AopUtils.SignAopRequest(txtParams, privateKeyPem, charset, this.keyFromFile, signType)); // 是否需要上传文件 string body; if (request is IAopUploadRequest <T> ) { IAopUploadRequest <T> uRequest = (IAopUploadRequest <T>)request; IDictionary <string, FileItem> fileParams = AopUtils.CleanupDictionary(uRequest.GetFileParameters()); body = webUtils.DoPost(this.serverUrl + "?" + CHARSET + "=" + this.charset, txtParams, fileParams, this.charset); } else { body = webUtils.DoPost(this.serverUrl + "?" + CHARSET + "=" + this.charset, txtParams, this.charset); } T rsp = null; IAopParser <T> parser = null; if ("xml".Equals(format)) { parser = new AopXmlParser <T>(); rsp = parser.Parse(body, charset); } else { parser = new AopJsonParser <T>(); rsp = parser.Parse(body, charset); } ResponseParseItem item = parseRespItem(request, body, parser, this.encyptKey, this.encyptType, charset); rsp = parser.Parse(item.realContent, charset); CheckResponseSign(request, item.respContent, rsp.IsError, parser, this.alipayPublicKey, this.charset, signType, this.keyFromFile); return(rsp); }
public T pageExecute <T>(IAopRequest <T> request, string accessToken, string reqMethod) where T : AopResponse { if (string.IsNullOrEmpty(this.charset)) { this.charset = "utf-8"; } string apiVersion = null; if (!string.IsNullOrEmpty(request.GetApiVersion())) { apiVersion = request.GetApiVersion(); } else { apiVersion = Version; } AopDictionary txtParams = new AopDictionary(request.GetParameters()); // 序列化BizModel txtParams = SerializeBizModel(txtParams, request); System.Text.StringBuilder xmlData = new System.Text.StringBuilder(); // 添加协议级请求参数 //AopDictionary txtParams = new AopDictionary(request.GetParameters()); txtParams.Add(METHOD, request.GetApiName()); txtParams.Add(VERSION, apiVersion); txtParams.Add(APP_ID, appId); txtParams.Add(FORMAT, format); txtParams.Add(TIMESTAMP, DateTime.Now); txtParams.Add(ACCESS_TOKEN, accessToken); txtParams.Add(SIGN_TYPE, signType); txtParams.Add(TERMINAL_TYPE, request.GetTerminalType()); txtParams.Add(TERMINAL_INFO, request.GetTerminalInfo()); txtParams.Add(PROD_CODE, request.GetProdCode()); txtParams.Add(NOTIFY_URL, request.GetNotifyUrl()); txtParams.Add(CHARSET, this.charset); //txtParams.Add(RETURN_URL, this.return_url); txtParams.Add(RETURN_URL, request.GetReturnUrl()); //字典排序 IDictionary <string, string> sortedTxtParams = new SortedDictionary <string, string>(txtParams); txtParams = new AopDictionary(sortedTxtParams); // 排序返回字典类型添加签名参数 txtParams.Add(SIGN, AopUtils.SignAopRequest(sortedTxtParams, privateKeyPem, this.charset, this.keyFromFile, this.signType)); // 是否需要上传文件 string body; if (request is IAopUploadRequest <T> ) { IAopUploadRequest <T> uRequest = (IAopUploadRequest <T>)request; IDictionary <string, FileItem> fileParams = AopUtils.CleanupDictionary(uRequest.GetFileParameters()); body = webUtils.DoPost(this.serverUrl + "?" + CHARSET + "=" + this.charset, txtParams, fileParams, this.charset); } else { if (reqMethod.Equals("GET")) { //直接调用DoGet方法请求 //body=webUtils .DoGet (this.serverUrl ,txtParams ,this.charset); //拼接get请求的url string tmpUrl = serverUrl; if (txtParams != null && txtParams.Count > 0) { if (tmpUrl.Contains("?")) { tmpUrl = tmpUrl + "&" + Aop.Api.Util.WebUtils.BuildQuery(txtParams, charset); } else { tmpUrl = tmpUrl + "?" + Aop.Api.Util.WebUtils.BuildQuery(txtParams, charset); } } body = tmpUrl; } else { //直接调用DoPost方法请求 // body = webUtils.DoPost(this.serverUrl, txtParams, this.charset); //输出post表单 body = BuildHtmlRequest(txtParams, reqMethod, reqMethod); } } T rsp = null; IAopParser <T> parser = null; if ("xml".Equals(format)) { parser = new AopXmlParser <T>(); rsp = parser.Parse(body, charset); } else { parser = new AopJsonParser <T>(); rsp = parser.Parse(body, charset); } //验签 // CheckResponseSign(request, rsp, parser, this.alipayPublicKey, this.charset); return(rsp); }
public T pageExecute <T>(IAopRequest <T> request) where T : AopResponse { return(pageExecute <T>(request, null, "POST")); }
public T Execute <T>(IAopRequest <T> request, string accessToken) where T : AopResponse { return(Execute <T>(request, accessToken, null)); }
public T Execute <T>(IAopRequest <T> request) where T : AopResponse { return(Execute <T>(request, null)); }
public T pageExecute <T>(IAopRequest <T> request, string accessToken, string appAuthToken, string reqMethod) where T : AopResponse { if (string.IsNullOrEmpty(this.charset)) { this.charset = "utf-8"; } string apiVersion = null; if (!string.IsNullOrEmpty(request.GetApiVersion())) { apiVersion = request.GetApiVersion(); } else { apiVersion = Version; } AopDictionary txtParams = new AopDictionary(request.GetParameters()); // 序列化BizModel txtParams = SerializeBizModel(txtParams, request); // 添加协议级请求参数 txtParams.Add(AlipayConstants.METHOD, request.GetApiName()); txtParams.Add(AlipayConstants.VERSION, apiVersion); txtParams.Add(AlipayConstants.ALIPAY_SDK, SDK_VERSION); txtParams.Add(AlipayConstants.APP_ID, appId); txtParams.Add(AlipayConstants.FORMAT, format); txtParams.Add(AlipayConstants.TIMESTAMP, DateTime.Now); txtParams.Add(AlipayConstants.ACCESS_TOKEN, accessToken); txtParams.Add(AlipayConstants.APP_AUTH_TOKEN, appAuthToken); txtParams.Add(AlipayConstants.SIGN_TYPE, signType); txtParams.Add(AlipayConstants.TERMINAL_TYPE, request.GetTerminalType()); txtParams.Add(AlipayConstants.TERMINAL_INFO, request.GetTerminalInfo()); txtParams.Add(AlipayConstants.PROD_CODE, request.GetProdCode()); txtParams.Add(AlipayConstants.NOTIFY_URL, request.GetNotifyUrl()); txtParams.Add(AlipayConstants.CHARSET, this.charset); txtParams.Add(AlipayConstants.RETURN_URL, request.GetReturnUrl()); if (certEnvironment != null) { txtParams.Add(AlipayConstants.ALIPAY_ROOT_CERT_SN, certEnvironment.RootCertSN); txtParams.Add(AlipayConstants.APP_CERT_SN, certEnvironment.AppCertSN); } //字典排序 IDictionary <string, string> sortedTxtParams = new SortedDictionary <string, string>(txtParams, StringComparer.Ordinal); txtParams = new AopDictionary(sortedTxtParams); // 排序返回字典类型添加签名参数 txtParams.Add(AlipayConstants.SIGN, AopUtils.SignAopRequest(sortedTxtParams, privateKeyPem, this.charset, this.keyFromFile, this.signType)); // 是否需要上传文件 string body; if (request is IAopUploadRequest <T> ) { IAopUploadRequest <T> uRequest = (IAopUploadRequest <T>)request; IDictionary <string, FileItem> fileParams = AopUtils.CleanupDictionary(uRequest.GetFileParameters()); body = webUtils.DoPost(this.serverUrl + "?" + AlipayConstants.CHARSET + "=" + this.charset, txtParams, fileParams, this.charset); } else { if (reqMethod.Equals("GET")) { //拼接get请求的url string tmpUrl = serverUrl; if (txtParams != null && txtParams.Count > 0) { if (tmpUrl.Contains("?")) { tmpUrl = tmpUrl + "&" + WebUtils.BuildQuery(txtParams, charset); } else { tmpUrl = tmpUrl + "?" + WebUtils.BuildQuery(txtParams, charset); } } body = tmpUrl; } else { //输出post表单 body = BuildHtmlRequest(txtParams, reqMethod, reqMethod); } } T rsp = null; IAopParser <T> parser = null; if ("xml".Equals(format)) { parser = new AopXmlParser <T>(); rsp = parser.Parse(body, charset); } else { parser = new AopJsonParser <T>(); rsp = parser.Parse(body, charset); } return(rsp); }
public T Execute <T>(IAopRequest <T> request, string session, string appAuthToken) where T : AopResponse { return(_aopClient.Execute(request, session, appAuthToken)); }
public async Task <T> ExecuteAsync <T>(IAopRequest <T> request, string session, string appAuthToken) where T : AopResponse { return(await _aopClient.ExecuteAsync(request, session, appAuthToken)); }
public async Task <T> PageExecuteAsync <T>(IAopRequest <T> request) where T : AopResponse { return(await _aopClient.PageExecuteAsync(request)); }
public T PageExecute <T>(IAopRequest <T> request, string session, string reqMethod) where T : AopResponse { return(_aopClient.PageExecute(request, session, reqMethod)); }
public T SdkExecute <T>(IAopRequest <T> request) where T : AopResponse { return(_aopClient.SdkExecute(request)); }