1. 程式人生 > >[iOS概念]Apple Pay與IAP的區別

[iOS概念]Apple Pay與IAP的區別

Apple Pay是什麼?

在Apple Pay的釋出會上,Eddy Cue表示,蘋果並沒有興趣建立一個收集使用者資料的業務,蘋果並不知道你購買了什麼,不知道你是從哪裡購買的,為了這個商品花了多少錢。所以這也就是蘋果和支付寶,微信等最大的不同:Apple Pay並不會將資金存放在Apple Pay中。
Apple Pay其實也就是相當於一個卡包,替你儲存銀行卡的資訊,只不過是將這個卡包虛擬化了而已,而且Apple Pay中儲存的銀行卡資訊等都進行了加密,所以非常的安全(當然所有的安全都不會是絕對安全)
Apple Pay中的 Pay業務並不是Apple自己的業務,Apple Pay本身只是一個第三方的橋樑:連線使用者和銀行。 Pay業務只是銀行和Apple之間所合作的一個業務,它和銀行之間是強關聯的關係,和Apple之間是弱關聯的關係,沒有銀行也就沒有pay了

,但是支付寶和微信就不一樣,使用者將資金放在支付寶和微信中,即便沒有銀行,也可以直接進行支付。

Apple Pay和IAP的區別

什麼是IAP呢?其實IAP就是In App purchase,即應用內購買,也就是我們常說的蘋果內購,IAP(應用內購買)是最常用的一種支付方式,屬於免費應用+應用內購買的模式。IAP主要是應用(App)和App Store伺服器之間進行資訊的傳遞,使用者在APP內部進行內購操作相當於使用者購買了App Store中的某個商品,這是使用者和APP Store之間的交易,然後蘋果從交易中抽取30%,APP的所有者獲得70%。

Apple Pay則不然,Apple Pay實質上就是等同於使用者使用銀行卡進行刷卡消費

,Apple Pay就是一個卡包的作用,它建立的是使用者,銀行,商家之間的關係:使用者購買商家的商品進行消費的時候,實則是通過Apple Pay向銀行傳送付款資訊,然後銀行接受訊息,進行付款交易,交易完成,使用者獲得商品,商家獲得money。

理解Apple Pay和應用內支付之間的區別是非常重要的。Apple Pay用於銷售物理商品,比如食品雜貨、衣服和電器,也能用於支付俱樂部的會員資格、酒店預訂以及演出門票。另一方面,應用內支付(IPA)只用於銷售虛擬物品,如你的App裡的高階內容,以及訂閱數字內容。
PassKit框架為Apple Pay提供API,應用內支付(IAP)的API則由StoreKit框架提供。


Store Kit代表App和App Store之間進行通訊。程式將會從App Store接收那些你想要提供的產品的資訊,並將它們顯示出來供使用者購買。當用戶需要購買某件產品時,程式呼叫Store Kit來收集購買資訊。

IAP流程

什麼是IAP?全稱即In App Purchase,也就是我們所講的蘋果內購,IAP的流程分為兩種,一種是直接使用Apple的伺服器進行購買和驗證,另一種就是自己架設伺服器進行驗證。由於國內網路連線Apple伺服器驗證非常慢,而且也是為了防止黑客偽造購買憑證,通常都是選擇自己架設伺服器進行驗證。

使用Apple伺服器

 

自己架設伺服器

簡單說下第二中情況的流程:

  1. 使用者進入購買虛擬物品頁面,App從後臺伺服器獲取產品列表然後顯示給使用者
  2. 使用者點選購買購買某一個虛擬物品,APP就傳送該虛擬物品的productionIdentifier到Apple伺服器
  3. Apple伺服器根據APP傳送過來的productionIdentifier返回相應的物品的資訊(描述,價格等)
  4. 使用者點選確認鍵購買該物品,購買請求傳送到Apple伺服器
  5. Apple伺服器完成購買後,返回使用者一個完成購買的憑證
  6. APP傳送這個憑證到後臺伺服器驗證
  7. 後臺伺服器把這個憑證傳送到Apple驗證,Apple返回一個欄位給後臺伺服器表明該憑證是否有效
  8. 後臺伺服器把驗證結果在傳送到APP,APP根據驗證結果做相應的處理

參考

Apple Pay的支付流程

Apple並不處理和付款相關的邏輯,它只是負責支付資訊的傳遞。Apple通過Touch ID來驗證銀行卡持有者的身份,實際的扣款行為發生在銀聯端,接入了Apple Pay的商品(即App)組織好Apple返回的支付資訊,向銀行發出扣款請求後,該筆交易才會真正傳送扣款,所以APP本身是和銀聯進行結算,Apple Pay只不過是作為一種支付的渠道而已。

Apple Pay的支付流程

整個流程中如下:

  1. 客戶端通過蘋果API,在 APP 應用內展示 Apple Pay 支付控制元件。
  2. 使用者在 Apple Pay 的支付控制元件上進行生物驗證(指紋或者人臉識別)或者手機密碼驗證。
  3. 蘋果在使用者驗證通過之後,會生成一個使用者選中的銀行卡相關的 PaymentToken 加密資料, Apple Pay 必須在有網情況下才能進行,蘋果需要從開發者網站上使用證書的公鑰進行加密 ,完成後通過 API 回撥返回給客戶端前端。
  4. 客戶端獲取到 PaymentToken 後,給服務端傳送扣款請求,等待支付結果。
  5. 服務端收到客戶端上送的 PaymentToken,解密 PaymentToken 取出一些關鍵欄位資訊,附帶其他訂單資訊,再與支付供應商(如國內銀聯)進行通訊發起扣款。
  6. 服務端收到扣款結果後,再返支付結果給手機客戶端,最終通知使用者支付結果。

參考