Adobe AIR教程:iOS應用內付費簡介和準備流程
本文的主要內容如下:
IAP簡介
商品與交易
測試IAP的準備流程
IAP簡介
IAP的全稱是In-App Purchase,應用內付費。這種業務模式允許用戶免費下載試用,對應用內提供的商品選擇消費,比如購買游戲道具,購買游戲等級等等。相比完全收費的應用而言,應用內付費給用戶試用的機會,不會讓優秀的應用因為缺乏用戶的認知而喪失消費者;而且對于開發商,也不需要為了讓用戶試用而單獨發布一款免費的精簡版本。
商品與交易
蘋果官方的關于IAP的幫助文檔是只對注冊開發者開放的,所以我不方便把它轉載在這里,但我可以對IAP里的關鍵因素做一個通俗易懂的介紹。
IAP里有兩個關鍵的詞,商品(Product)和交易(Transaction)。
商品可以是一種虛擬的道具,一個隱藏的關卡或者地圖,但必須是直觀的,可以讓用戶購買后直接獲益的產品。IAP的商品從消費性質上分為四種:
1,消耗型商品,比如游戲道具,子彈,藥品等等。由于這類商品可以被消耗,所以支持重復購買。蘋果應用商店不保存此類商品的購買記錄,如果要保存則需要開發者同步到自己的服務器上。
2,非消耗型商品,比如游戲關卡,隱藏地圖等等。這類商品只要購買一次便可以了,蘋果應用商店里每一個用戶對非消耗型商品的購買都有記錄,可以在不同的設備上恢復購買狀態,這個恢復的過程叫做Restore。
3,自動重置型訂閱,比如電子雜志,讀物等。消費者購買這類商品時會從列表中選擇一個有效期限,賣家在定義商品的時候從一群固定的選項中選擇添加一個有效期,比如7天,一個月,兩個月。過了有效期之后,商品的購買狀態會被自動重置成未購買,要想繼續獲得內容則需要再次訂閱。這種類型的商品和非消耗型商品一樣,會在蘋果商店內保存購買記錄。
4,非自動重置型訂閱,比如用戶訂閱電子雜志和讀物報刊時需要從自定義的期限列表中選擇期限,而不是蘋果提供的固定選項,比如9天,一個半月或任意時間。在這種情況下,蘋果商店無法根據期限來控制訂閱的到期行為,所以一切都需要開發商自己編寫相應的邏輯來實現。
交易是指用戶對一個商品的購買行為,當用戶點擊購買一件商品時,一個新的付費行為就被添加到付費隊列中,付費隊列是一條系統線程,即使應用程序終止仍然會繼續執行。
測試IAP的準備流程
如果你是一個注冊的蘋果開發者,接受了最新的蘋果開發者協議,并且簽署了iOS付費應用合同,那么你就可以繼續IAP的測試了。
如果你已經注冊成為蘋果開發者,并且熟知了如何給設備授權,如何申請證書,如何發布應用,那么請繼續閱讀我下面的內容:
使用未越獄的設備
測試IAP的項目不能使用越獄的設備,否則會出現無法連接到應用商店的錯誤。恢復設備到未越獄的系統后,登陸Provisioning Portal添加設備的UID。
使用沒有通配符的App ID
在定義App的Bundle ID的時候,我曾經介紹過可以使用類似 com.jamesli.* 這樣的值來覆蓋多個應用的ID。這種定義方式不能用在打算使用IAP的應用上面,定義IAP的應用必須使用唯一的ID,如com.jamesli.ghostbride。如果正確定義了,應用的In-App Purchase的功能是默認開啟的,如下圖:

在iTunesConnect創建應用
登陸iTunesConnect,創建一個新的應用,即使該應用尚未開發,也可以用一些假的文字和圖片來代替,創建好之后切記要點擊Ready to Upload binary將應用的狀態變為Waiting for upload。
管理In-App Purchase商品
在應用列表中點擊新創建的應用圖標,進入應用首頁,在右面的一行按鈕中選擇Manage In-App Purchase,進入內付費商品管理頁面。通過點擊左上角的Create New按鈕可以進入商品頁面選擇創建一個新的商品。頁面中顯示的四種商品分別是我在本文介紹過的四種商品,消耗型商品(Consumable),非消耗型商品(Non-Consumable),自動重置型訂閱(Auto-Renewable Subscriptions),非自動重置型訂閱(Non-Renewing Subscription)。
以消耗型商品為例,點擊Select進入創建頁面。
Reference Name是商品名字,這不是最終用戶會看到的名字,而是會在內付費管理的商品列表中顯示的字符,類似于變量名。
Product ID是商品的唯一標識,這個ID十分重要,在編寫應用程序的時候會用它來識別改商品。
接下來是為不同的語言定義該商品的顯示名稱,最終用戶看到的就是這個名稱。定義好名稱后是為商品定價以及上傳縮略圖,這個商品就算是定義完了。如下圖,定義完成的商品會顯示在內付費管理的商品列表中。每一個內付費商品的創建和修改都需要提交審核,但這里需要注意的是,在一個新的應用版本內創建的內付費商品,必須和這個應用版本一起提交審核,而在該應用版本通過審核之后再為它創建的內付費商品,可以通過這個列表中的Ready to submit按鈕來提交。

剛剛創建好的內付費應用,已經可以用來調試了。
使用測試帳號調試應用
蘋果應用商店是一個交易環境,任何用戶可以在這個環境內購買應用,但如果要測試正在開發過程中的應用內付費,我們不能在真正的蘋果商店里進行。蘋果給開發者提供了一個用于調試購買行為的測試沙箱,它完全復制了應用商店的交易環境,但在沙箱環境中我們不能用平常的蘋果帳號,而是需要用測試帳號。
在iTunesConnect的首頁可以點擊Manage Users進入用戶管理頁面,然后選擇Test User來創建測試帳號。根據蘋果開發者的最新謝意,創建測試帳號必須使用一個真實的Email地址,而且密碼必須是符合規范的,測試賬號需要在郵件里激活后才可以使用。這里創建的帳號可以用來購買開發過程中的應用內付費,但必須記住,測試帳號不能用來登陸真正的應用商店并在產品環境中進行購買行為,否則你的iTunes帳號將有可能被停用。