iOS 開發之內購 – AppStore

發表於2016-10-19

前言

本文會給大家詳細介紹iOS內購,雖然之前網上也有內購的教程,但是還不夠詳細,我重新整理出一份教程,希望對大家有所幫助。

基於Xcode7.1.1版本,模擬器iphone6,9.1系統。
部分地方直接摘自網路,省時省心省力。
多圖預警!!!
轉載請註明出處@yimouleng

一. 建立測試App

建立App-1

首先你需要登入 App的ItunesConnection,你會看到如下介面

11appstore1

簡單的介紹一下這幾個選項

  • 1.我的App主要用於管理自己的App應用,例如編輯資料,上架,下架等。
  • 2.銷售和趨勢主要是來檢視App在各個平臺的下載量,收入等方面資料,裡面有曲線圖等圖文結合的方式給我們參考。
  • 3.付款和財務報告顯示的是你的收入以及付款等相關資訊。
  • 4.iAd主要是跟廣告有關,開發者可以登入到Workbench,通過iAd對應用的廣告進行控制。
  • 5.使用者和職能用於生成相應賬號,例如蘋果沙河測試賬號。
  • 6.協議,稅務和銀行業務則是你銀行相關賬戶的資訊設定。

在這裡我們選擇第一個選項,我的App, 然後點選左上角的加號,新建一個用來測試用的App。

12appstore2

我們會看到彈出的視窗

13appstore6

在這裡有幾個需要填寫的地方,名稱自己取,平臺IOS,語言選擇了簡體中文,套裝ID也就是你的Bundle Identifier,需要你在Certificates頁面 申請BundleID,在這裡簡單的給大家介紹一下。

申請BundleID

開啟Certificates頁面 ,在左側選擇 Identifiers,並點選加號,申請一個新的Identifiers。

14appstore3

在這裡Name可以隨意填寫,我填寫的是TestAppStroeTestDemo,而用來使用的BundleID,我們在這裡必須選擇第一個選項唯一的,不用選擇通配。在下面的選項中, 我們只需要勾選一個 Apple Pay即可,其他選項看自己需求,我在這裡只選擇了它。

15appstore4

之後一路Done即可。

建立App-2

之後我們回到建立App,選擇好自己剛建立的 BundleID ,填寫SKU, SKU是你App的專用ID,我在這裡隨意填寫,直接複製了App名。點選建立,我們的測試App則建立成功。

二.新增內購

App建立好之後,我們開啟建立的App,在左上角選擇功能,會看到左側的App 內購買專案。我們點選右下角的加號,為App新增內購專案。

16appstore7

之後我們會看到型別的選項,如下圖

17appstore8

官方的註釋寫的很清楚了,只在這裡簡單的說下前兩種

消耗型專案 就像你玩遊戲需要買金幣,買鑽石等,只要花錢就可以無限次的購買
非消耗型專案 就像你在App Store購買App,買了一次之後就不用再買第二次,你擁有永久使用權。

在這裡為了方便測試,我們選擇第一種 消耗型專案 。來到內購專案填寫頁面,如下圖。

222appstore9

這裡有幾個選項,需要填寫商品名稱,產品ID以及價格等級,簡單說明一下

1.商品名稱根據你的消費道具的實際意義來說明,比如“100顆寶石”,“100金幣”等。
2.產品ID是比較重要的,由專案自定義,只要唯一即可,因為測試,我在這裡隨便填寫的123,在實際應用中,一定要認真填寫。
3.價格等級的話“檢視價格表”中有對應的說明,可以對照著表中每個國家的貨幣價格與等級來選擇

接下來是語言選擇,和上傳快照如下圖

18appstore10

點選新增語言,填寫名稱和描述,這裡我們依然選擇簡體中文,如下

19appstore11

稽核備註,根據實際情況填寫,可以不填。而下面的螢幕快照,則是商品圖片,以畫素為單位,最低尺寸為321,390,尺寸需求如下圖,上傳即可。

20appstore12

到這裡為止, 我們的內購專案則新增完成。接下來則是測試階段了。

三.申請沙盒測試賬號(用來測試購買專案)

這個賬號,是利用蘋果的沙盒測試環境來模擬AppStore的購買流程,你肯定不會想要用真實RMB去購買測試吧?
首先我們回到iTunes Connect中,在這裡我們選擇使用者和職能

21appstore13

然後在上面的第三個選項沙箱技術測試員中點選加號,新增測試員。

22appstore14

在資訊填寫頁面只簡單說兩句。

所有資訊都可以隨意填寫,不用管是否真實。
App Store地區選擇,一定要選對,它對應的是你建立的App的地區, 你App是中國的話, 在這裡我們依然選擇中國。
此賬號只能用來測試,不要在正式的appstore上使用

填寫完畢,點選儲存後,我們則生成一個測試賬號,當然這個賬號是可以隨時刪除和新增的。

appstore15

四.核心程式碼

之後終於到了我們擼程式碼的時候了,點開你的Xcode建立你的專案!

首先我們需要在專案工程中加入“storekit.framework”,加入標頭檔案#import
在.h檔案中加入“SKPaymentTransactionObserver,SKProductsRequestDelegate”監聽機制
程式碼很簡單,直接在.m檔案在中填寫,新增了二次驗證,防止越獄手機等內購。如下,

.m檔案

在這裡需要注意幾點,

  • 程式碼中的self.profuctIdArr所填寫的是你的購買專案的的ID,我這裡是當時填寫的ID 123。
  • 在監聽購買結果後,一定要呼叫[[SKPaymentQueue defaultQueue] finishTransaction:tran];來允許你從支付佇列中移除交易。
  • 沙盒環境測試appStore內購流程的時候,請使用沒越獄的裝置。
  • 請務必使用真機來測試,一切以真機為準。
  • 專案的Bundle identifier需要與您申請AppID時填寫的bundleID一致,不然會無法請求到商品資訊。
  • 真機測試的時候,一定要退出原來的賬號,才能用沙盒測試賬號
  • 二次驗證,請注意區分巨集, 測試用沙盒驗證

在這裡附上截圖:

點選購買按鈕

24appstore19

選擇使用現有Apple ID,填寫測試賬號

25appstore20

確認是否購買

26appstore18

購買成功

27appstore17

最後師列印輸出日誌

28appstore16

到這裡,我們的內購則全部完成了。
如還有不懂得請留言,或者 加群67784110聯絡我。
本文所寫的Demo可在我的GITHUB下載,點此連結
內購時遇到的問題和解決辦法,我放在下一篇文章中,點此內購時遇到的問題和解決辦法

相關文章