如何提供product給使用者?
使用者選擇product並付款後. 你的app就要能讓使用者享受他所購買的東西. 提供product的方法有兩種: (1) 內建product模式 (2) 伺服器提供product模式. 要用哪種方式則須視product類型來作決定.
(1) Built-in Product Model - 內建product模式
顧名思義, 這種模式是已經預先把功能放在app中, 在使用者付費之後app就會解除鎖定. 這種模式的優點是能快速的讓使用者享受他所購買的功能. 通常nonconsumable(非消耗性)的product會採用這種方式.
流程:
1. app讀取product清單 (放在plist會比寫在程式碼有彈性)
2. app向App Store取得product名稱/描述等相關資訊
3. App Store回傳product資訊
4. app呈現product資訊供使用者選擇
5. 使用者決定購買某product
6. app向App Store發出付費要求
7. App Store處理付費要求並回傳交易紀錄
8. app依據交易紀錄來判斷是否完成付款, 成功的話就將功能解除鎖定
解除鎖定最簡單的方式是修改app的偏好設定. 偏好設定會在使用者同步iOS裝置的時候與app一起備分. 你的app可以在收到成功的購買紀錄後提示使用者主動備分.
(2) Server Product Model - 伺服器提供product模式
在這個模式中, 你需要另外提供伺服器讓app在使用者付款後由此得到product. 這種模式常見於subscriptions(訂閱), services(服務)和 content(資料內容)等. Store Kit並未規範標準流程, 你必須自行定義app和伺服器之間溝通方式. 此外, 個別使用者的識別及購買product的對應也必須要自己處理.
流程:
1. app向伺服器取得product清單 (詢問伺服器會比放在plist有彈性)
2. 伺服器回傳支援的清單
3. app向App Store取得product名稱/描述等相關資訊
4. App Store回傳product資訊
5. app呈現product資訊供使用者選擇
6. 使用者決定購買某product
7. app向App Store發出付費要求
8. App Store處理付費要求並回傳交易紀錄
9. app將交易收據上傳至伺服器
10. 伺服器紀錄此交易
11. 伺服器向App Store詢問此交易是否有效
12. App Store回傳結果
13. 伺服器判讀交易結果
14. 成功的話會讓使用者享受他所購買的東西
在這個模式中, app必須保證訂閱類型的product能被使用者回復使用.
您好...跟您請教一下喔,請問In App Purchase,有沒有不用另外架server的方法?(ps.包在同一個App裡面也不考慮...)感謝感謝...
ReplyDelete