1. 程式人生 > >蘋果內購的坑

蘋果內購的坑

雖為轉載,但就剛好是自己在爬的坑,特別感謝原作者!點選開啟連結

最近做的一款專案用到了蘋果內購,此前並沒有做過相關功能,所以我當時的心情是拒絕的(內購那麼多坑,嚇死寶寶了),畢竟涉及到支付,涉及到錢還是要很慎重對待的。

於是,我在網上這一通搜尋,檢視別人的筆記,好在廣大程式設計師們還是很有共享精神的(此處應有掌聲,非常感謝),有的只記錄了一些關鍵點,有些記錄的非常全面,從填寫內購協議到程式碼,以及過程中遇到的一些坑都圖文並茂的寫下來了,給大家提供下連結,拿走不謝:

根據這些教程終於磕磕絆絆的寫完內購,提交稽核的時候發現沒有能選擇APP內購買專案的地方,根據教程第一次提交包含內購的APP時要將所有內購買專案一起提交稽核,稽核過後再新增新的內購買專案就可以單獨稽核了。然後我就想是不是我的內購買專案建立的不對,我的內購買專案建立時有一些描述文字沒填,儲存後顯示元資料丟失,百度一搜有人說資料填全了就好了,我就把每個內購買專案能填的地方都填了,儲存後顯示等待稽核,這樣APP提交稽核的時候就可以選擇內購買專案了。


第一次提交稽核,過了兩天,被打回來了,還附帶幾張截圖,原因“我的錢包”充值頁面不能包含任何解釋內購的文字,比如跟使用者解釋為什麼充值要使用內購,比如蘋果公司對內購的一些規定,不能提現這些內容,修改後再次提交。

第二次打回來,說是找不到內購的地方,找不到APP需要用到後臺播放音訊的功能。我就將找到內購的詳細流程回覆給他們,還錄了一段使用音訊播放功能的視訊。還說打我的電話打不通,讓我提供另一個聯絡方式(提交稽核的時候光寫手機號會報錯,手機號前面必須加上+86才行,但是加上+86後手機號就打不通了,這個有點坑),最後回覆郵件的時候我寫了兩個手機號,一個加上+86的,一個不加的。


寫上就不報錯

不寫+86報錯

過了大概幾個小時,蘋果那邊給我打電話,讓我協助她稽核我的APP,我教她一步步找到登陸的地方,然後充值,購買音訊,播放。

整個流程都跑通了,她說充值頁面不需要再多一個“確定支付”的按鈕,使用者選擇了某一個內購專案,就代表他確定要買了。

我點頭,好,我一會就改。

然後又問我為什麼限時免費的音訊和內購一定要登入才可以使用。

我說要登入了我們才能知道是誰充值了,該給誰的賬戶充錢呀,至於限時免費的音訊我們需要統計播放人數以及其他的一些行為。

她就跟我強調既然是免費的,就得允許使用者不登陸就可以享受到,還有內購也必須可以不登陸購買,將購買資訊儲存在本地就行。

我說萬一使用者換手機了,充值資料都在原來手機上,他在新手機上不就不能用這些錢了麼?

她說你怎麼知道使用者會換手機,萬一不換呢?

我倆又討論了一陣,最後她說咱們現在討論這個沒有意義,我也不是要告訴你為什麼要這樣,而是跟你說我們有這個規定,使用者必須不登陸就可以使用內購,你可以誘導使用者登入後再購買,但不可以強制使用者去登陸(好霸氣,我竟無言以對,誰讓我沒好好看蘋果規定呢)。

後來我們把充值功能改成購買會員,然後特意查看了其他的一些購買會員的APP,他們都有遊客購買的方式,購買會員後就可以擁有會員的所有許可權,不過遊客不能發表評論點贊這些操作,當用戶登入後會提示使用者"當前裝置已開通VIP,是否與此賬號繫結?",使用者點選繫結就可以將儲存在本地的購買資訊跟實際賬戶繫結。

第三次提交又被打回來,說是不支援IPV6,獲取不到資訊(此時我的心中真是一萬個xxx奔騰而過啊,上次電話溝通的時候我明明一步步教她登陸,購買成功了,我還從電話裡聽到她播放我們音訊的聲音了,明明是沒問題的啊,這是鬧哪樣)。沒辦法,我撤回稽核,又打包提交了一次,萬幸,稽核過了。

所以啊,有時候因為IPV6被拒,不一定就是我們不支援,有可能是稽核那邊的網抽瘋了,多提交幾次就好了。

總結

1、建立內購買專案時,如果有某些地方沒填,儲存後會顯示“元資料丟失”,這種狀態的內購買專案是無法提交稽核的,需要把內購買專案的每一個可填的地方都填寫清楚,都填寫完儲存後會顯示“準備提交稽核”

2、充值或者有內購的地方不允許有蘋果內購相關規定的提示語

3、內購專案必須點選即可購買,無需點之後再確認購買

4、內購買專案不允許強制使用者登入註冊後再購買,可以用遊客身份購買

5、所有免費的東西都要允許使用者在未登入狀態下播放觀看

6、遊客身份解決方案:

1)伺服器端做一個蘋果稽核機制,稽核期間遊客身份可以進行一切行為,一旦稽核通過,修改服務端即可達到強制使用者登入進行內購買的目的(這個有點。。。)

2)遊客可以進行內購買,購買時以裝置UUID為準,生成一個遊客賬號,將購買資訊儲存在伺服器和本地,當用戶登入正式賬戶後判斷此裝置是否進行過內購,有的話提示使用者將遊客身份購買的權益與現有賬號繫結,如果繫結,遊客權益則遷移到正式賬戶,如果不遷移,則遊客身份和正是賬戶是兩個獨立賬戶,正式賬戶不享有遊客身份的權益(我用的這個)