在集成之前,需要了解一些網絡安全方面的知識
網絡安全:
加密技術- 兩種加密方式:
1. 對稱加密算法 如:DES,AES 通過祕鑰加密,解密;加密和解密使用同一個祕鑰
2. 非對稱加密算法(網銀支付) 如:RSA 公鑰加密,私鑰解密,(私鑰加密,公鑰解密,)加密解密使用不同祕鑰
- 公鑰(客戶端)必要時可被第三方知道,私鑰(服務器)妥善保存,只有自己知道
- 公鑰互換,實現雙向認證
- 類似網銀(U盾=客戶端私鑰)
支付寶賬戶
支付寶開放平臺
- 註冊(個人賬戶和企業賬戶,建議註冊企業賬戶認證兩天),登陸
- 管理中心- 創建應用- 應用名稱(命名規範)- 創建成功後會給我們一個appid,此時還沒未上線
- 上線需要添加功能 - app支付
- 上線- 完善應用信息(名稱,圖標,應用說明)
- 審覈上線,2,3天
應用環境(加密rsa)
- 接口加簽方式,在這裏設置應用的公鑰(用密鑰生成器生成)之後,可以看支付寶的公鑰(將來要用)了
(賬戶信息- 合作伙伴密鑰)
支付寶開發(參考Demo)
- 下載SDK解壓
- 導入sdk的demo先運行試試(上線後才能用)- 需要在PayDemoActivity中配置商戶信息
- 賬戶及密鑰管理裏有商戶PID,
- 商戶收款賬號- 也就是支付寶賬號
- 商戶私鑰pkcs8格式(上面用密鑰生成器生成過了,複製過來就行了)
- 支付寶公鑰 (在應用環境裏)
集成過程
**生成訂單信息**getOrderInfo(String name,String dec,String price),到demo中複製
- 生成訂單號(也可以跟服務器商量) 可以到demo中複製該方法
- 服務器異步通知頁面路徑,(當支付寶支付完成後,會調用此鏈接通知服務器端,由服務器開發 人員設置)
加密訂單信息sign(String orderInfo)
拼接符合支付寶規範的訂單信息payInfo
通過支付串碼,調用支付接口,完成支付,獲取支付結果(異步,handler處理支付結果- 複製demo中的)- 導包
安全問題
商戶信息(私鑰)放在客戶端很不安全,所以應該放在服務器端,由服務器端人員給我們返回支付串碼
我們只需要一個請求接口,上面的前3步都不用我們客戶端做了,簡單吧,哈哈,是不是感覺被坑了。