1、准備參數
新建一個公共參數配置類NewAlipayconfig (可將參數存放到config配置文件中讀取)
public class NewAlipayconfig { public NewAlipayconfig() { // // TODO: 在此處添加構造函數邏輯 // } // 應用ID,您的APPID public static string app_id = "1231213"; // 支付寶網關 public static string gatewayUrl = "https://openapi.alipay.com/gateway.do"; // 支付寶公鑰,查看地址:https://openhome.alipay.com/platform/keyManage.htm 對應APPID下的支付寶公鑰。 public static string alipay_public_key = "MIIBIjANBgkqhk+ng8kcURzCNMuyOGIUsssQM66m6hNBU6BXqCPcKZDEZVdlXW3it4jqDveq1utRAoYNPj9wwSFiXxmmjA4/7LhlOMxwJ28R+7aB4tDgiYjixcuQIDAQAB"; // 商戶私鑰,您的原始格式RSA私鑰 public static string private_key = "00j7jSssF8+2QdNcIbIhAoGBAPYCd+PLanGuNHMDzumBQ=="; // 簽名方式 public static string sign_type = "RSA2"; // 編碼格式 public static string charset = "UTF-8"; //同步回調地址 public static string AliPayReturn_url = "同步回調地址:即支付成功之后,跳轉的頁面"; //異步回調通知地址 public static string AliPayNotify_url = "異步回調通知地址:即支付成功,會主動調用該地址"; }
注意:1、以上參數app_id、gatewayUrl可直接在支付寶商戶平台獲取
2、通過支付寶RSA簽名驗簽工具生成一對商戶公鑰和秘鑰,商戶秘鑰保存(即private_key,簽名時使用),然后通過商戶公鑰到支付寶商戶平台設置,來獲取支付寶公鑰
3、建議將商戶系統業務狀態的修改,通過異步通知地址來更新,以異步通知的地址為准
2、支付寶PC端支付
DefaultAopClient client = new DefaultAopClient(NewAlipayconfig.gatewayUrl, NewAlipayconfig.app_id, NewAlipayconfig.private_key, "json", "1.0", "RSA2", NewAlipayconfig.alipay_public_key, "utf-8", false); // 外部訂單號,商戶網站訂單系統中唯一的訂單號 string out_trade_no = 100001; // 訂單名稱 string subject = "購買商品"; // 付款金額 string total_amout = 0.01;// 商品描述 string body = "支付寶商品支付"; // 組裝業務參數model AlipayTradePagePayModel model = new AlipayTradePagePayModel(); model.Body = body; model.Subject = subject; model.TotalAmount = total_amout; model.OutTradeNo = out_trade_no; model.ProductCode = "FAST_INSTANT_TRADE_PAY"; AlipayTradePagePayRequest request = new AlipayTradePagePayRequest(); // 設置同步回調地址 request.SetReturnUrl(NewAlipayconfig.AliPayReturn_url); // 設置異步通知接收地址 request.SetNotifyUrl(NewAlipayconfig.AliPayNotify_url); // 將業務model載入到request request.SetBizModel(model); AlipayTradePagePayResponse response = null; try { response = client.pageExecute(request, null, "post"); Response.Write(response.Body); } catch (Exception exp) { throw exp; }
通過以上代碼即可實現PC端支付寶支付功能,建議首次接入支付寶支付功能時,先將支付寶沙箱環境測通(支付寶支付測試環境)
2、移動端支付寶支付
DefaultAopClient clientWap = new DefaultAopClient(NewAlipayconfig.gatewayUrl, NewAlipayconfig.app_id, NewAlipayconfig.private_key, "json", "1.0", NewAlipayconfig.sign_type, NewAlipayconfig.alipay_public_key, NewAlipayconfig.charset, false); // 外部訂單號,商戶網站訂單系統中唯一的訂單號 string out_trade_no_wap = 100002; // 訂單名稱 string subject_wap = "購買商品"; // 付款金額 string total_amout_wap = 0.01;// 商品描述 string body_wap = "支付寶商品支付"; // 支付中途退出返回商戶網站地址 string quit_url = "";//如果用戶中途退出 則跳轉到該頁面 // 組裝業務參數model AlipayTradeWapPayModel modelWap = new AlipayTradeWapPayModel(); modelWap.Body = body_wap; modelWap.Subject = subject_wap; modelWap.TotalAmount = total_amout_wap; modelWap.OutTradeNo = out_trade_no_wap; modelWap.ProductCode = "QUICK_WAP_WAY"; modelWap.QuitUrl = quit_url; AlipayTradeWapPayRequest requestWap = new AlipayTradeWapPayRequest(); // 設置支付完成同步回調地址 requestWap.SetReturnUrl(NewAlipayconfig.AliPayReturn_url); // 設置支付完成異步通知接收地址 requestWap.SetNotifyUrl(NewAlipayconfig.AliPayNotify_url); // 將業務model載入到request requestWap.SetBizModel(modelWap); AlipayTradeWapPayResponse responseWap = null; try { responseWap = clientWap.pageExecute(requestWap, null, "post"); Response.Write(responseWap.Body); } catch (Exception exp) { throw exp; }
下面提供支付寶.net版sdk和簽名生成工具:鏈接:https://pan.baidu.com/s/1BCW69nfS2uPhqmlThZOvhw 提取碼:z404