-我要在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。