/// <summary> /// 建立请求,以表单HTML形式构造(默认) /// </summary> /// <param name="sParaTemp">请求参数数组</param> /// <param name="strMethod">提交方式。两个值可选:post、get</param> /// <param name="strButtonValue">确认按钮显示文字</param> /// <returns>提交表单HTML文本</returns> public static string BuildRequest(SortedDictionary <string, string> sParaTemp, PayBaseInfo payBase) { //待请求参数数组 Dictionary <string, string> dicPara = new Dictionary <string, string>(); dicPara = BuildRequestPara(sParaTemp, payBase.SignType, payBase.InputCharset); StringBuilder sbHtml = new StringBuilder(); sbHtml.Append("<form id='alipaysubmit' name='alipaysubmit' action='" + PayConfigUtil.GATEWAY_NEW + "_input_charset=" + payBase.InputCharset + "' method='get'>"); foreach (KeyValuePair <string, string> temp in dicPara) { sbHtml.Append("<input type='hidden' name='" + temp.Key + "' value='" + temp.Value + "'/>"); } //submit按钮控件请不要含有name属性 sbHtml.Append("<input type='submit' value='确定' style='display:none;'></form>"); sbHtml.Append("<script>document.forms['alipaysubmit'].submit();</script>"); return(sbHtml.ToString()); }
/// <summary> /// 建立请求,以模拟远程HTTP的POST请求方式构造并获取支付宝的处理结果 /// </summary> /// <param name="sParaTemp">请求参数数组</param> /// <returns>支付宝处理结果</returns> public static string BuildRequestPost(SortedDictionary <string, string> sParaTemp, PayBaseInfo payBase) { //待请求参数数组 Dictionary <string, string> dicPara = new Dictionary <string, string>(); dicPara = BuildRequestPara(sParaTemp, payBase.SignType, payBase.InputCharset); //待请求参数数组字符串 string strRequestData = string.Empty; StringBuilder sbRequest = new StringBuilder(); foreach (KeyValuePair <string, string> temp in dicPara) { sbRequest.Append(temp.Key + "=" + temp.Value + "&"); } if (sbRequest.Length > 0) { strRequestData = sbRequest.ToString().TrimEnd('&'); } //构造请求地址 string strUrl = PayConfigUtil.GATEWAY_NEW + "_input_charset=" + payBase.InputCharset; LogUtil.Debug(string.Format("请求地址:{0},参数:{1}", strUrl, strRequestData)); //请求远程HTTP return(HttpRequestUtil.HttpPost(strUrl, strRequestData)); }