版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 中國(guó)移動(dòng)互聯(lián)網(wǎng)基地</b></p><p><b> 2014年6月</b></p><p><b> 目錄</b></p><p><b> 1前言3</b></p><p> 1.1編寫目的3</p&
2、gt;<p> 1.2面向的讀者3</p><p> 1.3支持的平臺(tái)3</p><p> 1.4版本說(shuō)明3</p><p> 1.5應(yīng)用內(nèi)計(jì)費(fèi)基礎(chǔ)說(shuō)明3</p><p><b> 2開發(fā)前準(zhǔn)備3</b></p><p> 2.1開發(fā)工具準(zhǔn)備3&l
3、t;/p><p> 2.2業(yè)務(wù)流程準(zhǔn)備4</p><p> 3開發(fā)應(yīng)用內(nèi)計(jì)費(fèi)4</p><p> 3.1開發(fā)應(yīng)用4</p><p> 3.1.1準(zhǔn)備開發(fā)環(huán)境4</p><p> 3.1.2下載和導(dǎo)入SDK4</p><p> 3.1.3 使用SDK5</p&g
4、t;<p> 3.2開發(fā)應(yīng)用注意事項(xiàng)6</p><p> 4應(yīng)用內(nèi)計(jì)費(fèi)SDK使用手冊(cè)7</p><p> 4.1SDK組成和接口說(shuō)明7</p><p> 4.1.1NetPurchase API說(shuō)明7</p><p> 4.1.2NetPurchaseDelegate9</p><
5、;p> 4.1.3NetPurchaseDelegate中各API數(shù)據(jù)說(shuō)明10</p><p> 4.2SDK運(yùn)行流程及要點(diǎn)說(shuō)明10</p><p> 4.2.1主要流程10</p><p> 4.2.2版權(quán)文件11</p><p> 4.2.3渠道文件11</p><p> 4.
6、3示例代碼11</p><p> 4.3.1SDK初始化14</p><p> 4.3.2SDK訂購(gòu),查詢,退訂接口的調(diào)用15</p><p> 4.3.3添加配置文件16</p><p> 4.4如何在應(yīng)用內(nèi)計(jì)費(fèi)中使用有數(shù)17</p><p><b> 前言</b>
7、</p><p><b> 編寫目的</b></p><p> 本文檔主要為開發(fā)者提供技術(shù)支持,指導(dǎo)開發(fā)者正確開發(fā)中國(guó)移動(dòng)互聯(lián)網(wǎng)基地應(yīng)用內(nèi)計(jì)費(fèi)計(jì)費(fèi)ios版應(yīng)用。文檔提供了開發(fā)者如何獲取所需資源及如何使用SDK等的指引,同時(shí)提供了相關(guān)的范例供開發(fā)者學(xué)習(xí)使用。幫助開發(fā)者開發(fā)ios版計(jì)費(fèi)應(yīng)用。 </p><p><b> 面
8、向的讀者</b></p><p> 本指南適用于已經(jīng)掌握IAP應(yīng)用開發(fā)方法,正在開發(fā)調(diào)試IAP應(yīng)用的開發(fā)人員。</p><p> 閱讀本開發(fā)指南前應(yīng)先詳讀《中國(guó)移動(dòng)互聯(lián)網(wǎng)基地計(jì)費(fèi)能力業(yè)務(wù)指南》,了解相關(guān)知識(shí)方可開始開發(fā)應(yīng)用(下載地址:http://dev.10086.cn/iap/?action=down)。</p><p><b> 支
9、持的平臺(tái)</b></p><p> 目前支持iOS平臺(tái)iPhone、iTouch設(shè)備,要求iOS版本在4.3及以上。</p><p><b> 版本說(shuō)明</b></p><p><b> 應(yīng)用內(nèi)計(jì)費(fèi)基礎(chǔ)說(shuō)明</b></p><p> 應(yīng)用內(nèi)計(jì)費(fèi)SDK是在應(yīng)用內(nèi)付費(fèi)購(gòu)買內(nèi)容、服務(wù)、
10、游戲道具等應(yīng)用內(nèi)商品的基本組件,為應(yīng)用實(shí)現(xiàn)計(jì)費(fèi)功能提供支持。</p><p> 開發(fā)者從中國(guó)移動(dòng)應(yīng)用商場(chǎng)上獲取計(jì)費(fèi)點(diǎn)等參數(shù)并在調(diào)用SDK時(shí)使用,即可實(shí)現(xiàn)應(yīng)用內(nèi)計(jì)費(fèi)。</p><p> 運(yùn)行應(yīng)用,SDK收到調(diào)用后,對(duì)計(jì)費(fèi)點(diǎn)進(jìn)行鑒權(quán),完成與用戶的二次確認(rèn)交互,由用戶確認(rèn)后完成計(jì)費(fèi)。</p><p><b> 開發(fā)前準(zhǔn)備</b></p&g
11、t;<p><b> 開發(fā)工具準(zhǔn)備</b></p><p> 下載最新版本ios SDK<1.1.0版>,下載方式:</p><p> 加入iOS版計(jì)費(fèi)SDK群:301084779,在群共享下載ios SDK<1.1.0版></p><p> 如需在中國(guó)移動(dòng)應(yīng)用商場(chǎng)下載和發(fā)布ios應(yīng)用,需要使用越獄
12、的ios設(shè)備。</p><p><b> 業(yè)務(wù)流程準(zhǔn)備</b></p><p> 開發(fā)前資質(zhì)準(zhǔn)備、計(jì)費(fèi)點(diǎn)申請(qǐng)流程以及聯(lián)系技術(shù)支撐人員等功能說(shuō)明</p><p> 詳見:《中國(guó)移動(dòng)互聯(lián)網(wǎng)基地計(jì)費(fèi)能力業(yè)務(wù)指南》</p><p> 下載地址:http://dev.10086.cn/iap/?action=down<
13、;/p><p><b> 開發(fā)應(yīng)用內(nèi)計(jì)費(fèi) </b></p><p><b> 開發(fā)應(yīng)用 </b></p><p><b> 準(zhǔn)備開發(fā)環(huán)境</b></p><p> 在使用應(yīng)用內(nèi)計(jì)費(fèi)接口之前,請(qǐng)確認(rèn)XCODE、iOS SDK已經(jīng)安裝,并正常使用。如果尚未安裝,請(qǐng)參考以下資源,
14、安裝過(guò)程不再贅述。目前支持iOS平臺(tái)iPhone、iTouch設(shè)備,要求iOS版本在4.3及以上。XCODE、iOS SDK: </p><p> https://developer.apple.com/xcode/index.php</p><p><b> 下載和導(dǎo)入SDK </b></p><p> SDK以ZIP文件的形式提供給
15、開發(fā)者在程序中使用,開發(fā)者需要先把壓縮文件解壓,然后會(huì)出現(xiàn)libNetPurchaseLib.a、NetPurchaseLib.h、NetPurchaseLib.bundle文件。</p><p> 以下內(nèi)容將說(shuō)明如何在XCODE中,將libNetPurchaseLib.a、NetPurchaseLib.h、NetPurchaseLib.bundle文件加入到應(yīng)用工程中去。</p><p&g
16、t; 將libNetPurchaseLib.a、NetPurchaseLib.h、NetPurchaseLib.bundle文件拷貝到應(yīng)用工程的NetPurchaseLib目錄下,如沒有該目錄,可新建;</p><p> 在工程中新建NetPurchaseLib目錄,然后雙擊NetPurchaseLib目錄,從彈出的菜單中,選中“Add Files to...”, 然后對(duì)話框。添加libNetPurchase
17、Lib.a、NetPurchaseLib.h文件以及圖片資源Resource到工程中;</p><p> 在對(duì)話框中選中l(wèi)ibNetPurchaseLib.a、NetPurchaseLib.h文件以及圖片資源Resource,點(diǎn)擊“Add”按鈕, 添加資源成功。</p><p><b> 圖表 1 添加文件</b></p><p> 最后
18、,檢查XCODE中是否可以看到剛才添加文件,如下圖2所示。如果可以,則表示配置成功,否則,請(qǐng)檢查上述步驟是否執(zhí)行成功。</p><p><b> 圖表 2 檢查</b></p><p> 3.1.3 使用SDK</p><p> ?。猄DK使用注意事項(xiàng)</p><p> 使用SDK可依照以下二個(gè)步驟。</p&
19、gt;<p> 實(shí)現(xiàn)NetPurchaseDelegate</p><p> NetPurchaseDelegate是應(yīng)用內(nèi)計(jì)費(fèi)的監(jiān)聽器,檢查的結(jié)果通過(guò)notifySubscribe,notifyUnsubscribe, notifySubQuery返回給調(diào)用者。</p><p> 以上這些方法中的參數(shù)請(qǐng)查看NetPurchaseLib.h文件。</p>
20、<p> 若要SDK正常工作,至少需要12個(gè)庫(kù),如下圖</p><p> 使用此SDK,需要增加如下系統(tǒng)庫(kù):</p><p><b> 開發(fā)應(yīng)用注意事項(xiàng)</b></p><p> 為保證自身敏感數(shù)據(jù)(APPID、APPKEY、PAYCODE)的安全性,請(qǐng)盡量采用加密等手段保存,避免以常量字符串形式出現(xiàn)于源碼。</p>
21、;<p> 應(yīng)用中不能同時(shí)發(fā)起兩起或者以上的訂購(gòu)操作,比如不能同時(shí)啟動(dòng)兩個(gè)查詢訂單的線程。</p><p> 包月和單次計(jì)費(fèi)的業(yè)務(wù),可以緩存授權(quán)結(jié)果在本地,以避免過(guò)多網(wǎng)絡(luò)的交互。但緩存的授權(quán)可能會(huì)有不同步的情況,應(yīng)用可根據(jù)實(shí)際業(yè)務(wù)情況決定是否啟用本地緩存授權(quán)。也可以在運(yùn)行過(guò)程中,清除緩存授權(quán)(clearCache())。</p><p> 可批量購(gòu)買的計(jì)費(fèi)點(diǎn),在兩次訂購(gòu)
22、之間,目前有時(shí)間限制(目前定義30秒鐘)</p><p> 可批量購(gòu)買的計(jì)費(fèi)點(diǎn),一次訂購(gòu)數(shù)量不能超過(guò)10個(gè)。</p><p> 應(yīng)用升級(jí),開發(fā)如果需要升級(jí)目前已投入商用的APP,需要重新上傳后,用戶通過(guò)中國(guó)移動(dòng)應(yīng)用商場(chǎng)或者其他與移動(dòng)有關(guān)渠道升級(jí)。如果采用自升級(jí),可能會(huì)因?yàn)锳PP數(shù)據(jù)與移動(dòng)服務(wù)器中數(shù)據(jù)不一致,導(dǎo)致APP中無(wú)法正常發(fā)起交易業(yè)務(wù)。</p><p>
23、中國(guó)移動(dòng)部分省份已經(jīng)開始銷售147號(hào)段的SIM卡,該號(hào)段同樣可以使用IAP進(jìn)行計(jì)費(fèi)。請(qǐng)應(yīng)用開發(fā)者注意判斷此號(hào)段的SIM卡,以免造成不必要的麻煩。</p><p> 應(yīng)用內(nèi)計(jì)費(fèi)SDK使用手冊(cè) </p><p> SDK組成和接口說(shuō)明 </p><p> SDK公開的接口包括:</p><p> NetPurchase API說(shuō)明<
24、/p><p> NetPurchase對(duì)象是SDK提供給開發(fā)者發(fā)起訂購(gòu),查詢的接口。</p><p> 開發(fā)者在實(shí)例化該對(duì)象后,調(diào)用其中的函數(shù)可以處理相應(yīng)的業(yè)務(wù)。</p><p><b> 構(gòu)造實(shí)例:</b></p><p> NetPurchase對(duì)象的創(chuàng)建使用成員變量:</p><p>&
25、lt;b> 各參數(shù)設(shè)置:</b></p><p><b> 訂購(gòu):</b></p><p> 調(diào)用NetPurchase對(duì)象中的SubscribeAPI函數(shù),傳入相應(yīng)的參數(shù):</p><p> payCode,計(jì)費(fèi)點(diǎn)(見本文檔2.3)</p><p> orderCount,訂購(gòu)數(shù)量。(包月、
26、約定租期和不可重復(fù)訂購(gòu)計(jì)費(fèi)點(diǎn)只能傳入1,可重復(fù)訂購(gòu)計(jì)費(fèi)點(diǎn)可以傳入10以下數(shù)值)</p><p> IsnextCycle, 對(duì)于租賃類業(yè)務(wù),可以預(yù)訂下一期租賃周期。</p><p> EXDATA,本參數(shù)是可透?jìng)鞯介_發(fā)者服務(wù)器的自定義數(shù)據(jù),長(zhǎng)度為64字節(jié)以內(nèi)。</p><p> 通過(guò)回調(diào)函數(shù)notifySubscribe知道本次訂購(gòu)結(jié)果以及相應(yīng)的數(shù)據(jù),函數(shù)返回
27、TradeId代表當(dāng)次交易ID,可以在查詢接口中傳入該交易ID再次查詢交易有無(wú)成功 </p><p><b> 查詢:</b></p><p> 調(diào)用NetPurchase對(duì)象中的SubQueryAPI函數(shù),傳入相應(yīng)參數(shù):</p><p> payCode,計(jì)費(fèi)點(diǎn)(見本文檔2.3)</p><p> Trad
28、eID, 調(diào)用SubscribeAPI接口回調(diào)返回的交易ID或者不傳,用于查詢交易是否成功</p><p><b> 退訂:</b></p><p> 調(diào)用NetPurchase對(duì)象中的UnsubscribeAPI函數(shù),傳入相應(yīng)參數(shù):</p><p> payCode,計(jì)費(fèi)點(diǎn)(見本文檔2.4)</p><p>
29、注意:目前只有包月業(yè)務(wù)允許退訂。其他類型業(yè)務(wù)均不允許退訂。</p><p> NetPurchaseDelegate</p><p> 應(yīng)用內(nèi)計(jì)費(fèi)各種操作(查詢,訂購(gòu))監(jiān)聽器。開發(fā)者通過(guò)實(shí)現(xiàn)該接口中各個(gè)接口來(lái)監(jiān)聽各種業(yè)務(wù)操作的狀態(tài):</p><p> NetPurchaseDelegate中各API數(shù)據(jù)說(shuō)明</p><p> 正如前面
30、所描述的一樣,查詢,訂購(gòu)接口的返回值在NetPurchaseDelegate中得到。</p><p><b> 數(shù)據(jù)主要有幾種:</b></p><p> 上面這些值所代表的意義如下:</p><p> OrderId,表示此次訂單,中國(guó)移動(dòng)應(yīng)用商場(chǎng)平臺(tái)形成的訂單流水號(hào)</p><p> Paycode,表示此次
31、交易的商品id</p><p> LeftDay,表示此次交易商品的有效期。</p><p> TradeID,表示此次交易的交易ID,供查詢用。</p><p> OrderType,表示此次交易的類型。如果返回0,則表示是生成測(cè)試訂單;如果返回1,則表示生成正式訂單。</p><p> SDK運(yùn)行流程及要點(diǎn)說(shuō)明</p>
32、<p><b> 主要流程</b></p><p> 首次付費(fèi)時(shí),或者初始化時(shí),SDK會(huì)需要申請(qǐng)用戶身份數(shù)字證書。之后,只要不失效,將不會(huì)再次觸發(fā)。</p><p><b> 版權(quán)文件</b></p><p> 版權(quán)文件是記錄應(yīng)用版權(quán)信息的數(shù)據(jù)文件,對(duì)于開發(fā)者來(lái)說(shuō),需要到指定的開發(fā)者社區(qū)自行下載此文件
33、,然后打包(預(yù)置)到自己的程序中,該文件是透明的,完全由SDK處理,一般不需要理會(huì)。</p><p><b> 渠道文件</b></p><p> 渠道文件是記錄應(yīng)用渠道信息的數(shù)據(jù)文件,對(duì)于開發(fā)者來(lái)說(shuō),需要到指定的開發(fā)者社區(qū)自行下載此文件,然后打包(預(yù)置)到自己的程序中,該文件是透明的,完全由SDK處理,一般不需要理會(huì)。</p><p>&
34、lt;b> 示例代碼 </b></p><p> 下面將通過(guò)demo中的代碼具體說(shuō)明如何使用本SDK。</p><p> APPID,APPKEY,PayCode設(shè)置。</p><p> 在demo程序中,APPID,APPKEY,PayCode默認(rèn)賦值為00000000000。請(qǐng)根據(jù)在2.3節(jié)中操作,將生成的APPID,APPKEY,Pa
35、yCode分別填入。</p><p> // 計(jì)費(fèi)應(yīng)用信息(demo測(cè)試)</p><p> private static final String APPID = "00000000000";</p><p> private static final String APPKEY = "00000000000";<
36、;/p><p><b> // 計(jì)費(fèi)點(diǎn)信息</b></p><p> private static final String LEASE_PAYCODE = "00000000000"; // 單次</p><p> OnPurchaseListener接口實(shí)現(xiàn)</p><p> 開發(fā)者使用SDK
37、,需要自定義實(shí)現(xiàn)一個(gè)接口OnPurchaseListener,該接口用來(lái)將訂購(gòu),查詢,退訂各業(yè)務(wù)的結(jié)果或者狀態(tài)返回給APP。Demo中具體實(shí)現(xiàn)如下:</p><p> public class IAPListener implements OnPurchaseListener {</p><p> private final String TAG = "IAPListener
38、";</p><p> private Demo context;</p><p> private IAPHandler iapHandler;</p><p><b> //</b></p><p> public IAPListener(Context context, IAPHandler ia
39、pHandler) {</p><p> this.context = (Demo) context;</p><p> this.iapHandler = iapHandler;</p><p><b> }</b></p><p><b> @Override</b></p>
40、<p> public void onAfterApply() {</p><p><b> }</b></p><p><b> @Override</b></p><p> public void onAfterDownload() {</p><p> // TODO
41、Auto-generated method stub</p><p><b> }</b></p><p><b> @Override</b></p><p> public void onBeforeApply() {</p><p> // TODO Auto-generated me
42、thod stub</p><p><b> }</b></p><p><b> @Override</b></p><p> public void onBeforeDownload() {</p><p> // TODO Auto-generated method stub</
43、p><p><b> }</b></p><p> //初始化結(jié)束接口。開發(fā)者調(diào)用了初始化接口后,最后結(jié)果將在此函數(shù)中被調(diào)用</p><p><b> @Override</b></p><p> public void onInitFinish(int code) {</p>&
44、lt;p> Log.d(TAG, "Init finish, status code = " + code);</p><p><b> Message </b></p><p> message= iapHandler.obtainMessage(IAPHandler.INIT_FINISH);</p><p>
45、; String result = "初始化結(jié)果:" + Purchase.getReason(code);</p><p> message.obj = result;</p><p> message.sendToTarget();</p><p><b> }</b></p><p>&
46、lt;b> //訂購(gòu)結(jié)束接口。</b></p><p><b> @Override</b></p><p> public void onBillingFinish(int code, HashMap arg1) {</p><p> Log.d(TAG, "billing finish, status c
47、ode = " + code);</p><p> String result = "";</p><p> Message message = iapHandler.obtainMessage(IAPHandler.BILL_FINISH);</p><p> if (code == PurchaseCode.ORDER_OK
48、|| (code == PurchaseCode.AUTH_OK)) {</p><p><b> /**</b></p><p> * BILL_SUCCEED,表示訂購(gòu)成功 AUTH_SUCCEED,表示該商品已經(jīng)訂購(gòu)。</p><p><b> */</b></p><p> resu
49、lt = "訂購(gòu)結(jié)果:訂購(gòu)成功。";</p><p><b> } else {</b></p><p><b> /**</b></p><p><b> * 表示訂購(gòu)失敗。</b></p><p><b> */</b>&l
50、t;/p><p> result = "訂購(gòu)結(jié)果:" + Purchase.getReason(code);</p><p><b> }</b></p><p> message.obj = result;</p><p> message.sendToTarget();</p>
51、<p><b> }</b></p><p><b> //查詢結(jié)束接口</b></p><p><b> @Override</b></p><p> public void onQueryFinish(int code, HashMap arg1) {</p>&l
52、t;p> Log.d(TAG, "license finish, status code = " + code);</p><p> Message message = iapHandler.obtainMessage(IAPHandler.QUERY_FINISH);</p><p> String result = "查詢成功,該商品已購(gòu)買&q
53、uot;;</p><p> if (code != PurchaseCode.QUERY_OK) {</p><p><b> /**</b></p><p><b> * 查詢不成功</b></p><p><b> */</b></p><p&
54、gt; result = "查詢結(jié)果:" + Purchase.getReason(code);</p><p><b> } else {</b></p><p> String leftDay = (String) arg1.get(OnPurchaseListener.LEFTDAY);</p><p> if
55、 (leftDay != null && leftDay.trim().length() != 0) {</p><p> result = result + ",剩余時(shí)間 : " + leftDay;</p><p><b> }</b></p><p> String orderID =(Strin
56、g)arg1.get(OnPurchaseListener.ORDERID);</p><p> if (orderID != null && orderID.trim().length() != 0) {</p><p> result = result + ",OrderID : " + orderID;</p><p>
57、<b> }</b></p><p><b> }</b></p><p> message.obj = result;</p><p> message.sendToTarget();</p><p><b> }</b></p><p>&
58、lt;b> //退訂接口:</b></p><p> public void onUnsubscribeFinish(int code) {</p><p> // TODO Auto-generated method stub</p><p> String result = "退訂結(jié)果:" + Purchase.ge
59、tReason(code);</p><p> System.out.println(result);</p><p> context.dismissProgressDialog();</p><p><b> }</b></p><p><b> SDK初始化</b></p>
60、<p> 本SDK初始化很簡(jiǎn)單,只需要實(shí)例化SDK中Purchase類即可,再根據(jù)APP的實(shí)際情況設(shè)置相應(yīng)的參數(shù)。Demo中的代碼如下:</p><p><b> @Override</b></p><p> public void onCreate(Bundle savedInstanceState) {</p><p>
61、<b> 。</b></p><p><b> 。</b></p><p><b> 。</b></p><p><b> 。</b></p><p><b> /**</b></p><p> *
62、 IAP組件初始化.包括下面3步。</p><p><b> */</b></p><p><b> /**</b></p><p> * step1.實(shí)例化PurchaseListener。實(shí)例化傳入的參數(shù)與您實(shí)現(xiàn)PurchaseListener接口的對(duì)象有關(guān)。</p><p> * 例如
63、,此Demo代碼中使用IAPListener繼承PurchaseListener,其構(gòu)造函數(shù)需要Context實(shí)例。</p><p><b> */</b></p><p> listener = new IAPListener(this, iapHandler);</p><p><b> /**</b></
64、p><p> * step2.實(shí)例化Purchase對(duì)象。在實(shí)例化Purhcase對(duì)象后,必須為purchase實(shí)例setAppInfo </p><p> *接口。該接口函數(shù)需要傳入APPID,APPKEY。</p><p><b> */</b></p><p> purchase = Purchase.getI
65、nstance();</p><p><b> try {</b></p><p> purchase.setAppInfo(APPID, APPKEY);</p><p> } catch (Exception e1) {</p><p> e1.printStackTrace();</p>&l
66、t;p><b> }</b></p><p><b> /**</b></p><p> * step3.IAP組件初始化開始,</p><p> * 參數(shù)PurchaseListener,初始化函數(shù)需傳入step1時(shí)實(shí)例化的onPurchaseListener。</p><p>&l
67、t;b> */</b></p><p> purchase.init(listener);。</p><p><b> 。</b></p><p><b> 。</b></p><p><b> }</b></p><p>
68、;<b> 。</b></p><p><b> 。</b></p><p><b> 。</b></p><p> private void showProgressDialog(String text) {</p><p> if (mProgressDialog
69、 == null) {</p><p> mProgressDialog = new ProgressDialog(Demo.this);</p><p> mProgressDialog.setIndeterminate(true);</p><p> LayoutInflater inflater = getLayoutInflater();</p&
70、gt;<p> View view = inflater.inflate(R.layout.layout, null);</p><p> mProgressDialog.setView(view);</p><p> mProgressDialog.setMessage("請(qǐng)稍后.....");</p><p><b&
71、gt; }</b></p><p> if (!mProgressDialog.isShowing()) {</p><p> mProgressDialog.show();</p><p><b> }</b></p><p><b> }</b></p>&l
72、t;p> Demo中Purhcase類實(shí)例化后,設(shè)置了網(wǎng)絡(luò)超時(shí)和SDK的init接口。</p><p> 如果不設(shè)置網(wǎng)絡(luò)超時(shí),則默認(rèn)網(wǎng)絡(luò)超時(shí)為10s,建議按默認(rèn)值,如果設(shè)置的話,建議設(shè)置5s以上,12s以內(nèi)。如果不調(diào)用init接口,則用戶在訂購(gòu)解密將等待較長(zhǎng)時(shí)間,建議在APP初始化或者數(shù)據(jù)加載過(guò)程中調(diào)用此函數(shù)。</p><p> SDK訂購(gòu),查詢,退訂接口的調(diào)用</p&g
73、t;<p><b> 1)訂購(gòu)接口調(diào)用</b></p><p> 訂購(gòu)分為租賃,永久性購(gòu)買,可重復(fù)購(gòu)買這三種類型的訂購(gòu),各類型根據(jù)paycode來(lái)區(qū)分。此版本應(yīng)用內(nèi)計(jì)費(fèi)SDK包含有4個(gè)訂購(gòu)接口</p><p><b> 簡(jiǎn)化版訂購(gòu)接口</b></p><p> - (void)SubscribeAPI
74、:(NSString*)payCode</p><p> 需要傳入payCode,此接口可以訂購(gòu)單件商品。 在回調(diào)API接口將會(huì)返回此次交易的交易ID。用戶或者開發(fā)者可以通過(guò)此交易ID去查詢交易是否成功。</p><p> 注:此接口不能用作租賃類型的續(xù)訂接口。</p><p><b> 一般性訂購(gòu)接口</b></p>&l
75、t;p> - (void)SubscribeAPI:(NSString*)payCode OrderCount:(int)orderCount;</p><p> 此接口和簡(jiǎn)化版接口相比,增加了一個(gè)int型參數(shù),也就是指此接口支持一次訂購(gòu)多件商品。</p><p> 用戶可透?jìng)鲾?shù)據(jù)的訂購(gòu)接口</p><p> -(void)SubscribeAPI:(
76、NSString*)payCode OrderCount:(int)orderCount EXDATA:(NSString*)EXDATA; </p><p> 此接口增加了一個(gè)NSString型參數(shù),是給用戶透?jìng)鞯椒?wù)器的自定義數(shù)據(jù),字符串?dāng)?shù)據(jù)類型。</p><p><b> 2)查詢接口調(diào)用</b></p><p> 此版本應(yīng)用
77、內(nèi)計(jì)費(fèi)的查詢分為兩個(gè)接口。一個(gè)是根據(jù)交易ID查詢,查詢?cè)摻灰资欠翊嬖凇A硪粋€(gè)是根據(jù)paycode查詢,查詢當(dāng)前商品是否已經(jīng)訂購(gòu)。</p><p><b> 根據(jù)交易ID查詢</b></p><p> -(void)SubQueryAPI:(NSString*)payCode TradeId:(NSString*)tradeId;</p><p&
78、gt; 使用交易ID查詢,主要目的是查詢?cè)摴P交易是否成功。例如,如果您記錄以前某次交易的交易ID,您可以根據(jù)此接口查詢是否交易成功。</p><p> 根據(jù)paycode查詢</p><p> - (void)SubQueryAPI:(NSString*)payCode;</p><p> 此版本與之前版本接口保持一致,用于查詢當(dāng)前商品狀態(tài)是否已經(jīng)訂購(gòu)。&l
79、t;/p><p> 注意:可重復(fù)計(jì)費(fèi)的商品訂購(gòu)成功30秒以后使用此查詢接口,將查不到已訂購(gòu)狀態(tài)。</p><p><b> 3)退訂接口調(diào)用</b></p><p> 根據(jù)計(jì)費(fèi)點(diǎn)進(jìn)行退訂,僅對(duì)包月類型計(jì)費(fèi)點(diǎn)有效</p><p> - (void)UnsubscribeAPI:(NSString*)payCode;&l
80、t;/p><p><b> 添加配置文件</b></p><p> 把mmiap.xml與CopyrightDeclaration.xml文件(此兩個(gè)文件在開發(fā)者社區(qū)自行下載)添加到工程中,具體如下:</p><p> 最后,檢查XCODE中是否可以看到剛才添加文件,如下圖2所示。如果可以,則表示配置成功,否則,請(qǐng)檢查上述步驟是否執(zhí)行成功。&
81、lt;/p><p> 如何在應(yīng)用內(nèi)計(jì)費(fèi)中使用有數(shù)</p><p> 有數(shù)(http://dev.10086.cn/datau/)是中國(guó)移動(dòng)開發(fā)者社區(qū)提供的數(shù)據(jù)采集和分析能力,通過(guò)嵌入應(yīng)用中的有數(shù)SDK,可采集用戶使用應(yīng)用的相關(guān)數(shù)據(jù),并通過(guò)有數(shù)平臺(tái)提供給開發(fā)者應(yīng)用分析服務(wù)。</p><p> 如需使用有數(shù)平臺(tái)提供的其他數(shù)據(jù)采集和分析功能(例如用戶終端信息、頁(yè)面路徑信
82、息、自定義事件分析、錯(cuò)誤事件分析等),可參考有數(shù)平臺(tái)相關(guān)介紹和有數(shù)開發(fā)指南。</p><p><b> 有數(shù)平臺(tái):</b></p><p> http://dev.10086.cn/datau/</p><p><b> 有數(shù)開發(fā)指南:</b></p><p> http://dev.100
83、86.cn/datau/modules/views/introduction/index.html?menu=sdk</p><p><b> 特別說(shuō)明:</b></p><p> 1. 應(yīng)用內(nèi)計(jì)費(fèi)已經(jīng)默認(rèn)嵌入了有數(shù)SDK,在初始化應(yīng)用內(nèi)計(jì)費(fèi)SDK之后,就已經(jīng)可以使用有數(shù)的各項(xiàng)功能了,開發(fā)者勿需再重復(fù)初始化有數(shù),若重復(fù)初始化有數(shù)可能會(huì)導(dǎo)致采集渠道信息異常。<
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- sap netweaver開發(fā)者指南
- 移動(dòng)開發(fā)者000期
- 微信開放平臺(tái)開發(fā)者服務(wù)協(xié)議
- android開發(fā)者指南(application_fundamentals)
- 2022開發(fā)者大會(huì)
- 蘋果開發(fā)者協(xié)議
- 微信公眾平臺(tái)開發(fā)者文檔
- 開源軟件社區(qū)開發(fā)者推薦的研究.pdf
- 2022百度ai開發(fā)者大會(huì) 知乎將出席2022ai開發(fā)者大會(huì),分享知識(shí)內(nèi)容平臺(tái)ai應(yīng)用創(chuàng)新
- 基于云服務(wù)平臺(tái)的應(yīng)用軟件商店開發(fā)者社區(qū)研究與實(shí)現(xiàn).pdf
- Linux內(nèi)核開發(fā)者協(xié)作模式研究.pdf
- ios開發(fā)者面試題庫(kù)
- 2022百度ai開發(fā)者大會(huì)
- 2022百度ai開發(fā)者大會(huì)
- 2022百度ai開發(fā)者大會(huì)[001]
- 2022百度ai開發(fā)者大會(huì)[001]
- 愛游戲open平臺(tái)v30開發(fā)者操作手冊(cè)
- 微軟開發(fā)者文檔網(wǎng)絡(luò)(Docs)閱讀體驗(yàn)設(shè)計(jì).pdf
- 中東游戲界生態(tài)開發(fā)者挑戰(zhàn)與機(jī)遇!
- 易傳媒奪魁互聯(lián)網(wǎng)大會(huì),移動(dòng)互聯(lián)網(wǎng)開發(fā)者自主平臺(tái)吸引眼球
評(píng)論
0/150
提交評(píng)論