首先你需要生成你RSA密钥。
这个密钥一共两个,一个私钥,一个公钥。
公钥用于在你的
蚂蚁金服开放平台
用户中心里生成支付宝公钥。
而支付宝公钥则用于安全验证(接收支付宝支付通知时检验该数据是否来自支付宝的推送。)
以下为生成支付参数的关键后台C#代码。
注意!首先下载这个项目,这是支付宝官方的SDK,你也可以去支付宝开放平台的官网下载。
下载地址:http://download.csdn.net/download/hw1233456/9759306
注意!你的rsa私钥(用文本文档打开)应该是这个样子的
-----BEGIN RSA PRIVATE KEY-----
这里是你的私钥
-----END RSA PRIVATE KEY-----
string primarkeyRSAPath = Server.MapPath("你的rsa_private_key.pem");
string app_id = "你的app_id";
string charset = "utf-8";string format = "json";
string method = "alipay.trade.app.pay";
string notify_url = "";//后台接收支付宝支付通知的URL地址(需要备案通过的域名)
string sign_type = "RSA";
string timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
string version = "1.0";
string timeout_express = "30m";//订单支付超时时间
string seller_id = "你的seller_id";
string biz_content = @"{""timeout_express"":""" + timeout_express + @""",""seller_id"":""" + seller_id +
@""",""product_code"":""QUICK_MSECURITY_PAY"",""total_amount"":""" + "订单金额 例如(0.01)" +
@""",""subject"":""" + "订单的标题 例如(Iphone8 128G 黑色)" + @""",""body"":""" + "订单详情" +
@""",""out_trade_no"":""" + "你系统生成的订单唯一编号" + @"""}";
IDictionary<string, string> paramsMap = new Dictionary<string, string>();
paramsMap.Add("app_id", app_id);
paramsMap.Add("biz_content", biz_content);
paramsMap.Add("charset", charset);
paramsMap.Add("format", format);
paramsMap.Add("method", method);
paramsMap.Add("notify_url", notify_url);
paramsMap.Add("sign_type", sign_type);
paramsMap.Add("timestamp", timestamp);
paramsMap.Add("version", version);
string sign = Aop.Api.Util.AlipaySignature.RSASign(paramsMap, primarkeyRSAPath, "utf-8", "RSA");
string url = string.Format(
"app_id={0}&biz_content={1}&charset={2}&format={3}&method={4}¬ify_url={5}&sign_type={6}×tamp={7}&version={8}&sign={9}",
HttpUtility.UrlEncode(app_id, Encoding.GetEncoding("UTF-8")), HttpUtility.UrlEncode(biz_content, Encoding.GetEncoding("UTF-8")), HttpUtility.UrlEncode(charset, Encoding.GetEncoding("UTF-8")),
HttpUtility.UrlEncode(format, Encoding.GetEncoding("UTF-8")), HttpUtility.UrlEncode(method, Encoding.GetEncoding("UTF-8")), HttpUtility.UrlEncode(notify_url, Encoding.GetEncoding("UTF-8")),
HttpUtility.UrlEncode(sign_type, Encoding.GetEncoding("UTF-8")), HttpUtility.UrlEncode(timestamp, Encoding.GetEncoding("UTF-8")), HttpUtility.UrlEncode(version, Encoding.GetEncoding("UTF-8")),
HttpUtility.UrlEncode(sign, Encoding.GetEncoding("UTF-8")));
return url;
string primarkeyRSAPath = Server.MapPath("你的rsa_private_key.pem");