如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

一隻做iOS開發的程式設計師發表於2017-12-29

在 iOS 11 App Store 中,已經支援搜尋結果中顯示內購了,那你知道為 App 新增內購商品要注意些什麼嗎?今天這篇文章我們就和大家詳細的講一下新增內購的流程,主要內容分為以下幾個方面:

協議、稅務和銀行業務資訊填寫

內購商品的新增

新增沙盒測試賬號

內購程式碼的具體實現

內購的注意事項

一、協議、稅務和銀行業務資訊填寫

1.協議、稅務和銀行業務資訊填寫的入口

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

2.選擇申請合同型別

進入協議、稅務和銀行業務頁面後,會有 3 種合同型別,如果你之前沒有主動申請過去合同,那麼一般你現在啟用的合同只有 iOS Free Application 一種。

頁面內容分為兩塊:

Request Contracts (申請合同)

Contracts In Effect (已生效合同)

合同型別分為 3 種:

iOS Free Application (免費應用合同)

iOS Paid Application (付費應用合同)

iAd App NetNetwork (廣告合同)

這篇文章我們主要講的是付費應用合同的申請流程。

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

3.申請 iOS Paid Application 合同 (協議、稅務和銀行業務 3 個都要填寫)

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

4.Contact Info (填寫聯絡方式)

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

如果你沒有新增過聯絡人,你需要通過 Add New Contact 按鈕來新增一個新的聯絡人,然後指定聯絡人的職務。如下:

Senior Management:高管

Financial:財務

Technical:技術支援

Legal:法務

Marketing:市場推廣

如果你是獨立開發者,可以全部填你自己一個人。

5.填寫銀行資訊

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

選擇你的銀行賬戶,如果你沒有,點選旁邊的 Add Bank Account 新增一個賬戶。下面是新增一個賬戶的流程。

①選擇銀行所在的國家

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

②填寫銀行標識 CNAPS Code

如果你不知道 CNAPS Code 是多少,可以百度搜 CNAPS Code 來查詢,查詢時會根據 3 個關鍵資訊來查詢,如下:

Bank Name:銀行的英文名稱(不能是拼音)

City:銀行所在的城市英文名稱(中國的城市用拼音)

Postal Code:郵編

然後在下面就會出來備選的銀行,選擇正確的銀行後,點選 next,進入下一步。

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

③確認銀行資訊

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

④填寫銀行賬號資訊

Bank Account Number:銀行賬號

Confirm Bank Account Number:再次輸入銀行賬號

Account Holder Name:持卡人姓名,中文名用拼寫,名在前,姓在後

Bank Account Currency:貨幣型別,一般國內的開發者選擇 CNY

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

⑤確認所有資訊

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

6.填寫稅務資訊 (這個內容比較多)

①稅務資訊分 3 種:

U.S Tax Forms:美國稅務

Australia Tax Forms:澳大利亞稅務

Canada Tax Forms:加拿大稅務

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

②一堆條約

我選擇的是 U.S Tax Forms,選擇後會問你兩個問題:

第 1 個問題詢問你是否是美國居民,有沒有美國夥伴關係或者美國公司,如果沒有直接選擇 No。

第 2 個問題詢問你有沒有在美國的商業性活動,沒有也直接選 No。

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

③然後填寫你的稅務資訊,包括以下幾點:

Individual or Organization Name:個人或者組織名稱

Country of incorporation: 所在國家

Type of Beneficial Owner:受益方式,獨立開發者選個人

Permanent Residence:居住地址

Mailing address:郵寄地址

Name of Person Making this Declaration:宣告人

Title:頭銜

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

④打鉤

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

⑤澳大利亞的不要管了

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

⑥加拿大的也不用管了

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

7.填寫完成

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!
8.待稽核

你填寫完所有資料後,合同狀態就會變成 Processing,大概 24 小時內就會有結果。

二、內購商品的新增

1.建立內購商品

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

2.選擇內購型別

①消耗型商品

類似遊戲中的鑽石,還有現在某些 App 中的貨幣,比如鬥魚裡的魚丸、映客裡的映票。會被消耗的,要選擇消耗型商品。

注意:大多數的消耗型商品都是需要登入的,因為需要在資料庫存餘額。 在登入之前,你最好不要讓使用者看到商品,有可能會因為這個原因被拒 (大家都說看運氣) 。小編推薦大家加一下這個群:594353854 群裡已經幾百人了 大家遇到啥問題都會在裡面交流!而且免費分享零基礎入門資料 iOS開發資料一整套!是個非常好的學習交流地方!也有程式設計師大神給大家熱心解答各種問題!很快滿員了。欲進從速哦!各種PDF等你來下載!全部都是免費的哦!只為幫助大家快速入門,所以小編在群裡等你們過來一起交流學習呢!

②非消耗型商品

無法被消耗的商品,比如上文提到的視訊課程,一次購買,就應該永久可以觀看。

注意:當你使用非消耗型商品時,你需要新增一個恢復購買的按鈕。 這個常見於各種遊戲中,其實知道這個規定以後還是挺好理解的, 非消耗型商品是不可被消耗的,一次購買終身使用的。

③訂閱型別商品

如果你的公司是外包公司,有訂閱型別商品的 App,一定要用客戶的賬號提交稽核!因為當 App 中有過訂閱型別商品,注意是有過,建立過再刪除也算,這個 App 無法被轉移賬號。

注意:使用或曾經使用過訂閱型商品的 App 無法轉移

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!
3.建立好的產品

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!
4.在上線的時候記得新增內購的商品

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

三、新增沙盒測試賬號

1.新增沙盒測試的入口

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

2.新增沙盒測試賬號

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

3.具體的測試賬號資訊填寫

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

四、內購程式碼的具體實現

我建立了一個購買金幣的內購控制器 ApplePayCIOViewController。 在這裡, 向大家貼出.m 的詳細程式碼。

1.內購的流程詳細講解

①使用者先拿到購買產品的單子

②繳費、蓋章

③把已蓋章的單子傳到自己的伺服器,驗證是否支付成功

④根據伺服器返回的資訊做具體的處理

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

2.程式碼

①先匯入 StoreKit.framework 庫

②建立 ApplePayCIOViewController,遵守協議<SKPaymentTransactionObserver,SKProductsRequestDelegate>

③ApplePayCIOViewController.m 程式碼

向下滑動檢視多圖

如何在iTC設定App內購,這是一篇細緻到程式碼都給你看的指南!

五、內購的注意事項

1.一般發生於首次提交 App 或新增新商品。當你的 App 通過稽核以後,你發現在生產環境下獲取不到商品,這是因為 App 雖然過稽核了,但是內購商品還沒有正式新增到蘋果的伺服器裡,耐心等待一段時間就可以啦~

  1. 程式碼中的_currentProId 所填寫的是你的購買專案的的 ID,這個和第二步建立的內購的 productID 要一致;本例中是 123。

  2. 在監聽購買結果後,一定要呼叫 [[SKPaymentQueue defaultQueue] finishTransaction:tran] ;來允許你從支付佇列中移除交易。

  3. 沙盒環境測試 App Store 內購流程的時候,請使用沒越獄的裝置。

  4. 請務必使用真機來測試,一切以真機為準。

  5. 專案的 Bundle identifier 需要與您申請 App ID 時填寫的 Bundle ID 一致,不然會無法請求到商品資訊。

  6. 真機測試的時候,一定要退出原來的賬號,才能用沙盒測試賬號

  7. 二次驗證,請注意區分巨集, 測試用沙盒驗證,App Store 稽核的時候也使用的是沙盒購買,所以驗證購買憑證的時候需要判斷返回 Status Code 決定是否去沙盒進行二次驗證,為了線上使用者的使用,驗證的順序肯定是先驗證正式環境,此時若返回值為 21007,就需要去沙盒二次驗證,因為此購買的是在沙盒進行的。

9.您的應用是否處於等待開發者釋出 (Pending Developer Release) 狀態?等待發布狀態的 IAP 是無法測試的。

10.您的內購專案是否是最近才新建的,或者進行了更改?內購專案需要一段時間才能反應到所有伺服器上,這個過程一般是一兩小時,也可能再長一些達到若干小時。

11.您在 iTC 中 Contracts, Tax, and Banking Information 專案中是否有還沒有設定或者過期了的專案?不完整的財務資訊無法進行內購測試。

12.您是在越獄裝置上進行內購測試麼? 越獄裝置不能用於正常內購 ,您需要重灌或者尋找一臺沒有越獄的裝置。

13.您的應用是否是被拒狀態 (Rejected) 或自己拒絕 (Developer Rejected) 了? 被拒絕狀態的應用的話對應還未通過的內購專案也會一起被拒 ,因此您需要重新將 IAP 專案設為 Cleared for Sale。

14.您使用的測試賬號是否是美國區賬號?雖然不是一定需要,但是 鑑於其他地區的測試賬號經常抽風,加上美國區賬號一直很穩定,因此強烈建議使用美國區賬號 。正常情況下 IAP 不需要進行信用卡繫結和其他資訊填寫,如果你遇到了這種情況,可以試試刪除這個測試賬號再新建一個其他地區的。

15.您是否將裝置上原來的 App 刪除了,並重新進行了安裝?如果是,記得在安裝前做一下 Clean 和 Clean Build Folder。

16.您的 plist 中的 Bundle identifier 的內容是否和您的 App ID 一致。

不能再詳細指南到此結束,快去給你的 App 設定內購吧~

如有侵權請聯絡小編刪除!

相關文章