第三方支付

Snip20161102_61.png
支付寶第三方:進入官網(wǎng)開發(fā)者平臺,下載支付SDK.
根據(jù)官網(wǎng)Demo提醒步驟進行操作.
注意沙箱環(huán)境:是測試用的假錢,測試使用的.
支付安全:有RSA秘鑰負責.
應用網(wǎng)關:跟后臺要.
授權回調地址:
用支付寶你測試用的app,復制boundleID.
AliPaySDK.
- 導入相關框架
- 導入相關的系統(tǒng)框架
- 導入相關頭文件
--------------- 跟服務器有關的操作,開發(fā)中我們不用管,Demo演示需要 --------------------- - 組裝商品信息.(購買多少信息,多少錢),發(fā)現(xiàn)沒有,在官方Demo中.都是服務器負責的.
- 這一步應該在商戶服務端完成,商戶服務端直接將
- 導入openssl和Util文件夾的內容
- 這時為了實現(xiàn)服務器加密的
- 需要導入Demo中的庫.
- 配置我們自己的scheme,進行返回跳轉
某些文件重需要手動導入Foundation
找不到<openssl/asn1.h>
配置項目路徑(不能使用絕對路徑,需要使用相對路徑)
- 在buildSetting中搜索Header Search Path ,指定項目目錄(openssl所在的目錄)
- $(SRCROOT) 表示項目目錄
- $(PROJECT) 表示項目名

Snip20161102_6.png
當從其他的應用程序跳轉回來需要觸發(fā)appDelegate的一個代理方法.
iOS9.0前后不一樣的兩個方法.
- application handle
** 實際開發(fā)的關鍵:目的就是為了獲取"簽名后的商品信息" **
RSA加密:
- 事先生成一對對應的公鑰私鑰(一對)
- 私鑰簽名,公鑰驗證
- 公鑰加密數(shù)據(jù),私鑰來解開(數(shù)據(jù)加密)
私鑰簽名:能夠保證數(shù)據(jù)的不可抵賴性.
提供公鑰給支付寶,我自己有我的私鑰.
我們可以拿到支付寶的公鑰,支付寶有自己的私鑰.
我的應用集成AliPaySDK
過程:我們先用私鑰簽名,加密數(shù)據(jù)(支付寶則用我提供的app的公鑰驗證我的簽名不是馬上做).然后我們拿到簽名后的商品信息數(shù)據(jù)通過支付寶的公鑰進行加密傳輸,支付寶獲取到的數(shù)據(jù),首先可以通過我們提供的公鑰知道是我們發(fā)的信息,再通過AliPay的私鑰去獲取我們的數(shù)據(jù).
示意圖:

Snip20161102_1.png
App支付結果的異步通知:
支付寶會處理結果給支付寶服務器,支付寶服務器會有支付結果.然后進行回調
- 同步回調:返回給支付寶,支付寶返回給AliPaySDK,再返回給我的程序.
- 異步回調(跟AliPay無關):支付寶會發(fā)送異步請求告訴我們的服務器.然后服務器(才是最重要的數(shù)據(jù)處理角色),我們手機端的數(shù)據(jù)都是從服務器上判斷的.
app上的數(shù)據(jù)不安全,涉及到的用戶的安全數(shù)據(jù),基本都是放在服務器上面,因為馬上修改馬上有效.