支付寶對接
一般由兩部分組成,接入部分與通知返回部分。接入部分即為傳遞參數等信息組合成超級鏈接,並用該鏈接來進行跳轉。通知返回部分則是支付寶服務器對該筆訂單處理完畢後,通知與返回該筆訂單的詳細信息到商戶服務器,商戶服務器接收到後,並對其進行數據處理。
a) 接入部分原理
i. 第一步——選定參數信息:
結合技術文檔以及接口代碼DEMO,選定傳遞給支付寶服務器的參數,以實物標準雙接口為例。如必傳項service、partner、seller_email、sign、sign_type、out_trade_no、price、subject、quantity、payment_type以及最少一組的物流信息參數三個logistics_type、logistics_fee、logistics_payment等,選填項body、discount、show_url等。
[plain] view plaincopy
string service = "trade_create_by_buyer"; string seller_email = "[email protected]"; string sign_type = "MD5"; string key = "********************************"; string partner = "2088************"; string _input_charset = "utf-8"; string show_url = "http://www.alipay.com/"; string out_trade_no = TxtOrderno.Text.Trim(); string subject = TxtSubject.Text.Trim(); string body = TxtBody.Text.Trim(); string price = TxtPrice.Text.Trim(); string quantity = TxtQua.Text.Trim(); string logistics_type = "POST"; string logistics_fee = TxtPost.Text.Trim(); string logistics_payment = "BUYER_PAY"; string notify_url = "http://www.xxx.com/swnet05utf8/Alipay_Notify.aspx"; string return_url = "http://www.xxx.com/swnet05utf8/Alipay_Return.aspx";
ii. 第二步——排序:
把這些參數的變量名(即技術文檔裏給出的變量名,以這種方式組合:service=”trade_create_by_buyer”作為一串字符串)按從a到z的順序依次排序。以ASP.NET C#語言代碼程序為例,該功能在ALIPAY.CS類中;以ASP代碼中的程序為例,該功能在alipayto/Alipay_Payto.asp文件中。
iii. 第三步——加密:
目前一般的加密方式是MD5,不論是哪種加密方式,要加密的信息是要傳給支付寶的信息,且存在於技術文檔中,而非自定義的變量名。對以上排序好的所有參數(不包括網關參數即:string gateway = “https://www.alipay.com/cooperate/gateway.do?” ;)以循環的方式,用‘&’字符拼接成一長串字符串(這裏需要註意,所有的參數都是&字符來拼接的,拼接後直接再拼接安全校驗碼Key,在程序中大家可看到,這個key是直接加到該字符串後面而沒有用&字符 ),之後進行加密。得出的加密字符串集存儲於sign這個參數中。
支付寶對接