支付宝付款接口实例实现,购物网站常用的代码
public class Core
{
public Core()
{
}
/// <summary>
/// 除去数组中的空值和签名参数并以字母a到z的顺序排序
/// </summary>
/// <param name="dicArrayPre">过滤前的参数组</param>
/// <returns>过滤后的参数组</returns>
public static Dictionary<string, string> FilterPara(SortedDictionary<string, string> dicArrayPre)
{
Dictionary<string, string> dicArray = new Dictionary<string, string>();
foreach (KeyValuePair<string, string> temp in dicArrayPre)
{
if (temp.Key.ToLower() != "sign" && temp.Key.ToLower() != "sign_type" && temp.Value != "" && temp.Value != null)
{
dicArray.Add(temp.Key, temp.Value);
}
}
return dicArray;
}
/// <summary>
/// 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
/// </summary>
/// <param name="sArray">需要拼接的数组</param>
/// <returns>拼接完成以后的字符串</returns>
public static string CreateLinkString(Dictionary<string, string> dicArray)
{
StringBuilder prestr = new StringBuilder();
foreach (KeyValuePair<string, string> temp in dicArray)
{
prestr.Append(temp.Key "=" temp.Value "&");
}
//去掉最後一個&字符
int nLen = prestr.Length;
prestr.Remove(nLen-1,1);
return prestr.ToString();
}
/// <summary>
/// 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并对参数值做urlencode
/// </summary>
/// <param name="sArray">需要拼接的数组</param>
/// <param name="code">字符编码</param>
/// <returns>拼接完成以后的字符串</returns>
public static string CreateLinkStringUrlencode(Dictionary<string, string> dicArray, Encoding code)
{
StringBuilder prestr = new StringBuilder();
foreach (KeyValuePair<string, string> temp in dicArray)
{
prestr.Append(temp.Key "=" HttpUtility.UrlEncode(temp.Value, code) "&");
}
//去掉最後一個&字符
int nLen = prestr.Length;
prestr.Remove(nLen - 1, 1);
return prestr.ToString();
}
/// <summary>
/// 写日志,方便测试(看网站需求,也可以改成把记录存入数据库)
/// </summary>
/// <param name="sWord">要写入日志里的文本内容</param>
public static void LogResult(string sWord)
{
string strPath = HttpContext.Current.Server.MapPath("log");
strPath = strPath "\\" DateTime.Now.ToString().Replace(":", "") ".txt";
StreamWriter fs = new StreamWriter(strPath, false, System.Text.Encoding.Default);
fs.Write(sWord);
fs.Close();
}
/// <summary>
/// 获取文件的md5摘要
/// </summary>
/// <param name="sFile">文件流</param>
/// <returns>MD5摘要结果</returns>
public static string GetAbstractToMD5(Stream sFile)
{
MD5 md5 = new MD5CryptoServiceProvider();
byte[] result = md5.ComputeHash(sFile);
StringBuilder sb = new StringBuilder(32);
for (int i = 0; i < result.Length; i )
{
sb.Append(result[i].ToString("x").PadLeft(2, '0'));
}
return sb.ToString();
}
/// <summary>
/// 获取文件的md5摘要
/// </summary>
/// <param name="dataFile">文件流</param>
/// <returns>MD5摘要结果</returns>
public static string GetAbstractToMD5(byte[] dataFile)
{
MD5 md5 = new MD5CryptoServiceProvider();
byte[] result = md5.ComputeHash(dataFile);
StringBuilder sb = new StringBuilder(32);
for (int i = 0; i < result.Length; i )
{
sb.Append(result[i].ToString("x").PadLeft(2, '0'));
}
return sb.ToString();
}
}
资源文件列表
trade_create_by_buyer-CSHARP-UTF-8/app_code/AlipayConfig.cs , 2819
trade_create_by_buyer-CSHARP-UTF-8/app_code/AlipayCore.cs , 5254
trade_create_by_buyer-CSHARP-UTF-8/app_code/AlipayNotify.cs , 7216
trade_create_by_buyer-CSHARP-UTF-8/app_code/AlipaySubmit.cs , 12646
trade_create_by_buyer-CSHARP-UTF-8/app_code/MD5.cs , 2314
trade_create_by_buyer-CSHARP-UTF-8/default.aspx , 7960
trade_create_by_buyer-CSHARP-UTF-8/default.aspx.cs , 5767
trade_create_by_buyer-CSHARP-UTF-8/images/alipay.gif , 1511
trade_create_by_buyer-CSHARP-UTF-8/images/new-btn-fixed.png , 5902
trade_create_by_buyer-CSHARP-UTF-8/log/log.txt , 85
trade_create_by_buyer-CSHARP-UTF-8/notify_url.aspx , 103
trade_create_by_buyer-CSHARP-UTF-8/notify_url.aspx.cs , 7414
trade_create_by_buyer-CSHARP-UTF-8/readme.txt , 8915
trade_create_by_buyer-CSHARP-UTF-8/return_url.aspx , 436
trade_create_by_buyer-CSHARP-UTF-8/return_url.aspx.cs , 4819
trade_create_by_buyer-CSHARP-UTF-8/Web.Config , 286
