iOS內(nèi)購(gòu)流程:
iOS內(nèi)購(gòu) 什么時(shí)候用到呢? 虛擬產(chǎn)品就需要用到iOS內(nèi)購(gòu);
購(gòu)買的商品,是在本app中使用和消耗的,就一定要用內(nèi)購(gòu),否則會(huì)被拒絕上線,例如:游戲幣,在線書籍,app中使用的道具等。
重要的大概步驟:
內(nèi)購(gòu)步驟大步驟有4步:
1,填寫協(xié)議,稅務(wù)和銀行業(yè)務(wù);
2,填寫用戶和職能; 創(chuàng)建內(nèi)購(gòu)的項(xiàng)目
3,寫代碼,和后臺(tái)配合
4,添加項(xiàng)目?jī)?nèi)購(gòu)測(cè)試賬號(hào);檢驗(yàn)成果
填寫協(xié)議,稅務(wù)和銀行業(yè)務(wù)一共有21個(gè)步驟需要完成;
以下是具體步驟:
一、先到iTunes Connect上填寫協(xié)議、稅務(wù)和銀行業(yè)務(wù)(如下圖)
如果是外包公司開發(fā)的,那么外包會(huì)讓客戶填寫這一堆信息;如果只是產(chǎn)品公司的技術(shù)開發(fā)人員,那么你可以讓項(xiàng)目負(fù)責(zé)人填寫這一堆信息;
第一步
先點(diǎn)擊Contact Info 的Set Up
進(jìn)行十二步的時(shí)候可能有些銀行通過下面的Look up CNAPS Code方法查不到,就需要借助百度了,一定要準(zhǔn)確查詢,否則會(huì)有問題。
這一步需要注意的是,貨幣類型可能有歧義,選擇了CNY,支持國(guó)產(chǎn)。還有一點(diǎn),銀行賬號(hào)如果是對(duì)公的賬號(hào),需要填寫公司的英文名稱,如果沒有的話,上拼音!然后點(diǎn)擊保存銀行信息就算ok了,然后退回到最開始的頁面
二、為app添加內(nèi)購(gòu)產(chǎn)品
在iTunes Connect在你要添加內(nèi)購(gòu)的app中,進(jìn)入到功能頁面
在你點(diǎn)擊添加內(nèi)購(gòu)產(chǎn)品按鈕后會(huì)有彈框,提示你選擇類型,這個(gè)就要看你app的需求了
填寫完審核信息后,點(diǎn)擊右上角的“存儲(chǔ)”按鈕,就添加了一個(gè)內(nèi)購(gòu)產(chǎn)品~
三、添加沙盒技術(shù)測(cè)試員
在iTunes Connect的用戶和智能中選擇“沙盒技術(shù)測(cè)試員”,填寫信息保存以后就有一個(gè)測(cè)試員了
購(gòu)買成功后我們iOS前端可以單獨(dú)在客戶端完成訂單正確性的驗(yàn)證。但是因?yàn)橛械捻?xiàng)目后臺(tái)要Android和iOS兩端生成賬單便于對(duì)賬。所以我們請(qǐng)求后臺(tái)接口,服務(wù)器處驗(yàn)證是否支付成功,依據(jù)后臺(tái)返回結(jié)果做相應(yīng)邏輯處理。
(PS:訂單正確性的驗(yàn)證本來可以是:iOS客戶端(購(gòu)買成功)→ 前端到蘋果服務(wù)器驗(yàn)證→處理蘋果返回結(jié)果做相應(yīng)邏輯處理; 現(xiàn)在:iOS客戶端(購(gòu)買成功)→ 后臺(tái)→后臺(tái)到蘋果服務(wù)器驗(yàn)證→處理后臺(tái)返回結(jié)果做相應(yīng)邏輯處理)
服務(wù)器要做的是:
1.接收iOS前端發(fā)過來的購(gòu)買憑證。
2.判斷憑證是否已經(jīng)存在或驗(yàn)證過,然后存儲(chǔ)該憑證。
3.將該憑證發(fā)送到對(duì)應(yīng)環(huán)境下的蘋果服務(wù)器驗(yàn)證,并將驗(yàn)證結(jié)果返回給客戶端。
4.根據(jù)需求,是否修改用戶相應(yīng)信息。
注意事項(xiàng)
1.bundleID要與iTunes Connect上你App的相同,不然是請(qǐng)求不到產(chǎn)品信息的
2.在沙盒環(huán)境進(jìn)行測(cè)試內(nèi)購(gòu)的時(shí)候,要使用沒有越獄的蘋果手機(jī)。
3.在沙盒環(huán)境下真機(jī)測(cè)試內(nèi)購(gòu)時(shí),請(qǐng)去app store中注銷你的apple ID,不然發(fā)起支付購(gòu)買請(qǐng)求后會(huì)直接case:SKPaymentTransactionStateFailed。使用沙盒測(cè)試員的賬號(hào)時(shí)不需要真正花錢的。
4.如果只添加了一個(gè)沙盒測(cè)試員賬號(hào),當(dāng)一個(gè)真機(jī)已經(jīng)使用了這個(gè)賬號(hào),另一個(gè)真機(jī)再使用這個(gè)賬號(hào)支付也是會(huì)發(fā)生錯(cuò)誤的。那就去多建幾個(gè)沙盒測(cè)試員賬號(hào)使用不同的,反正也是免費(fèi)的,填寫也很快。
5.監(jiān)聽購(gòu)買結(jié)果,當(dāng)失敗和成功時(shí)代碼中要調(diào)用:
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
該方法通知蘋果支付隊(duì)列該交易已完成,不然就會(huì)已發(fā)起相同 ID 的商品購(gòu)買就會(huì)有此項(xiàng)目將免費(fèi)恢復(fù)的提示。
請(qǐng)?jiān)诒镜刈鲆幌聭{證存儲(chǔ)
現(xiàn)在訂單正確性的驗(yàn)證是:iOS客戶端(購(gòu)買成功)→ 后臺(tái)→后臺(tái)到蘋果服務(wù)器驗(yàn)證→處理后臺(tái)返回結(jié)果做相應(yīng)邏輯處理。
針對(duì)圖上的情況:當(dāng)我們前端購(gòu)買成功后,憑證本地保留一份,當(dāng)與后臺(tái)驗(yàn)證成功后,再將本地保留的憑證刪除。否者一直使用本地已經(jīng)保留的憑證與后臺(tái)交互。