一、下載下傳DEMO和SDK。打開連接配接 https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.YGttW9&treeId=54&articleId=104509&docType=1

resultStatus={9000};memo={處理成功};result={partner="2088501624560335"&seller_id="***"&out_trade_no="1229010038-1111"&subject="測試的商品"&body="該測試商品的較長的描述"&total_fee="0.01"?ify_url="http://notify.msp.hk/notify.htm"&service="mobile.securitypay.pay"&payment_type="1"&_input_charset="utf-8"&it_b_pay="30m"&success="true"&sign_type="RSA"&sign="SqxvaqGNpkfGqbyNUlc8a9CCFwQvEN9KUc+rU0Pf6wV5c6K5IRN3SKsOBReDzhNvM4SAPOeiKjiLs0LqJDUYVMadxrasawKcM70fm9OsqbqYXoLaESI/8WPtkcd/uz03b9DpR1pGneVmrEUfUnothAgoKvWnbq4cxA0/irl7cMM="}
此時用resultStatus做業務邏輯如圖
三、運作邏輯詳解1、拼接訂單資訊orderInfo(按指定格式把所需參數拼接起來)
2、對訂單資訊orderInfo 進行RSA簽名,使用SignUtils.java中的sign方法。得到的sign需要URL編碼。
3、拼接成完整的支付寶請求參數。
4、調用SDK支付接口,且擷取支付同步傳回資訊。
四、異步通知1. .NET開發異步通知邏輯
(1)打開“notify_url.aspx.cs”檔案(notify_url.aspx需保證無任何HTML代碼)。在注釋指定位置“//請根據您的業務邏輯來編寫程式”寫入商戶的業務邏輯代碼。請參考“業務邏輯處理”。
(2)用POST方式獲得這些通知傳回資料。對這些資料做簽名驗證、是否是支付寶發來的請求的驗證。得到組做空值過濾、參數名首字母升序的排序、待簽名數組轉變成待簽名字元串。對該字元串做RSA簽名驗證(這一系列動作為調用app_code/AlipayNotify.cs檔案中的GetSignVeryfy函數完成),得到布爾類型的驗證結果。
(3)根據獲得的參數notify_id,來驗證是否是支付寶發來的請求(調用app_code/AlipayNotify.cs檔案中的GetResponseTxt函數)。先拼接完整的驗證請求連結,
https://mapi.alipay.com/gateway.do?service=notify_verify&partner=2088002396712354¬ify_id=RqPnCoPT3K9%252Fvwbh3I%252BFioE227%252BPfNMl8jwyZqMIiXQWxhOCmQ5MQO%252FWd93rvCB%252BaiGghttps://mapi.alipay.com/gateway.do?service=notify_verify&partner=2088002396712354¬ify_id=RqPnCoPT3K9%252Fvwbh3I%252BFioE227%252BPfNMl8jwyZqMIiXQWxhOCmQ5MQO%252FWd93rvCB%252BaiGg
https://mapi.alipay.com/gateway.do?service=notify_verify&partner=2088002396712354¬ify_id=RqPnCoPT3K9%252Fvwbh3I%252BFioE227%252BPfNMl8jwyZqMIiXQWxhOCmQ5MQO%252FWd93rvCB%252BaiGg (4)再用遠端模拟HTTP請求的方式請求到支付寶,此時支付寶傳回的資訊是純HTML文本“true”,頁面上再也無其他任何字元。具體請參見“驗證是否是支付寶發來的通知”。
(5) 根據簽名驗證結果、是否是支付寶發來的通知的驗證結果,二者全部為true的情況下,則驗證通過(調用app_code/AlipayNotify.cs檔案中的Verify函數)。此時商戶可做些簡單的業務邏輯,但請務必不要在目前頁面做資金相關變動的業務邏輯處理。
(6) 驗證通過後,方可執行對資金相關的業務邏輯代碼。需要注意的是:已經對同一筆 交易做過業務處理後,不要再做重複處理,避免資損。
(7) 商戶的業務代碼正常且成功執行後,需在notify_url的目前頁面中輸出純文字“success”,讓支付寶通知伺服器知曉已執行完畢。
2. JAVA開發異步通知邏輯
(1)打開“notify_url.jsp”檔案(notify_url.jsp需保證無任何HTML代碼)。在注釋指定位置“//請根據您的業務邏輯來編寫程式”寫入商戶的業務邏輯代碼。請參考“業務邏輯處理”。
(2)用POST方式獲得這些通知傳回資料。對這些資料做簽名驗證、是否是支付寶發來的請求的驗證。得到組做空值過濾、參數名首字母升序的排序、待簽名數組轉變成待簽名字元串。對該字元串做RSA簽名驗證(這一系列動作為調用AlipayNotify.java檔案中的getRSASignVerify函數完成),得到布爾類型的驗證結果。
(3)根據獲得的參數notify_id,來驗證是否是支付寶發來的請求(調用AlipayNotify.java檔案中的verifyResponse函數)。先拼接完整的驗證請求連結,
https://mapi.alipay.com/gateway.do?service=notify_verify&partner=2088002396712354¬ify_id=RqPnCoPT3K9%252Fvwbh3I%252BFioE227%252BPfNMl8jwyZqMIiXQWxhOCmQ5MQO%252FWd93rvCB%252BaiGghttps://mapi.alipay.com/gateway.do?service=notify_verify&partner=2088002396712354¬ify_id=RqPnCoPT3K9%252Fvwbh3I%252BFioE227%252BPfNMl8jwyZqMIiXQWxhOCmQ5MQO%252FWd93rvCB%252BaiGg
https://mapi.alipay.com/gateway.do?service=notify_verify&partner=2088002396712354¬ify_id=RqPnCoPT3K9%252Fvwbh3I%252BFioE227%252BPfNMl8jwyZqMIiXQWxhOCmQ5MQO%252FWd93rvCB%252BaiGg (4)再用遠端模拟HTTP請求的方式請求到支付寶,此時支付寶傳回的資訊是純HTML文本“true”,頁面上再也無其他任何字元。具體請參見“驗證是否是支付寶發來的通知”。
(5) 根據簽名驗證結果、是否是支付寶發來的通知的驗證結果,二者全部為true的情況下,則驗證通過(調用AlipayNotify.java檔案中的Verify函數)。此時商戶可做些簡單的業務邏輯,但請務必不要在目前頁面做資金相關變動的業務邏輯處理。 (6) 驗證通過後,方可執行對資金相關的業務邏輯代碼。需要注意的是:已經對同一筆交易做過業務處理後,不要再做重複處理,避免資損。
(7)商戶的業務代碼正常且成功執行後,需在notify_url的目前頁面中輸出純文字“success”,讓支付寶通知伺服器知曉已執行完畢。
3. PHP 開發異步通知
(1) 打開“notify_url.php”檔案(notify_url.php需保證無任何HTML代碼)。在注釋指定位置“//請根據您的業務邏輯來編寫程式”寫入商戶的業務邏輯代碼。請參考“業務邏輯處理”。
(2)用POST方式獲得這些通知傳回資料。對這些資料做簽名驗證、是否是支付寶發來的請求的驗證。空值過濾、參數名首字母升序的排序、待簽名數組轉變成待簽名字元串。對該字元串做RSA簽名驗證(這一系列動作為調用lib/alipay_notify.class.php檔案中的rsaVerify函數完成),得到布爾類型的驗證結果。
(3)根據獲得的參數notify_id,來驗證是否是支付寶發來的請求(調用lib/alipay_notify.class.php檔案中的getResponse函數)。先拼接完整的驗證請求連結,
https://mapi.alipay.com/gateway.do?service=notify_verify&partner=2088002396712354¬ify_id=RqPnCoPT3K9%252Fvwbh3I%252BFioE227%252BPfNMl8jwyZqMIiXQWxhOCmQ5MQO%252FWd93rvCB%252BaiGghttps://mapi.alipay.com/gateway.do?service=notify_verify&partner=2088002396712354¬ify_id=RqPnCoPT3K9%252Fvwbh3I%252BFioE227%252BPfNMl8jwyZqMIiXQWxhOCmQ5MQO%252FWd93rvCB%252BaiGg
https://mapi.alipay.com/gateway.do?service=notify_verify&partner=2088002396712354¬ify_id=RqPnCoPT3K9%252Fvwbh3I%252BFioE227%252BPfNMl8jwyZqMIiXQWxhOCmQ5MQO%252FWd93rvCB%252BaiGg (5)根據簽名驗證結果、是否是支付寶發來的通知的驗證結果,二者全部為true的情況下,則驗證通過(調用lib/alipay_notify.class.php檔案中的verifyNotify方法)。此時商戶可做些簡單的業務邏輯,但請務必不要在目前頁面做資金相關變動的業務邏輯處理。
(6)驗證通過後,方可執行對資金相關的業務邏輯代碼。需要注意的是:已經對同一筆交易做過業務處理後,不要再做重複處理,避免資損。
(7)商戶的業務代碼正常且成功執行後,需在notify_url的目前頁面中輸出純文字“success”,讓支付寶通知伺服器知曉已執行完畢。
五、商戶開發。商戶根據自己的業務需求做相應的業務邏輯。
注:請将簽名放在服務端。