第三方支付
支付寶第三方:進(jìn)入官網(wǎng)開發(fā)者平臺(tái),下載支付SDK.
根據(jù)官網(wǎng)Demo提醒步驟進(jìn)行操作.
注意沙箱環(huán)境:是測試用的假錢,測試使用的.
支付安全:有RSA秘鑰負(fù)責(zé).
應(yīng)用網(wǎng)關(guān):跟后臺(tái)要.
授權(quán)回調(diào)地址:
用支付寶你測試用的app,復(fù)制boundleID.
AliPaySDK.
- 導(dǎo)入相關(guān)框架
- 導(dǎo)入相關(guān)的系統(tǒng)框架
- 導(dǎo)入相關(guān)頭文件
--------------- 跟服務(wù)器有關(guān)的操作,開發(fā)中我們不用管,Demo演示需要 --------------------- - 組裝商品信息.(購買多少信息,多少錢),發(fā)現(xiàn)沒有,在官方Demo中.都是服務(wù)器負(fù)責(zé)的.
- 這一步應(yīng)該在商戶服務(wù)端完成,商戶服務(wù)端直接將
- 導(dǎo)入openssl和Util文件夾的內(nèi)容
- 這時(shí)為了實(shí)現(xiàn)服務(wù)器加密的
- 需要導(dǎo)入Demo中的庫.
- 配置我們自己的scheme,進(jìn)行返回跳轉(zhuǎn)
某些文件重需要手動(dòng)導(dǎo)入Foundation
找不到<openssl/asn1.h>
配置項(xiàng)目路徑(不能使用絕對(duì)路徑,需要使用相對(duì)路徑)
- 在buildSetting中搜索Header Search Path ,指定項(xiàng)目目錄(openssl所在的目錄)
- $(SRCROOT) 表示項(xiàng)目目錄
- $(PROJECT) 表示項(xiàng)目名
當(dāng)從其他的應(yīng)用程序跳轉(zhuǎn)回來需要觸發(fā)appDelegate的一個(gè)代理方法.
iOS9.0前后不一樣的兩個(gè)方法.
- application handle
** 實(shí)際開發(fā)的關(guān)鍵:目的就是為了獲取"簽名后的商品信息" **
RSA加密:
- 事先生成一對(duì)對(duì)應(yīng)的公鑰私鑰(一對(duì))
- 私鑰簽名,公鑰驗(yàn)證
- 公鑰加密數(shù)據(jù),私鑰來解開(數(shù)據(jù)加密)
私鑰簽名:能夠保證數(shù)據(jù)的不可抵賴性.
提供公鑰給支付寶,我自己有我的私鑰.
我們可以拿到支付寶的公鑰,支付寶有自己的私鑰.
我的應(yīng)用集成AliPaySDK
過程:我們先用私鑰簽名,加密數(shù)據(jù)(支付寶則用我提供的app的公鑰驗(yàn)證我的簽名不是馬上做).然后我們拿到簽名后的商品信息數(shù)據(jù)通過支付寶的公鑰進(jìn)行加密傳輸,支付寶獲取到的數(shù)據(jù),首先可以通過我們提供的公鑰知道是我們發(fā)的信息,再通過AliPay的私鑰去獲取我們的數(shù)據(jù).
示意圖:
App支付結(jié)果的異步通知:
支付寶會(huì)處理結(jié)果給支付寶服務(wù)器,支付寶服務(wù)器會(huì)有支付結(jié)果.然后進(jìn)行回調(diào)
- 同步回調(diào):返回給支付寶,支付寶返回給AliPaySDK,再返回給我的程序.
- 異步回調(diào)(跟AliPay無關(guān)):支付寶會(huì)發(fā)送異步請(qǐng)求告訴我們的服務(wù)器.然后服務(wù)器(才是最重要的數(shù)據(jù)處理角色),我們手機(jī)端的數(shù)據(jù)都是從服務(wù)器上判斷的.
app上的數(shù)據(jù)不安全,涉及到的用戶的安全數(shù)據(jù),基本都是放在服務(wù)器上面,因?yàn)轳R上修改馬上有效.