七、<iOS IAP>內(nèi)購(gòu)之使用訂閱

使用訂閱 (subscriptions) 的應(yīng)用有額外的行為和注意事項(xiàng) (considerations) 。 因?yàn)橛嗛啺瑫r(shí)間元素,應(yīng)用程序需要有適當(dāng)?shù)倪壿媮?lái)決定訂閱當(dāng)前是否處于活動(dòng)狀態(tài)以及過(guò)去該訂閱活動(dòng)的時(shí)間段。 應(yīng)用程序還需要應(yīng)對(duì)新的和更新的訂閱,并且需要正確地處理過(guò)期訂閱。 圖5-1 如訂閱時(shí)間表的例子,包括應(yīng)用程序需要處理的復(fù)雜事項(xiàng) (complexities )。


Snip20170517_16.png

一、計(jì)算一個(gè)訂閱的活動(dòng)期

應(yīng)用程序需要在訂閱處于活動(dòng)狀態(tài)的期間內(nèi)決定用戶訪問的內(nèi)容。 舉例,用戶訂閱雜志,該雜志在每個(gè)月的第一天發(fā)布新刊,如圖5-1中的時(shí)間表:
表 5-1 一個(gè)示例訂閱的時(shí)間表

Snip20170517_17.png

在應(yīng)用程序中實(shí)現(xiàn)訂閱邏輯,保留關(guān)于每刊內(nèi)容發(fā)布的日期記錄。 從每個(gè)收據(jù)項(xiàng)目中讀取初始購(gòu)買日期和訂閱到期時(shí)期來(lái)決定訂閱的開始和結(jié)束日期。 (關(guān)于收據(jù)的更多信息,請(qǐng)看 Receipt Validation Programming Guide.) 用戶可以訪問所有在開始日期和結(jié)束日期之間發(fā)布的內(nèi)容以及它初次購(gòu)買時(shí)解鎖的內(nèi)容。 如果訂閱失效(lapsed),將由訂閱活動(dòng)期間的多個(gè)時(shí)間期,以及在一個(gè)訂閱期的開始時(shí)又多刊內(nèi)容解鎖。

注意:不要通過(guò)添加訂閱持續(xù)時(shí)間到購(gòu)買日期中來(lái)計(jì)算訂閱期。 該方法沒有考慮到應(yīng)用試用期,市場(chǎng)選擇期,并讓用戶購(gòu)買了訂閱之后馬上解鎖內(nèi)容。

從表5-1開始繼續(xù)示例,收據(jù)將顯示以下開始和結(jié)束日期:

  • 2月20號(hào) – 3月20號(hào)
  • 3月20號(hào) – 4月20號(hào)
  • 4月20號(hào)到6月17號(hào)在收據(jù)中記錄詳細(xì)信息
  • 6月17號(hào)到7月17號(hào)
    用戶可以訪問二月和六月刊,因?yàn)樗鼈儠r(shí)在訂閱被購(gòu)買或重新訂閱時(shí)解鎖的內(nèi)容,用戶可以訪問三月,四月,六月以及七月刊,因?yàn)樵谶@些時(shí)間訂閱是活動(dòng)的。

二、到期和續(xù)訂

續(xù)訂過(guò)程在到期日期前10天開始預(yù)檢。 在那10天中,應(yīng)用商店檢查任何可能導(dǎo)致自動(dòng)續(xù)訂延遲或無(wú)法續(xù)訂的情況---比如,如果用戶沒有可用的支付方法,如果用戶購(gòu)買了訂閱之后,產(chǎn)品價(jià)格升了,又或者如果產(chǎn)品已經(jīng)不存在。 應(yīng)用商店通知用戶任何問題,這樣他們就可以在續(xù)訂之前解決這些問題,以確保不會(huì)終止他們的續(xù)訂。

注意:提高訂閱價(jià)格并不會(huì)終止所有用戶的自動(dòng)續(xù)訂,只要那些用戶的到期時(shí)間是在未來(lái)10天之內(nèi)。 如果該價(jià)格改變是一個(gè)錯(cuò)誤,把價(jià)格改回原來(lái)的價(jià)格并不會(huì)影響任何用戶。 如果是有意的提交價(jià)格,一直保留該新價(jià)格將導(dǎo)致依次進(jìn)入10天續(xù)訂窗口的其他用戶不能進(jìn)行自動(dòng)續(xù)訂。

在訂閱到期的前24個(gè)小時(shí)期間,應(yīng)用商店開始嘗試自動(dòng)續(xù)訂。 盡管應(yīng)用商店在自動(dòng)續(xù)訂期間會(huì)多次嘗試自動(dòng)續(xù)訂,但是如果失敗次數(shù)太多則會(huì)終止自動(dòng)續(xù)訂。
盡管應(yīng)用商店在它快要過(guò)期之前自動(dòng)續(xù)訂來(lái)防止丟失任何訂閱。 但是,任然有可能丟失。比如,如果用戶的支付信息已經(jīng)失效,第一次續(xù)訂將失敗。 如果用戶一直不更新該支付信息直到訂閱到期,在到期時(shí)間和下次自動(dòng)續(xù)訂成功之前這段時(shí)間將有一小段時(shí)間的丟失。 用戶也可以關(guān)閉自動(dòng)續(xù)訂并故意讓訂閱到期,然后在以后續(xù)訂它,長(zhǎng)期丟失訂閱。 請(qǐng)確定你的應(yīng)用程序的訂閱邏輯能正確地處理不同時(shí)間的丟失。
當(dāng)成功續(xù)訂之后,商店Kit把續(xù)訂交易添加到交易隊(duì)列中。應(yīng)用程序在啟動(dòng)時(shí)檢查交易隊(duì)列并且同處理其它任何交易一樣處理它。 注意如果在續(xù)訂時(shí)應(yīng)用程序已經(jīng)運(yùn)行,那么交易觀察者將不被調(diào)用;應(yīng)用程序在下一次啟動(dòng)時(shí)找到續(xù)訂記錄

三、取消

購(gòu)買了一個(gè)訂閱后得全額付款,只有通過(guò)聯(lián)系蘋果客服服務(wù)才能退款。 比如,如果用戶意外買錯(cuò)了產(chǎn)品,客服中心可以取消該交易并退款。 用戶不能在訂閱周期中間改變注意不支付剩余的訂閱。
要想確認(rèn)某次交易是否已經(jīng)被取消,在收據(jù) (receipt) 中查找 Cancellation Date (取消日期)字段。 如果該字段有日期,不管該訂閱的過(guò)期日期是什么,該交易都已經(jīng)被取消---取消交易就是跟沒有購(gòu)買過(guò)一樣。
根據(jù)產(chǎn)品類型,只能檢查當(dāng)前的活動(dòng)交易,可能需要檢查過(guò)去所有的交易。比如,雜志應(yīng)用需要檢查過(guò)去所有的交易來(lái)決定用戶訪問了那些期刊。

四、跨平臺(tái)注意事項(xiàng)

產(chǎn)品識(shí)別碼只能綁定到一個(gè)應(yīng)用程序。同時(shí)有 iOS 和 OS X 版本的應(yīng)用程序是不同的應(yīng)用程序并分別帶有不同的產(chǎn)品識(shí)別碼。 可以讓在一個(gè) iOS 應(yīng)用中購(gòu)買了訂閱的用戶從 OS X 應(yīng)用(或其它平臺(tái))訪問它購(gòu)買的內(nèi)容,但是這功能你應(yīng)該自己實(shí)現(xiàn)。你會(huì)需要一些系統(tǒng)來(lái)識(shí)別用戶并保持跟蹤他們已經(jīng)訂閱了什么內(nèi)容,類似于你會(huì)給一個(gè) no-renewable subscriptions (不可再生訂閱)應(yīng)用程序?qū)崿F(xiàn)什么。

五、讓用戶管理訂閱

不需要編碼實(shí)現(xiàn)訂閱管理 UI ,應(yīng)用程序可以打開以下 URL

https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions

打開該 URL 啟動(dòng) iTunes 或者 iTunes 商店,然后顯示管理訂閱頁(yè)面。

六、測(cè)試環(huán)境

為了測(cè)試,自動(dòng)訂閱在產(chǎn)品環(huán)境 (production environment) 和 在測(cè)試環(huán)境 (test environment) 中的行為有所不同。
更新發(fā)生在加速時(shí),并且自動(dòng)訂閱每天最多更新6次。 這樣讓測(cè)試應(yīng)用程序如何處理訂閱更新,一個(gè)訂閱失效,以及一個(gè)包括缺口的訂閱歷史。因?yàn)榧铀俚牡狡诤透滤俣龋嗛喛梢栽谙到y(tǒng)開始嘗試更新訂閱之前過(guò)期,在訂閱期間留下一個(gè)小失誤。 因?yàn)楦鞣N原因,這樣的失誤在產(chǎn)品中也同樣可能存在---請(qǐng)確保應(yīng)用程序可以正確地處理它們。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容