private string BuildRequest(string orderNo, string subject, decimal totalAmt, EnumAliPayTradeType aliPayType)
{
var signType = aliPayType == EnumAliPayTradeType.APP ? EnumSignType.RSA : EnumSignType.MD5;
SortedDictionary<string, string> dicParam = CreateParam(orderNo, subject, totalAmt, aliPayType);
string urlParam = CreateURLParamString(dicParam, aliPayType);
string sign = BuildRequestsign(urlParam, signType);
dicParam.Add("sign_type", signType.ToString());
if (aliPayType == EnumAliPayTradeType.APP)
{
//APP支付URL字段须进行URL编码,具体出处参看官方文档
sign=HttpUtility.UrlEncode(sign, Encoding.UTF8);
return urlParam + "&sign=\"" + sign + "\"&sign_type=\"" + signType.ToString() + "\"";
}
else
{
dicParam.Add("sign", sign);
return BuildForm(dicParam);
}
}