共用方式為


Xamarin.iOS 中的應用程式內購買基本概念和設定

實作應用程式內購買需要應用程式在裝置上使用 StoreKit API。 StoreKit 會管理與 Apple iTunes 伺服器的所有通訊,以取得產品資訊並執行交易。 布建配置檔必須針對應用程式內購買進行設定,而且必須在iTunes 連線 中輸入產品資訊。

StoreKit manages all communication with Apple’s as shown in this chart

使用 App Store 提供應用程式內購買需要下列設定和設定:

  • iTunes 連線 – 設定要銷售的產品,以及設定沙箱用戶帳戶以測試購買。 您也必須向蘋果提供您的銀行和稅務資訊,以便他們代表您匯回的資金。
  • iOS 布建入口網站 – 建立套件組合識別符,併為您的應用程式啟用 App Store 存取權。
  • 市集套件 – 將程式代碼新增至您的應用程式,以顯示產品、購買產品及還原交易。
  • 自定義程式代碼 – 追蹤客戶所做的購買,並提供他們購買的產品或服務。 如果您的產品包含從伺服器下載的內容(例如書籍和雜誌問題),您可能需要實作伺服器端程式來驗證收據。

有兩個 Store Kit「伺服器環境」:

  • 生產 – 使用真實貨幣的交易。 只能透過已由Apple提交和核准的應用程式存取。 在生產環境中提供產品之前,應用程式內購買產品也必須經過檢閱和核准。
  • 沙箱 – 測試發生的位置。 產品可在建立后立即在此取得(核准程式僅適用於生產環境)。 沙箱中的交易需要測試使用者(而非真正的Apple標識符)才能執行交易。

應用程式內購買規則

您無法接受應用程式內數位產品或服務的其他形式的付款,也不得提及數位產品或服務,或從應用程式內將用戶轉介給他們。 這表示當應用程式內購買是最適合的付款機制時,您無法接受信用卡或 PayPal。 在應用程式外部購買數位產品,但用於應用程式的特殊案例,例如在與特定「登入」相關聯的網站上購買書籍,並在應用程式中使用該「登入」可讓使用者存取已購買的書籍。 不允許以這種方式操作的應用程式提及或連結至外部購買功能 – 開發人員必須以其他方式將這項功能傳達給使用者(也許是透過電子郵件行銷或其他直接通道)。

不過,由於您無法針對實體商品使用應用程式內購買,在此情況下,您可以從應用程式內使用替代付款機制(例如信用卡、PayPal)。

Apple 必須在銷售前核准每個產品 – 需要檢閱「產品」的名稱、描述和螢幕快照。 產品檢閱時間與應用程式評論相同。

您無法為您的產品選擇任何價格 – 您只能選取在 Apple 支援每個國家/貨幣中具有特定值的「價格區間」。 在不同的市場中,您無法有不同的價格區間。

組態

在撰寫任何應用程式內購買程序代碼之前,您必須在 iTunes 連線 (itunesconnect.apple.com) 和 iOS 佈建入口網站 (developer.apple.com/iOS) 中執行一些設定工作。

撰寫任何程序代碼之前,應該先完成這三個步驟:

  • Apple 開發人員帳戶 – 將您的銀行和稅務資訊提交至 Apple。
  • iOS 布建入口網站 – 確定您的應用程式具有有效的應用程式識別碼(不是內含星號 * 的通配符*),且已啟用應用程式購買。
  • iTunes 連線 應用程式管理 – 將產品新增至您的應用程式。

Apple 開發人員帳戶

在iTunes 連線建置和發佈免費應用程式需要很少的設定,不過若要銷售付費應用程式或應用程式內購買,您必須提供Apple的銀行和稅務資訊。 從此處顯示的主要功能表中,按兩下 [合約]、[稅務] 和 [銀行]

Click on Agreements, Tax and Banking from the main menu

您的開發人員帳戶應該有 iOS 付費應用程式 合約生效,如下列螢幕快照所示:

Your Developer Account should have an iOS Paid Applications contract in effect

在擁有 iOS 付費應用程式 合約之前,您將無法測試任何 StoreKit 功能 – 在 Apple 處理合約 、稅務和銀行 資訊之前,程式代碼中的 StoreKit 呼叫將會失敗。

iOS 佈建入口網站 \(英文\)

新的應用程式會在 iOS 佈建入口網站的 [應用程式識別符] 區段中設定。 若要建立新的應用程式識別碼,請移至 iOS 佈建入口網站的成員中心,流覽至入口網站的 [憑證]、[標識符] 和 [配置檔] 區段,然後按兩下 [iOS 應用程式] 下的 [標識符]。 然後,按下右上方的 「+」,以產生新的應用程式識別碼。

建立新 應用程式識別碼的表單

看起來像這樣:

The form for creating new App IDs

輸入適合 [描述] 的專案,讓您可以輕鬆地在清單中識別此應用程式識別碼。 針對 [ 應用程式識別碼前綴],選取 [小組標識符]。

套件組合標識碼/應用程式識別碼後綴格式

您可以使用任何您想要的字串作為 套件組合標識碼 (只要它在您的帳戶中是唯一的),不過 Apple 建議您遵循反向 DNS 格式,而不是使用任何任意字串。 本文隨附的範例應用程式會針對套件組合標識符使用 com.xamarin.storekit.testing,不過,使用my_store_example等標識符同樣有效(即使 Apple 不建議使用)。

重要

Apple 也允許將通配符星號新增至套件組合標識碼的結尾,以便將單一 應用程式標識碼 用於多個應用程式,不過 通配符應用程式標識碼無法用於 AppPurchase。 通配符套件組合標識符範例可能是 com.xamarin.*

啟用 App Services

請注意, 在 [服務] 列表中會自動啟用應用程式內購買

In-App Purchase will be automatically enabled in the Services list

佈建設定檔

像平常一樣建立開發和生產布建配置檔,選取您為應用程式內購買設定的應用程式識別碼。 如需詳細資訊, 請參閱 iOS 裝置佈建發佈至 App Store 指南。

iTunes Connect

按兩下 iTunes 連線 中的 [我的應用程式],以建立或編輯 iOS 應用程式專案。 應用程式概觀頁面如下所示:

The application overview page

按兩下 [應用程式內購買 ] 以建立或編輯您的產品以供銷售。 此螢幕快照顯示已新增數個產品的範例應用程式:

The sample app with several products already added

新增產品的程式有兩個步驟:

  1. 選擇產品類型: Choose the product type
  2. 輸入產品的屬性,包括產品標識碼、定價層和當地語系化描述: Entering the products attributes

每個應用程式內購買產品所需的欄位如下所述:

參考名稱

參考名稱不會顯示給您的使用者;它是供內部使用,且只會出現在iTunes 連線 中。

產品識別碼格式

產品標識碼只能包含英數位元(A-Z、a-z、0-9)、底線 (_) 和句號 (.) 字元。 雖然您可以針對標識碼使用任何字串,但 Apple 建議反向 DNS 格式。 例如,範例應用程式會使用此套件組合識別碼:

com.xamarin.storekit.testing

因此,識別應用程式內購買產品的慣例如下:

com.xamarin.storekit.testing.consume5credits
com.xamarin.storekit.testing.consume10credits
com.xamarin.storekit.testing.sepia
com.xamarin.storekit.testing.greyscale

不會強制執行此命名慣例,只是協助您管理產品的建議。 此外,儘管遵循相同的反向 DNS 慣例,但產品標識碼與套件組合標識符 無關 ,而且不需要以相同字串開頭。 使用如photo_product_greyscale等標識碼仍然有效(即使蘋果不建議使用)。

產品標識碼不會向用戶顯示,但用來參考應用程式程式代碼中的產品。

產品類型

您可以提供五種類型的應用程式內購買產品:

  1. 消費性 - 「用不起」的東西,例如玩家可以花費的遊戲內貨幣。 如果使用者進行備份/還原或其他裝置重新整理,消費性交易也不會還原(這實際上會讓玩家再次獲得相同的好處)。 一旦交易完成,應用程式程式代碼必須一定要提供「消費性專案」。
  2. 非消費 性 – 用戶購買后「擁有」的產品,例如數位雜誌發行或遊戲層級。
  3. 自動續約訂閱 – 就像真實世界的雜誌訂閱一樣,在訂閱期間結束時,Apple 會自動向客戶收取費用,並永遠延長訂閱期限,或直到客戶明確取消訂閱為止。 這是建議使用一種適用於小船應用程式的付款方式(事實上,應用程式必須支援此付款方式才能獲得授權散發)。
  4. 免費訂 用帳戶 – 只能在已啟用條件的應用程式中提供,並允許客戶存取其所有裝置上的訂用帳戶內容。 免費訂用帳戶永遠不會過期。
  5. 非續約訂閱 – 應該用來銷售對靜態內容的有限存取權,例如一個月的相片封存存取權。

本檔目前僅涵蓋前兩種產品類型(消費性和非消費性)。

價格區間

App Store 不會讓您為產品選擇任意價格 – Apple 提供您可以選擇的固定價格區間。 每個貨幣的價格都是固定的,蘋果保留調整相對價格的權利(例如,在特定貨幣和美元之間的相對匯率持續變化之後)。

Apple 提供價格矩陣,可協助您針對您想要的貨幣/價格選取正確的定價層。 價格矩陣(2012 年 8 月)的摘錄如下所示:

An excerpt of the price matrix August 2012

在撰寫時(2013年6月)有87層,從0.99美元到999.99美元。 定價矩陣顯示您的客戶將支付的價格,以及您從蘋果收到的金額 -- 這是他們的 30% 費用,以及他們需要收取的任何當地稅金(例如,美國和加拿大賣家收到 70c 的 99c 產品,而澳大利亞賣家只收到 63c,因為徵收銷售價格的『貨物和服務稅』)。

您產品的定價可以隨時更新,包括未來日期生效的排程價格變更。 此螢幕快照顯示如何新增未來日期的價格變更 – 價格在 9 月的月份暫時從第 1 層變更為第 3 層:

A future-dated price change where the price is being temporarily changed from tier 1 to tier 3 for the month of September only

不支援免費產品

雖然 Apple 已為最新版應用程式提供特殊的免費訂閱選項,但無法為任何其他應用程式內購買類型設定零(免費)價格。 雖然您可以編輯(即較低的)銷售促銷價格,但您無法透過iTunes 連線進行應用程式內購買。

當地語系化

在 iTunes 連線 中,您可以針對任意數目支援的語言輸入不同的 [名稱] 和 [描述] 文字。 每個語言都可以透過快顯新增/編輯:

Each language can be added/edited in via a popup

當您在應用程式中顯示產品資訊時,您可以透過 StoreKit 顯示本地化的文字。 貨幣顯示也必須當地語系化,才能顯示正確的符號和小數位數格式,本檔稍後會涵蓋此格式設定。

App Store 評論

與應用程式相同 – 每個產品都會由Apple 檢閱,然後才被允許繼續銷售。 產品可能會因名稱或描述中的不當內容而遭到拒絕,或者 Apple 可能會決定您已選擇錯誤的產品類型(例如您已建立書籍或雜誌問題,但使用消費性產品類型)。 產品評論可能需要一段應用程式檢閱的時間。

第一次提交應用程式時啟用應用程式內購買功能(無論是新的應用程式,還是已將功能新增至現有應用程式),您也必須選擇一些產品來提交。 iTunes 連線 入口網站會提示您執行此動作,如下列螢幕快照所示:

The iTunes Connect portal will prompt you to submit some products as well

應用程式與應用程式內購買將會一起檢閱,以便他們一次獲得核准(如此一來,應用程式就不會在沒有任何核准的產品的情況下進入市集!)。

核准第一個具有應用程式內購買功能的版本之後,您可以新增進一步的產品,並隨時提交產品以供檢閱。 您也可以選擇使用 [版本詳細 數據] 頁面,連同特定應用程式內購買產品一起提交新版本,如提示所示。

如需詳細資訊, 請參閱App Store檢閱指導方針

第 2 部分 - 市集套件概觀和重新調整產品資訊