iOS 內(nèi)購服務(wù)器驗(yàn)證

后臺服務(wù)器驗(yàn)證

IOS 內(nèi)支付有兩種模式:

1) 內(nèi)置模式

2) 服務(wù)器模式

內(nèi)置模式的流程可以簡單的總結(jié)為以下幾步:

1) app從app store 獲取產(chǎn)品信息

2) 用戶選擇需要購買的產(chǎn)品

3) app發(fā)送支付請求到app store

4) app store 處理支付請求坛善,并返回transaction信息

5) app將購買的內(nèi)容展示給用戶

服務(wù)器模式的主要流程如下所示:

1) app從服務(wù)器獲取產(chǎn)品標(biāo)識列表

2) app從app store 獲取產(chǎn)品信息

3) 用戶選擇需要購買的產(chǎn)品

4) app 發(fā)送 支付請求到app store

5) app store 處理支付請求,返回transaction信息

6) app 將transaction receipt 發(fā)送到服務(wù)器

7) 服務(wù)器收到收據(jù)后發(fā)送到app stroe驗(yàn)證收據(jù)的有效性

8) app store 返回收據(jù)的驗(yàn)證結(jié)果

9) 根據(jù)app store 返回的結(jié)果決定用戶是否購買成功

上述兩種模式的不同之處主要在于:交易的收據(jù)驗(yàn)證焕数,內(nèi)建模式?jīng)]有專門去驗(yàn)證交易收據(jù)拦键,而服務(wù)器模式會使用獨(dú)立的服務(wù)器去驗(yàn)證交易收據(jù)麻养。內(nèi)建模式簡單快捷,但容易被破解。服務(wù)器模式流程相對復(fù)雜骄瓣,但相對安全。

開發(fā)之初耍攘,蘋果方就很負(fù)責(zé)的告知:我們的服務(wù)器不穩(wěn)定榕栏。真正開發(fā)之后畔勤,發(fā)現(xiàn)蘋果方果然是很負(fù)責(zé)的,不僅是不穩(wěn)定扒磁,而且足夠慢庆揪。app store server驗(yàn)證一個收據(jù)需要3-6s時間。

1.用戶能否忍受3-6s的等待時間

2.如果app store server 宕機(jī)妨托,如何確保成功付費(fèi)的用戶能夠得到正常服務(wù)缸榛。

對于第一個問題,我們有理由相信用戶完全無法忍受兰伤,所以采用異步驗(yàn)證的方式内颗,服務(wù)器收到客戶端的請求后,就將請求放到MCQ中去處理敦腔。

對于第二個問題均澳,由于蘋果人員很負(fù)責(zé)人的告知:我們的服務(wù)器不穩(wěn)定,所以不排除收據(jù)驗(yàn)證超時的情況符衔。對于驗(yàn)證超時的收據(jù)找前,保存到數(shù)據(jù)庫中并標(biāo)記為驗(yàn)證超時,定時任務(wù)每隔一定的時間去app store驗(yàn)證柏腻,確保能夠獲取收據(jù)的驗(yàn)證結(jié)果纸厉。

在開發(fā)過程中,需要測試應(yīng)用是否能夠正常的進(jìn)行支付五嫂,但是又不能進(jìn)行實(shí)際的支付颗品,因此需要使用蘋果提供的sandbox Store測試。Store Kit不能在iOS模擬器中使用沃缘,測試Store必須在真機(jī)上進(jìn)行躯枢。

在sandbox中驗(yàn)證receipt

https://sandbox.itunes.apple.com/verifyReceipt

在生產(chǎn)環(huán)境中驗(yàn)證receipt

https://buy.itunes.apple.com/verifyReceipt

在實(shí)際開發(fā)過程中,服務(wù)器端通過issandbox字段標(biāo)識客戶端傳遞的收據(jù)是沙盒環(huán)境中的收據(jù)還是生產(chǎn)環(huán)境中的收據(jù)槐臀。在提交蘋果審核前锄蹂,沙盒測試均無問題。提交蘋果審核后水慨,被告知購買失敗得糜,審核未通過。通過查詢?nèi)罩景l(fā)現(xiàn)晰洒,客戶端發(fā)送的交易收據(jù)為沙盒收據(jù)朝抖,但是issandbox字段卻標(biāo)識為生產(chǎn)環(huán)境。

結(jié)論:蘋果審核app時谍珊,仍然在沙盒環(huán)境下測試治宣。但是客戶端同事在app提交蘋果審核時,將issandbox字段寫死,設(shè)置為生產(chǎn)環(huán)境侮邀。這樣就導(dǎo)致沙盒收據(jù)發(fā)送到https://buy.itunes.apple.com/verifyReceipt去驗(yàn)證坏怪。

那么如何自動的識別收據(jù)是否是sandbox receipt呢?

識別沙盒環(huán)境下收據(jù)的方法有兩種:

1.根據(jù)收據(jù)字段 environment = sandbox绊茧。

2.根據(jù)收據(jù)驗(yàn)證接口返回的狀態(tài)碼

如果status=21007铝宵,則表示當(dāng)前的收據(jù)為沙盒環(huán)境下收據(jù), t進(jìn)行驗(yàn)證按傅。

蘋果反饋的狀態(tài)碼捉超;

21000App Store無法讀取你提供的JSON數(shù)據(jù)

21002 收據(jù)數(shù)據(jù)不符合格式

21003 收據(jù)無法被驗(yàn)證

21004 你提供的共享密鑰和賬戶的共享密鑰不一致

21005 收據(jù)服務(wù)器當(dāng)前不可用

21006 收據(jù)是有效的,但訂閱服務(wù)已經(jīng)過期唯绍。當(dāng)收到這個信息時,解碼后的收據(jù)信息也包含在返回內(nèi)容中

21007 收據(jù)信息是測試用(sandbox)枝誊,但卻被發(fā)送到產(chǎn)品環(huán)境中驗(yàn)證

21008 收據(jù)信息是產(chǎn)品環(huán)境中使用况芒,但卻被發(fā)送到測試環(huán)境中驗(yàn)證

先生產(chǎn)驗(yàn)證后測試驗(yàn)證,可以避免來回切換接口的麻煩叶撒。測試驗(yàn)證只要用你自己申請的測試appid的時候才會用到绝骚,用戶不會擁有測試appid,所以不會走到測試驗(yàn)證這一步祠够。即使生產(chǎn)驗(yàn)證出錯压汪,應(yīng)該也不回返回21007狀態(tài)嗎。測試驗(yàn)證通過的用戶名古瓤,和充值金額最好用數(shù)據(jù)庫記錄下來止剖,方便公司資金核對。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末落君,一起剝皮案震驚了整個濱河市穿香,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绎速,老刑警劉巖皮获,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異纹冤,居然都是意外死亡洒宝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進(jìn)店門萌京,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雁歌,“玉大人,你說我怎么就攤上這事枫夺〗埽” “怎么了?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長较坛。 經(jīng)常有香客問我印蔗,道長,這世上最難降的妖魔是什么丑勤? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任华嘹,我火速辦了婚禮,結(jié)果婚禮上法竞,老公的妹妹穿的比我還像新娘耙厚。我一直安慰自己,他們只是感情好岔霸,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布薛躬。 她就那樣靜靜地躺著,像睡著了一般呆细。 火紅的嫁衣襯著肌膚如雪型宝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天絮爷,我揣著相機(jī)與錄音趴酣,去河邊找鬼。 笑死坑夯,一個胖子當(dāng)著我的面吹牛岖寞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柜蜈,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼仗谆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了跨释?” 一聲冷哼從身側(cè)響起胸私,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鳖谈,沒想到半個月后岁疼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缆娃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年捷绒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贯要。...
    茶點(diǎn)故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡暖侨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出崇渗,到底是詐尸還是另有隱情字逗,我是刑警寧澤京郑,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站葫掉,受9級特大地震影響些举,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜俭厚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一户魏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挪挤,春花似錦叼丑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至尖飞,卻和暖如春症副,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背政基。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留闹啦,地道東北人沮明。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像窍奋,于是被迫代替她去往敵國和親荐健。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評論 2 359

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