iOS開發(fā)內(nèi)購教程In App Purchase 需要了解的

-我要在app里添加IAP徙邻,必須要注冊自己的產(chǎn)品標(biāo)識符(product identifiers)匣砖。產(chǎn)品標(biāo)識符是什么帮匾?

產(chǎn)品標(biāo)識符(Product Identifiers)是一串字符串偏灿,它用來識別你在應(yīng)用內(nèi)販賣的每件商品扣蜻。App Store用產(chǎn)品標(biāo)識符來檢索產(chǎn)品信息坐桩,標(biāo)識符只能包含大小寫字母(A-Z)尺棋、數(shù)字(0-9)、下劃線(-)绵跷、以及圓點(.)膘螟。你可以任意排列這些元素,但我們建議你創(chuàng)建標(biāo)識符時使用反向域名碾局,比如 com.companyname.application.productid

備注:產(chǎn)品標(biāo)識符和Apple ID以及Bundle ID沒有關(guān)系荆残,它們看起來可能比較像Bundle ID,但是兩者是不一樣的净当。所以内斯,在代碼里你不能用Apple ID或者Bundle ID代替產(chǎn)品標(biāo)識符蕴潦。

-怎么創(chuàng)建產(chǎn)品標(biāo)識符?

IAP表單(TheIn-App Purchases form)是用來生成IAP產(chǎn)品的俘闯,它包含了產(chǎn)品ID的字段潭苞,這個字段必須要填到表里。這個字段可以為你的產(chǎn)品指定產(chǎn)品標(biāo)識符真朗。你可以按下面的步驟來創(chuàng)建產(chǎn)品標(biāo)識符:

1.登入iTunes Connect, 點擊主頁面上的Manage Your Applications模塊此疹。

2.進入Manage Your Apps 頁面,你可以看到你所有的應(yīng)用列表遮婶。選擇你想要創(chuàng)建IAP的產(chǎn)品的app蝗碎,在下個頁面中點擊Manage In-App Purchases按鍵,然后在點擊創(chuàng)建蹭睡。

3.選擇IAP產(chǎn)品的類型衍菱。iTunes Connect會帶你進入IAP表單,在這個表單里有“保存”按鍵肩豁。完整填寫Product ID以及表單里的其他字段脊串。

注意事項:產(chǎn)品標(biāo)識符一旦創(chuàng)建無法修改,此外清钥,如果應(yīng)用審核沒有通過琼锋,這個產(chǎn)品標(biāo)識符也無法再次使用。

-如何在app中如何使用產(chǎn)品標(biāo)識符祟昭?

首先創(chuàng)建SKProductsRequest缕坎,然后把產(chǎn)品標(biāo)識符列表傳至initWithProductIdentifiers 來讀取產(chǎn)品信息。

-當(dāng)在Sandbox 環(huán)境測試In-App Purchase 時篡悟,為什么我得到的是“Payment requests are restricted to products returned as valid via Store Kit’s didReceiveResponse method”錯誤信息谜叹?

執(zhí)行In-App Purchase的app的用戶界面必須有App Store允許的可供購買的產(chǎn)品。在你決定在用戶界面展示用于購買的產(chǎn)品之前搬葬,你的app必須先向App Store發(fā)送一個產(chǎn)品請求荷腊。

-StoreKit提供了兩種支付支付請求的解決辦法:

[SKPayment paymentWithProductIdentifier:PRODUCT_ID] [SKPayment paymentWithProduct:YOUR_SKPRODUCT_OBJECT] 蘋果建議您使用 [SKPayment paymentWithProduct:YOUR_SKPRODUCT_OBJECT] 使用這個方法可以確保你一直處于有效的產(chǎn)品支付請求狀態(tài),同時也確保用戶可以購買你的產(chǎn)品急凰。 所以女仰,務(wù)必只展現(xiàn)App Store返回的產(chǎn)品信息。了解更多有關(guān)于app內(nèi)產(chǎn)品展現(xiàn)信息抡锈,請查看In-App Purchase 編程指南的Feature Delivery部分疾忍。

-In-App Purchase有幾種類型?

In-App Purchase共有3中類型床三,Consumable:一次性購買一罩,最簡單的類型,不用保存歷史記錄撇簿。 Nonconsumable:每個產(chǎn)品擒抛,用戶只買一次推汽,此后就可以在自己的所有設(shè)備上看到該產(chǎn)品。 Subscriptions:訂閱模式允許多次購買末一個產(chǎn)品歧沪,但是購買后,用戶可以在自己的所有設(shè)備上看到該產(chǎn)品莲组。

-iOS 中使用 IAP 方式在程序內(nèi)購買的內(nèi)容在重裝系統(tǒng)后還需要再次購買嗎诊胞? 比如Camera+內(nèi)的濾鏡。

不必锹杈。以 Camera+ 為例撵孤,Menu 里最下方的選項 Restore purchases 即可幫你解鎖已經(jīng)購買的濾鏡。任何實現(xiàn)了 IAP 功能的 App 基本都會提供這一選項竭望,或者在第二次購買時提示已購邪码。

消耗類(如游戲金幣)需要購買。 功能類不需要購買咬清,有些應(yīng)用提供“Restore purchases”闭专,沒有的可以再次嘗試購買,會提示已付費旧烧。

-IAP 能做限時免費嗎影钉? 想做一個免費下載、部分內(nèi)容免費掘剪,但是閱讀更多內(nèi)容需要付費解鎖的閱讀應(yīng)用平委。這樣可以把IAP的價格限時免費為0嗎?

可以的夺谁,你可以設(shè)定價格為0時就不走IAP了廉赔。

創(chuàng)建產(chǎn)品ID的時候,選擇多少錢的時候選錯了匾鸥,程序還未提交蜡塌,還能修改嗎?

可以的扫腺,在應(yīng)用程序的信息中岗照。

-升級iOS5 GM的過程中恢復(fù)備份出了問題,導(dǎo)致In-App Purchase也丟失了笆环。有沒有辦法恢復(fù)攒至? 在iPad上曾經(jīng)進行過一些In-App Purchase躁劣,但是在升級iOS5 GM的過程中恢復(fù)備份出了問題,導(dǎo)致除了恢復(fù)升級前的所有應(yīng)用程序之外志膀,其余個人信息一概丟失。iTunes上可以查詢到購買記錄烫止。具體來說馆蠕,買的是Splashtop的把iPad作為第二顯示器的軟件惊奇,Xdisplay颂郎。

In-App Purchase 分好幾種,最常見的是 Non-Consumable寺酪,就是只需要用戶購買一次的房维。如果是這種類型的咙俩,再購買一次同一個商品就能夠恢復(fù)了湿故,不會收取額外費用。如果 app 做得好的話坛猪,應(yīng)該提供一個 Restore 功能,以專門恢復(fù)以前購買過的 Non-Consumable 的商品命黔。

-在iTunes Connect中每個應(yīng)用可以創(chuàng)建多少個IAP產(chǎn)品ID就斤?

請參閱iTunes Connect Developer Guide的注冊IAP部分

-在iTunes Connect里找不到Manage In-App Purchase (管理IAP)按鍵怎么辦?

以下是可能導(dǎo)致“Manage In-App Purchase”按鍵無法使用的原因

a.不是iTunes Connnect的管理員(Admin)或開發(fā)者(Technical)賬號坠宴。

b.沒有同意最新的iOS或Mac開發(fā)者許可協(xié)議绷旗。

c.最新的付費應(yīng)用協(xié)議(Paid Applications contract)沒有生效

-必須上傳程序的二進制碼才能測試IAP嗎庄岖?

沒有這個必要谨垃。

重要事項:除非你的應(yīng)用已經(jīng)做好了接受蘋果審核的準(zhǔn)備胳赌,否則請不要上傳Development Binary至iTunes Connect疑苫。如果iTunes Connect里的二進制編碼不完整撼短,二進制編碼被拒的可能性很大禾嫉。一旦二進制編碼通過審核,就可以測試In-App Purchase功能了孽椰。

-出現(xiàn)了“您的賬號信息已變”錯誤怎么辦膀捷?

“您的賬號信息已變”錯誤出現(xiàn)的原因是在測試IAP的時候你使用的是設(shè)備的測試賬號秀仲。解決方法是退出賬號神僵,然后在iTunes Connect創(chuàng)建一個新的測試賬號,使用新的測試賬號來測試IAP炮障。

-為什么我的產(chǎn)品標(biāo)識符在invalidProductIdentifiers中被退返?

有可能是以下原因:

a.沒有填完財政需求表(請參閱本文檔的“合同、稅務(wù)以及銀行信息”部分)

b.沒有使用正確的App ID系馆。

c.沒有使用正確的與App ID緊密關(guān)聯(lián)的Provisioning Profile。

d.代碼中沒有使用正確的產(chǎn)品標(biāo)識符纵穿。更多產(chǎn)品標(biāo)識符的信息請參閱技術(shù)問答,第1329條—IAP產(chǎn)品標(biāo)識符。

e.你沒有清除iTunes Connect中促銷的IAP產(chǎn)品抢野。

f.也許你已經(jīng)修改了你的產(chǎn)品指孤,但它沒有在App Store的服務(wù)器中生效结洼。

g.蘋果拒絕了你最新向iTunes Connect提交的二進制碼。

-出現(xiàn)了“你已購買本商品鸣峭,但商品沒有被下載”錯誤怎么辦充石?

你的應(yīng)用沒有調(diào)用SKPaymentQueue ‘s finishTransaction。調(diào)用finishTransaction:允許你從支付隊列中移除交易。

-出現(xiàn)“你已成功購買雅任,點擊‘確認(rèn)’再次進行免費下載”錯誤怎么辦?

這個信息是個提醒州胳,不是錯誤。這表明你試圖購買一個你已經(jīng)購買了的非消耗性產(chǎn)品瓢颅。購買一個非消耗性的產(chǎn)品時不會被扣費。

-調(diào)用 payment queue的 restoreCompletedTransactions: 方法不能恢復(fù)app的任何產(chǎn)品虎囚。

可能由于以下原因:

你沒有任何先前購買過的非消耗類產(chǎn)品角塑。

你試圖恢復(fù)的訂閱產(chǎn)品或者非消耗類產(chǎn)品是不可恢復(fù)的類型圃伶。

restoreCompletedTransactions: 方法只能恢復(fù)非消耗類產(chǎn)品。

注意: 在沒有可恢復(fù)產(chǎn)品的情況下,Store Kit不會調(diào)用paymentQueue:updatedTransactions:方法。

-應(yīng)該什么時候恢復(fù)In-App Purchase產(chǎn)品?

在以下兩種情況下你可以恢復(fù)自動更新的訂閱產(chǎn)品和非消耗類產(chǎn)品:

a.在客戶其他設(shè)備上安裝

b.在刪除了關(guān)聯(lián)應(yīng)用的其他設(shè)備上重新安裝

-如何解決“這不是測試用的用戶賬號,請在Sandbox環(huán)境下創(chuàng)建一個新的賬號”的問題?

出現(xiàn)這個錯誤的原因是在確認(rèn)購買信息時你使用的是iTunes用戶賬號绪爸。解決的辦法是退出賬號,然后使用你的IAP測試賬號奠货。

-回單(receipt )核實失敗介褥,并且出現(xiàn)字符串 (iOS)溢陪。

可能有以下幾個原因:

a.在你的iOS app里,你沒有使用64位編碼對回單數(shù)據(jù)進行編碼睛廊,

b.沒有有效的回單形真,你的回單大概使用了等號隔開鍵和值,用分號隔開了關(guān)鍵字超全。

c.有效的回單使用冒號來隔開鍵和值咆霜,用逗號隔開關(guān)鍵字,

下表是有效的回單樣本

receipt: { “signature” : “…”, “purchase-info” : “…”, “pod” : “…”, “signing-status” : “…” }

-我更新了使用In-App Purchase的iOS app嘶朱,如何對它進行測試呢(iOS)蛾坯?

不管更新后的app是否正確執(zhí)行地了In-App Purchase,如果你要測試的話就按照以下步驟:

通過Ad Hoc Distribution方式安裝原始app疏遏。

通過Ad Hoc Distribution方式安裝更新后的app來驗證它是否完全覆蓋了原始的app脉课。

試著從更新后的app中執(zhí)行In-App Purchase。

-我應(yīng)該使用哪個url核實回單(receipt)(iOS)?

在sandbox環(huán)境測試app時使用 sandbox URL 财异,當(dāng)應(yīng)用處于審核狀態(tài)時也可以使用這個URL:https://sandbox.itunes.apple.com/verifyReceipt 使用產(chǎn)品 URL 一旦你的app上架App Store倘零,你就要用產(chǎn)品URL: http://buy.itunes.apple.com/verifyReceipt

-如何核實receipt(iOS)?

第一次一般使用產(chǎn)品的URL核實收據(jù)戳寸。如果你收到一個21007狀態(tài)代碼视事,那么接下來要用sandbox URL。當(dāng)app處于測試狀態(tài)或者在sandbox環(huán)境下進行檢測庆揩,或者上架App Store,你可以使用這種方法跌穗,從而避免在URL之間進行切換订晌,

注明:21007 狀態(tài)碼表明receipt是一個sandbox receipt。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蚌吸,一起剝皮案震驚了整個濱河市锈拨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌羹唠,老刑警劉巖奕枢,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異佩微,居然都是意外死亡缝彬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門哺眯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谷浅,“玉大人,你說我怎么就攤上這事∫环瑁” “怎么了撼玄?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長墩邀。 經(jīng)常有香客問我掌猛,道長,這世上最難降的妖魔是什么眉睹? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任荔茬,我火速辦了婚禮,結(jié)果婚禮上辣往,老公的妹妹穿的比我還像新娘兔院。我一直安慰自己,他們只是感情好站削,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布坊萝。 她就那樣靜靜地躺著,像睡著了一般许起。 火紅的嫁衣襯著肌膚如雪十偶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天园细,我揣著相機與錄音惦积,去河邊找鬼。 笑死猛频,一個胖子當(dāng)著我的面吹牛狮崩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鹿寻,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼睦柴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了毡熏?” 一聲冷哼從身側(cè)響起坦敌,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎痢法,沒想到半個月后狱窘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡财搁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年蘸炸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尖奔。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡幻馁,死狀恐怖洗鸵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情仗嗦,我是刑警寧澤膘滨,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站稀拐,受9級特大地震影響火邓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜德撬,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一铲咨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蜓洪,春花似錦纤勒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至恐仑,卻和暖如春泉坐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背裳仆。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工腕让, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人歧斟。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓纯丸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親静袖。 傳聞我的和親對象是個殘疾皇子液南,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容