接入步驟:
1. 下載官方SDK或Demo
2. 開發者調用接口前需要先生成RSA密鑰,RSA密鑰包含應用私鑰(APP_PRIVATE_KEY)、應用公鑰(APP_PUBLIC_KEY)。生成密鑰后在開放平台開發者中心進行密鑰配置,配置完成后可以獲取支付寶公鑰(ALIPAY_PUBLIC_KEY)。
3. 把demo部署到沙盒環境進行1分錢支付測試
4. demo測試通過后,正式接入業務流程
注意:
1. 支付安全域名的設置,一般只限本級目錄,如果是本級目錄的子目錄,則可能無法正常使用;安全域名URL一般區分大小寫(因為支付提供商服務器一般是Linux系統,對大小寫敏感)!
2. 配置密匙中的公鑰,不一定是RSA生成的公鑰,比如支付寶支付接口2.0,就要求把RSA生成的原始公鑰(APP_PUBLIC_KEY)提交到開放平台開發者中心的密匙配置中,然后支付寶會生成另一個公鑰,叫支付寶公鑰(ALIPAY_PUBLIC_KEY)。在應用配置中,公鑰字段要填寫支付寶公鑰(ALIPAY_PUBLIC_KEY),而不是應用公鑰(APP_PUBLIC_KEY)。這是支付寶提高安全的一個方法,結果在調試的時候,一直提示簽名驗證失敗,就是因為把應用配置中的公鑰填錯了。
return_url和notify_url區別:
return_url: 頁面返回支付結果,同步返回get請求類型的返回參數。完成支付后,系統會根據商戶在手機網站支付API中傳入的前台回跳地址return_url自動跳轉回商戶頁面,同時在URL請求中以Query String的形式附帶上支付結果參數。(請求類型一般是get)
notify_url: 后台通知支付結果,異步返回post請求類型的通知參數。完成支付后,系統會異步通知地址notify_url,通過POST請求的形式將支付結果作為參數通知到商戶系統。(請求類型一般是post)
注意:
1. 由於前台回跳/同步返回(return_url)的不可靠性,前台回跳只能作為商戶支付結果頁的入口,最終支付結果必須以異步通知或查詢接口返回為准,不能依賴前台回跳。
2. 商戶系統接收到異步通知(notify_url)以后,必須通過驗簽(驗證通知中的sign參數)來確保支付通知是由支付寶發送的。
3. 接受到異步通知(notify_url)並驗簽通過后,一定要檢查通知內容,包括通知中的app_id, out_trade_no, total_amount是否與請求中的一致,並根據trade_status進行后續業務處理。
訂單支付安全
1. 商戶系統接收到異步通知(notify_url)以后,必須通過驗簽(驗證通知中的sign參數)來確保支付通知是由支付服務商發送的。
2. 商戶系統一定要保證不同次支付out_trade_no不可重復。(生成訂單號可以參考:http://www.cnblogs.com/sochishun/p/7070365.html)
版權聲明:本文采用署名-非商業性使用-相同方式共享(CC BY-NC-SA 3.0 CN)國際許可協議進行許可,轉載請注明作者及出處。 |