和游戲網(wǎng)游SDK開發(fā)文檔Android版_第1頁
和游戲網(wǎng)游SDK開發(fā)文檔Android版_第2頁
和游戲網(wǎng)游SDK開發(fā)文檔Android版_第3頁
和游戲網(wǎng)游SDK開發(fā)文檔Android版_第4頁
和游戲網(wǎng)游SDK開發(fā)文檔Android版_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、和游戲網(wǎng)游SDK開發(fā)文檔(Android版)2014年12月23日文件狀態(tài):草稿正式發(fā)布,止在修改文件標(biāo)識(shí):當(dāng)前版本:V2.2.2完成日期:2014-12-23文檔版本歷史版本/狀態(tài)起止日期備注2.2.22014-12-23修訂內(nèi)容:修訂3.3初始化接口刪除3.4.2和3.4.3接口,原接口能力移植到3.3擴(kuò)展參數(shù)中實(shí)現(xiàn)修訂3.6.2章節(jié),折展叱重載接口修訂3.9.3章書,同步更新Unity腳本接口目錄1引言31.1 介紹.3.1.2 術(shù)語及縮略詞.4.2總體概述42.1 總體流程42.2 集成步驟63詳細(xì)接口85.1 應(yīng)用程序加載接口85.2 游戲啟動(dòng)接口9游戲啟動(dòng)畫面配置9游戲音效接口95

2、.3 游戲初始化接口 登錄流程及接口1.1.登錄流程1.1獲取登錄同步結(jié)果.125.5 更多游戲接口 計(jì)費(fèi)流程與接口14.計(jì)費(fèi)流程14計(jì)費(fèi)接口.16獲取付費(fèi)同步結(jié)果185.7 游戲分享接口20.5.8 游戲退出接口21.5.9 Unity3D游戲接口2.2.使用說明22集成方式22腳本接口234常見問題255附錄26游戲計(jì)費(fèi)文件26.平臺(tái)響應(yīng)狀態(tài)碼2.7.1引言1.1介紹本文檔的目的是為中國(guó)移動(dòng)游戲業(yè)務(wù)合作方開發(fā)Android網(wǎng)游提供說明指導(dǎo),對(duì)Android網(wǎng)游SDK勺集成方式和步驟進(jìn)行描述,介紹了游戲業(yè)務(wù)平臺(tái)與合作方游戲間的技術(shù)開發(fā)接口規(guī)范,以便于游戲開發(fā)商開發(fā)

3、游戲業(yè)務(wù)。本文檔主要包括以下幾方面內(nèi)容:中國(guó)移動(dòng)游戲基地安卓網(wǎng)游業(yè)務(wù)總體概述、Android網(wǎng)游系統(tǒng)結(jié)構(gòu)及流程說明、Android網(wǎng)游SDK集成步驟、Android網(wǎng)游SDK接口說明、合作方游戲服務(wù)器接口說明、Unity3D引擎游戲適配、常見問題等。本文檔適用于中國(guó)移動(dòng)游戲基地安卓網(wǎng)游SDK集成開發(fā)者本文檔參考了以下規(guī)范文檔最新版本:序號(hào)標(biāo)準(zhǔn)編號(hào)標(biāo)準(zhǔn)名稱發(fā)布單位1QB-D-XXX-XXXX中國(guó)移動(dòng)游戲業(yè)務(wù)設(shè)備規(guī)范中國(guó)移動(dòng)通信集團(tuán)公司2QB-D-XXX-XXXX中國(guó)移動(dòng)游戲業(yè)務(wù)接口規(guī)范中國(guó)移動(dòng)通信集團(tuán)公司3QB-D-XXX-XXXX中國(guó)移動(dòng)游戲業(yè)務(wù)總體技術(shù)要求中國(guó)移動(dòng)通信集團(tuán)公司4QB-D-XX

4、X-XXXX游戲業(yè)務(wù)平臺(tái)合作方開發(fā)規(guī)范中國(guó)移動(dòng)通信集團(tuán)公司5QB-E-XXX-XXXX中國(guó)移動(dòng)游戲大廳客戶端規(guī)范中國(guó)移動(dòng)通信集團(tuán)公司1.2術(shù)語及縮略詞詞語解釋CPContentProvider,內(nèi)容提供商HIIPHyperTextTransferProtocol,超文本傳輸協(xié)議ICON游戲業(yè)務(wù)的展示圖標(biāo)LOGO游戲業(yè)務(wù)內(nèi)容提供商、服務(wù)提供商的商標(biāo)OTAOverTheAir,空中無線下載技術(shù)SPServiceProvider,服務(wù)提供商SDKSoftwareDevelopmentKit的縮與,中文即軟件開發(fā)工具包”。廣義上指輔助開發(fā)某一類軟件的相關(guān)文檔、范例和工具的集合。XMLExtensibl

5、eMarkupLanguage,可才展標(biāo)記語后UAProfile由開放移動(dòng)聯(lián)盟提出,描述用戶終端的配置信息URLUniversalResourceLocator,統(tǒng)一資源定位符點(diǎn)數(shù)游戲業(yè)務(wù)平臺(tái)中進(jìn)行各種交易的通用貨幣計(jì)費(fèi)點(diǎn)游戲在平臺(tái)申報(bào)的激活點(diǎn)信息,包含:計(jì)費(fèi)點(diǎn)名稱、價(jià)格、及唯一標(biāo)識(shí)代碼等信息強(qiáng)制計(jì)費(fèi)點(diǎn)即一次性付費(fèi)的計(jì)費(fèi)點(diǎn),通常也是必須要付費(fèi)的計(jì)費(fèi)點(diǎn),否則用戶無法繼續(xù)使用游戲或者進(jìn)入下一關(guān)卡。非強(qiáng)制計(jì)費(fèi)點(diǎn)即可重復(fù)購買的計(jì)費(fèi)點(diǎn),通常是游戲中道具或金幣,用戶可以多次購買的計(jì)費(fèi)點(diǎn)。iGop游戲業(yè)務(wù)管理平臺(tái),完成CP資質(zhì)評(píng)審,游戲業(yè)務(wù)評(píng)審,測(cè)試及商用。游戲平臺(tái)游戲業(yè)務(wù)通過使用移動(dòng)游戲SD。之交互的核心

6、支付平臺(tái)。游戲服務(wù)器合作方按照移動(dòng)游戲規(guī)范自行實(shí)現(xiàn)的游戲服務(wù)器,用于完成向移動(dòng)游戲平臺(tái)進(jìn)行數(shù)據(jù)交互與通信的服務(wù)器。2總體概述總體流程總體流程圖總體流程說明合作方開發(fā)者需根據(jù)此總流程圖集成使用移動(dòng)游戲SDK必選流程:1、游戲應(yīng)用配置集成SDK必須先配置游戲運(yùn)行的必選配置(自定義Application)。此版本SDKB要游戲自定義Application類,加載SDK®心接口內(nèi)容。Application的定義與使用方式詳見3.1章節(jié)。2、游戲啟動(dòng)畫面集成移動(dòng)SDK0動(dòng)畫面(按照移動(dòng)游戲規(guī)范,游戲的首個(gè)啟動(dòng)畫面必須包含移動(dòng)游戲LOGO,啟動(dòng)畫面展現(xiàn)移動(dòng)LOGO啟動(dòng)畫面的具體集成方式詳見3.2

7、章節(jié)。啟動(dòng)畫面結(jié)束后,需要通過3.2.2接口獲得用戶是否開啟游戲背景音樂的選項(xiàng)。開發(fā)者根據(jù)此接口返回值設(shè)置游戲背景音樂。3、游戲初始化啟動(dòng)畫面結(jié)束后,進(jìn)入游戲內(nèi)容,合作方開發(fā)者需要對(duì)SDK!行初始化,即調(diào)用3.3章節(jié),調(diào)用此接口的同同時(shí),SD心進(jìn)行用戶登錄。該接口內(nèi)部會(huì)進(jìn)行用戶登錄,登錄流程及接口詳見3.4章節(jié)。4、游戲付費(fèi)用戶進(jìn)入游戲商店就行購買道具時(shí),進(jìn)入游戲付費(fèi)流程。付費(fèi)流程及接口詳見3.6章節(jié)。5、游戲退出用戶游戲結(jié)束后,選擇退出游戲,合作方開發(fā)者需要調(diào)用退出接口(3.7章節(jié))完成游戲退出邏輯??蛇x流程:按照移動(dòng)游戲接入規(guī)范,需要合作方在游戲主菜單添加關(guān)于、更多游戲等功能菜單。更多游戲

8、詳見3.5章節(jié)。集成步驟SDKFF發(fā)資源包:SDK目錄中包含SDK勺資源文件,請(qǐng)復(fù)制SDK目錄中的所有目錄與文件,并拷貝至各自的游戲工程中),如下:1)拷貝APIA)拷貝NativeAPI將SDK/libs目錄中的文件全部拷貝到游戲libs下。B)拷貝JAVAAPI將SDK/runtime目錄文件,直接復(fù)制到游戲根目錄下,切勿將runtime下面的jar文件放入libs下面編譯,否則會(huì)報(bào)編譯錯(cuò)誤,例如:badrange,(不同編譯環(huán)境均需要按照此要求引用此jar,如遇編譯問題,請(qǐng)參考章節(jié)4)。2)拷貝SDK資源A)將SDK/res文件夾中的內(nèi)容拷貝至游戲工程目錄中。B)將SDK/assets文

9、件夾中的所有文件拷貝至游戲相同的工程目錄中,不能刪除其中的任何文件,否則導(dǎo)致非正常運(yùn)行。3)添加SDK提供的Activity引用將SDKAndroidManifest.xml.activity.txt中的文本Copy到游戲的AndroidManifest.xml中。Activity的橫豎屏配置(android:screenOrientation),最好設(shè)置成游戲主界面的橫豎屏設(shè)置。4)添加SDK需要的use-permision將SDKAndroidManifest.xml.permision.txt中的文本Copy到游戲的AndroidManifest.xml注意:不要重復(fù)添加use-perm

10、ision項(xiàng)。5)為游戲主入口添加中國(guó)移動(dòng)游戲基地標(biāo)識(shí)(Intent-Filter)為游戲主入口Activity添加中國(guó)移動(dòng)游戲基地標(biāo)識(shí),如下:<intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></intent-filter><intent-filter><actionandroid:name=&

11、quot;ent.action.CHINAMOBILE_OMS_GAME"/><categoryandroid:name="ent.category.CHINAMOBILE_GAMES"/></intent-filter>注意:如果游戲的主入口Activity沒有添加移動(dòng)游戲標(biāo)識(shí),則測(cè)試會(huì)不通過。示例工程:(Sample目錄中為游戲計(jì)費(fèi)實(shí)現(xiàn)的實(shí)例,詳細(xì)的Sample程序源文件在Sample/GameSample文件夾下),請(qǐng)不要直接拷貝Sample的示例代碼,根據(jù)游戲時(shí)間情況,處理接口調(diào)用邏

12、輯。3詳細(xì)接口應(yīng)用程序加載接口游戲開發(fā)者在集成SDK務(wù)必先自定義全局Application。Application里面代碼必須包含,下行代碼(注意:該接口必須放在Application中進(jìn)行加載,不可放在Activity的onCreate中):System.loadLibrary("megjb");示例代碼如下:(注意:該類的package路徑應(yīng)用必須與AndroidManifest.xml中的一致,如下代碼示例中,黃色標(biāo)注,否則游戲無法正常啟動(dòng))。packagecn.cmgame.sdk;publicclassCmgameApplicationextendsApplica

13、tionpublicvoidonCreate()trySystem.loadLibrary("megjb");catch(Exceptione)AndroidManifest.xml中配置:<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http:package="cn.cmgame.sdk"android:versionCode="2"android:versionName="1.2&

14、quot;><applicationandroid:icon="drawable/icon"android:label="string/app_name"android:name=".CmgameApplication">游戲啟動(dòng)接口游戲啟動(dòng)畫面配置按照中國(guó)移動(dòng)合作方游戲接入規(guī)范,需要在游戲的首個(gè)啟動(dòng)頁面展現(xiàn)移動(dòng)游戲相關(guān)LOGO此規(guī)范要求SDK已經(jīng)自帶完成,游戲開發(fā)者只需要按照特定集成方式使用即可。具體使用方法:在AndroidManifest.xml中的主入口Activity配置為GameOpenActivity(

15、即SDK提供的游戲啟動(dòng)畫面的Activity)。游戲原來的主入口Activity請(qǐng)?zhí)砑拥絩es/values/g_strings.xml中的g_class_name字符串中,使得啟動(dòng)畫面完成后即啟動(dòng)游戲。例如:<stringname="g_class_name">your.game.ui.Entry</string>特殊說明:如果游戲使用的APILevel是小于等于3的情況,即:游戲是基于Android1.5及以下API版本開發(fā)的,那么還需要設(shè)置一個(gè)低版本標(biāo)識(shí),(API小于4的情況,Android本身不支持圖片自適配,故可能導(dǎo)致SDK中的界面元素被放

16、大,UI效果差)。<stringname="gc_billing_islow_version">true</string>,這樣SD0讀取該標(biāo)識(shí),并完成開機(jī)界面的自適配。游戲音效接口游戲啟動(dòng)的第一個(gè)界面(3.2.1章節(jié)),即:用戶選擇是否開啟音效界面,用戶選擇是,則游戲需要實(shí)現(xiàn)有背景音樂的邏輯,否則反之,游戲開發(fā)者可根據(jù)此接口判斷用戶是否選擇了開啟音效:接口定義booleanGameInterface.isMusicEnabled()返回值返回false,則游戲中應(yīng)關(guān)閉音效,否則開啟。游戲初始化接口游戲的初始化是實(shí)現(xiàn)游戲計(jì)費(fèi)的必須操作。在游戲啟動(dòng)之后

17、計(jì)費(fèi)之前,務(wù)必調(diào)用如下方法,否則無法使用計(jì)費(fèi)功能。該接口提供2個(gè)重載方法,如果合作伙伴希望自定義計(jì)費(fèi)界面的游戲名稱,游戲提供商及客服電話信息(SDK默認(rèn)采用平臺(tái)上申報(bào)業(yè)務(wù)時(shí)填寫的客服電話),可以調(diào)用重載接口2實(shí)現(xiàn)。接口定義voidGameinterface.initializeApp(Activitymain);voidGameinterface.initializeApp(Activitymain,StringgameName,Stringprovider,StringserviceTel,StringloginNo,ILoginCallbackcallback);參數(shù)定義參數(shù)名稱意義注釋:

18、actActivity游戲項(xiàng)目的上卜文環(huán)境該Activity需要在游戲運(yùn)行期1啊能被finish掉,否則計(jì)費(fèi)會(huì)出現(xiàn)不可預(yù)知問題gameNameString移動(dòng)計(jì)費(fèi)界面展現(xiàn)的游戲名稱傳null時(shí),SDK#用平臺(tái)申報(bào)的業(yè)務(wù)名稱providerString移動(dòng)計(jì)費(fèi)界面展現(xiàn)的游戲提供商名稱傳null時(shí),SDK#用平臺(tái)中合作伙伴管理欄目中填寫的內(nèi)容提供商名稱serviceTelString移動(dòng)計(jì)費(fèi)界面展現(xiàn)的客服電話大多數(shù)情況,不需要指定該值,SDK會(huì)從使用平臺(tái)上業(yè)務(wù)申報(bào)時(shí)指定的客服電話loginNoString擴(kuò)展參數(shù):和游戲用戶登錄流水號(hào),可以通過此參數(shù)根據(jù)3.4.1章節(jié)的登錄流程,同核心平臺(tái)父互獲得

19、和游戲用戶的登錄信息。若游戲服務(wù)器無需同平臺(tái)交互登錄數(shù)據(jù),此字段可為null該參數(shù)非空時(shí)必須16個(gè)字節(jié),請(qǐng)勿包含SDK保留字符,如:“&=”另,其中不能含有空J(rèn)格,同時(shí)盡量避免使用特殊字符callbackILoginCallback登錄結(jié)果的回調(diào)接口。根據(jù)3.4.1的登錄流程,SD磔起和游戲用戶登錄請(qǐng)求,核心平臺(tái)將登錄結(jié)果同時(shí)返回給SDK及游戲resultCode:登錄結(jié)果。在SDK中使用常量類進(jìn)行定義,即:LoginResultLoginResult.UNKOWN用戶沒有發(fā)起登錄(如網(wǎng)絡(luò)原因,服務(wù)器,返回給游戲客戶端(SDK的登錄數(shù)據(jù)僅僅包含和游戲賬號(hào)UID。若無需監(jiān)聽和游戲賬號(hào)登錄

20、結(jié)果,此參數(shù)可直接傳null回調(diào)方法:onResult(intresultCode,StringuserId,Objectobj);或者用戶取消登錄)LoginResult.SUCCESS_IMPLICIT隱式登錄成功。LoginResult.FAILED_IMPLICIT隱式登錄失敗。LoginResult.SUCCESS_EXPLICIT顯式登錄成功。LoginResult.FAILED_EXPLICIT顯式登錄失敗。userId:即為移動(dòng)用戶UID。obj:擴(kuò)展額外參數(shù)。登錄流程及接口登錄流程該登錄流程是移動(dòng)游戲用戶登錄移動(dòng)用戶中心體系的過程。業(yè)務(wù)流程圖:3a、同步登陸信息1、下載客戶端

21、返回登陸結(jié)果2、登陸請(qǐng)求客戶端流程描述:D用戶下載安裝移動(dòng)游戲:用戶從移動(dòng)線上渠道或其他渠道下載已商用的游戲2)用戶登錄:用戶安裝完成后啟動(dòng)游戲,集成此游戲SDK勺游戲會(huì)向游戲平臺(tái)發(fā)送登錄請(qǐng)求,游戲平臺(tái)驗(yàn)證當(dāng)前用戶的登錄請(qǐng)求是否合法有效,并進(jìn)行用戶登錄。具體:登錄的請(qǐng)求由SDK!動(dòng)發(fā)起(即在3.3接口中完成)。3)登錄結(jié)果通知:a)游戲平臺(tái)把登錄結(jié)果返回給游戲服務(wù)器(服務(wù)器通過登錄同步UR接口獲得)。b)游戲平臺(tái)把登錄結(jié)果返回給游戲客戶端(客戶端通過登錄結(jié)果監(jiān)聽接口獲得,詳見:3.3接口中的擴(kuò)展登錄結(jié)果參數(shù))4)游戲客戶端同游戲服務(wù)器交互:此步驟由游戲開發(fā)者自選是否需要執(zhí)行。如果游戲希望從移動(dòng)

22、游戲平臺(tái)獲得更多的用戶數(shù)據(jù),則可以通過該步驟從自身游戲服務(wù)器提取。客戶端與服務(wù)器的每次登錄憑證或流水號(hào)可以通過設(shè)置登錄透?jìng)鲄?shù)接口(3.3章節(jié))完成。獲取登錄同步結(jié)果按照3.4.1登錄流程:合作方可以通過此接口獲得游戲平臺(tái)同步的用戶偽碼(userid),網(wǎng)游事務(wù)ID,合作方ID,計(jì)費(fèi)代碼,渠道代碼,透?jìng)鲄?shù),用戶歸屬地,用戶終端等額外擴(kuò)展信息。該接口由游戲平臺(tái)主動(dòng)調(diào)用游戲服務(wù)器提供的URLM址,并通過GEDT式透?jìng)饔脩舻卿浗Y(jié)果。故:游戲提供商需要在iGop上申報(bào)網(wǎng)游業(yè)務(wù)時(shí),指定該登錄同步URL接口地址:http:/indexURL?userId=xxx&key=xxx&cpId

23、=xxx&cpServiceId=xxx&channelId=xxx&p=xxx&region=xxx&Ua=xxx注:indexURL即為是網(wǎng)游合作方在業(yè)務(wù)申報(bào)時(shí)在iGop上提交的用戶信息同步URL(IGOP平臺(tái)游戲信息頁中顯示截圖)同步USERIDURL:25:18688/iGop/inde提交方式:GET相關(guān)參數(shù):參數(shù)名稱重要性回長(zhǎng)度(字節(jié))描述信息userIdMString10用戶偽碼keyMString24用戶登錄網(wǎng)游的事務(wù)ID。cpIdMString6合作方IDcpServiceIdMString12計(jì)費(fèi)代

24、碼channelIdMString88位渠道代碼pOString16透?jìng)鲄?shù)(即2.3.2接口設(shè)置的登錄透?jìng)鲄?shù))regionOString30用戶歸屬地信息UaMString用戶手機(jī)型號(hào)(短UA形式),如用戶手機(jī)型號(hào)為MOT-MOTORAZRV8_CMCC0linuxOS/2.6.10Release/06.30.2007.Browser/Opera8.50Profile/MIDP-2.0Configuration/CLDC-1.1software/R601_G_90.44.2BR貝U平臺(tái)傳遞ua為MOT-MOTORAZRV8合作方接口的返回值:合作方游戲服務(wù)器,收到游戲平臺(tái)提供的登錄結(jié)果同步

25、數(shù)據(jù)后,應(yīng)立即給出響應(yīng),否則整個(gè)登錄過程會(huì)被阻塞,則游戲平臺(tái)認(rèn)為登錄失敗。返回內(nèi)容為普通文本,內(nèi)容如下:Content-Type:text/plain;charset=UTF8rContent-Length:xxrr0更多游戲接口按照中國(guó)移動(dòng)合作方游戲接入規(guī)范,游戲主菜單需要添加更多游戲入口。點(diǎn)擊此按鈕,需調(diào)用如下接口實(shí)現(xiàn)更多游戲邏輯。接口定義voidGameinterface.viewMoreGames(Contextcontext);參數(shù)定義參數(shù)名稱意義注釋:contextContext游戲項(xiàng)目的上卜文環(huán)境計(jì)費(fèi)流程與接口計(jì)費(fèi)流程業(yè)務(wù)流程業(yè)務(wù)流程說明D用戶發(fā)起購買請(qǐng)求:用戶使用移動(dòng)游戲,出發(fā)

26、購買道具流程。按照上面流程圖,短信方式購買道具時(shí),用戶的付費(fèi)請(qǐng)求將先送到短信網(wǎng)關(guān)進(jìn)行處理,再送達(dá)游戲平臺(tái)。如果用戶當(dāng)前不具備短信發(fā)送條件,例如無卡或者異網(wǎng)用戶,則付費(fèi)方式采用HTTFW絡(luò)請(qǐng)求方式,直接送達(dá)至游戲平臺(tái)。2)游戲平臺(tái)處理付費(fèi)請(qǐng)求:游戲平臺(tái)收到付費(fèi)請(qǐng)求后,進(jìn)行處理,鑒權(quán),驗(yàn)證等邏輯,對(duì)于合法的付費(fèi)請(qǐng)求將允許付費(fèi),并向游戲服務(wù)器同步付費(fèi)結(jié)果。3)付費(fèi)結(jié)果提示:無論是短信方式還是HTTP方式發(fā)起的付費(fèi)請(qǐng)求,付費(fèi)成功后,游戲平臺(tái)將會(huì)把扣費(fèi)成功的短信下行給用戶。4)道具使用:游戲客戶端與自身游戲服務(wù)器進(jìn)行交互,完成道具發(fā)放邏輯。處理流程合作方服務(wù)器游戲平臺(tái)終端用戶請(qǐng)求消息鑒權(quán)計(jì)費(fèi)處理處理流程

27、描述結(jié)合業(yè)務(wù)流程,可以將一次用戶的購買行為,按照接口調(diào)用順序分為:1)用戶觸發(fā)付費(fèi),游戲開發(fā)者中調(diào)用SDK寸費(fèi)接口(3.6.2章節(jié))。2)SDK!過短彳S(或HTTP方式上行付費(fèi)請(qǐng)求,并送至游戲平臺(tái)。游戲平臺(tái)處理付費(fèi)請(qǐng)求,并向游戲服務(wù)器發(fā)送付費(fèi)結(jié)果通知。3)游戲開發(fā)者監(jiān)聽付費(fèi)結(jié)果通知(通知接口見3.6.3),并根據(jù)付費(fèi)結(jié)果處理業(yè)務(wù)使用(道具發(fā)放)邏輯。362計(jì)費(fèi)接口按照上述業(yè)務(wù)及處理流程,用戶觸發(fā)道具購買時(shí),游戲開發(fā)者調(diào)用如下接口,完成計(jì)費(fèi)計(jì)費(fèi)請(qǐng)求的發(fā)送,通過不同的參數(shù)值完成各種計(jì)費(fèi)要求。SDK提供的支付界面是全屏模式的,如果希望展現(xiàn)對(duì)話框(非全屏緊湊型)支付界面,可以調(diào)用重載支付接口,傳遞不

28、同參數(shù)實(shí)現(xiàn)。如果游戲希望在計(jì)費(fèi)結(jié)束,比如計(jì)費(fèi)成功、失敗或用戶取消計(jì)費(fèi)后,處理自定義的邏輯,需實(shí)現(xiàn)IPayCallback回調(diào)。(特殊說明:對(duì)于網(wǎng)游業(yè)務(wù),下放道具的處理邏輯,不應(yīng)根據(jù)IPayCallback的回調(diào)結(jié)果,實(shí)際上必須根據(jù)游戲平臺(tái)的付費(fèi)結(jié)果通知。例如:對(duì)于短信計(jì)費(fèi),SDK的IPayCallback給出的付費(fèi)結(jié)果只是短信發(fā)送成功,并不是真正的付費(fèi)成功)0注:如果是權(quán)益類道具(由游戲合作方申報(bào)計(jì)費(fèi)點(diǎn)時(shí)指定為:權(quán)益道具,并由產(chǎn)品經(jīng)理確認(rèn),除此之外,都是普通道具),則需要調(diào)用重載計(jì)費(fèi)接口,即:第三個(gè)參數(shù)propsType為PropsType.RIGHTS。止匕時(shí),billingCallback

29、的onResult結(jié)果若為成功,應(yīng)下放道具給用戶。接口定義voidGameInterface.doBilling(Contextcontext,booleanuseSms,booleanisRepeated,StringbillingIndex,StringcpParam,IPayCallbackbillingCallback);voidGameInterface.doBilling(Contextcontext,StringcpParam,IPayCallbackbillingCallback);intuiType,intpropsType,StringbillingIndex,參數(shù)定義參數(shù)

30、名稱意義注釋:contextContext觸發(fā)計(jì)費(fèi)接口的Context對(duì)象計(jì)費(fèi)UI修改為dialog展現(xiàn)模式,故需要游戲開發(fā)者調(diào)用接口時(shí)傳遞當(dāng)前context參數(shù)useSmsboolean選擇采用短信方式發(fā)起付費(fèi),還是HIIPtrue:短酬計(jì)費(fèi),false:聯(lián)網(wǎng)計(jì)費(fèi)。此參數(shù),無特殊要求,均應(yīng)填true。isRepeatedboolean該計(jì)費(fèi)點(diǎn)是否是非強(qiáng)制計(jì)費(fèi)點(diǎn)(見1.2章節(jié))如果該參數(shù)傳遞true,表小本次計(jì)費(fèi)的計(jì)費(fèi)點(diǎn)是可重復(fù)計(jì)費(fèi)的計(jì)費(fèi)點(diǎn),SDK不自動(dòng)保存計(jì)費(fèi)標(biāo)志位;傳遞false則升-次住計(jì)費(fèi)的計(jì)費(fèi)點(diǎn),SDK將自動(dòng)保存計(jì)費(fèi)標(biāo)志位,用戶卜一次玩到該計(jì)費(fèi)點(diǎn)時(shí),/、會(huì)重復(fù)跳出計(jì)費(fèi)界面。uiTyp

31、eint界面類型:全屏界面和非全屏界面詳見UiType類的常量定義:UiType.FULLSCREEN支付界面是全屏,遮住游戲畫面UiType.COMPACT;±付界面是非全屏緊湊,浮于游戲畫面上方propsTypeint道具類型:1、強(qiáng)制計(jì)費(fèi)點(diǎn)2、普通計(jì)費(fèi)點(diǎn)4、權(quán)益道具詳見PropsType類的常量1:PropsType.ONCE_ONLY,弓雖制計(jì)費(fèi)點(diǎn)2:PropsType.NORMAL,強(qiáng)制皿點(diǎn)4:PropsType.RIGHTS,權(quán)益道具計(jì)費(fèi)點(diǎn)如果無特殊要求,請(qǐng)忽略此參數(shù)及重載接口定義billingindexString計(jì)費(fèi)點(diǎn)索引游戲中設(shè)置的計(jì)費(fèi)點(diǎn)索引,對(duì)應(yīng)于中國(guó)移動(dòng)游戲基地

32、游戲平臺(tái)該游戲內(nèi)容下“激活點(diǎn)信息”中的“激活點(diǎn)計(jì)費(fèi)代碼”的后三位(見卜面激活點(diǎn)代碼截圖)。該計(jì)費(fèi)點(diǎn)計(jì)費(fèi)代碼的后三位為"000"則billingindex設(shè)置為“000”,若該計(jì)費(fèi)點(diǎn)計(jì)費(fèi)代碼的后三位為001則billingindex設(shè)置為“001”,以此類推。cpParamString每次付費(fèi)的付費(fèi)流水號(hào)(即可理解為交易訂單號(hào))透?jìng)鲄?shù)(16byte),此參數(shù)由合作方指定,旨在定義客戶端發(fā)起付費(fèi),最終從服務(wù)器通過該參數(shù)付費(fèi)結(jié)果?!驹谟?jì)費(fèi)完成后游戲平臺(tái)會(huì)將計(jì)費(fèi)結(jié)果及此參數(shù)一并同步到網(wǎng)游服務(wù)器計(jì)費(fèi)結(jié)果地址上去】。該參數(shù)必須16個(gè)字節(jié),請(qǐng)勿包含SDK保留字符,如:“&=”另

33、,其中不能含有空格,同時(shí)盡量避免使用特殊字符billingCallbackIPayCallback計(jì)費(fèi)結(jié)果的回調(diào)邏輯BillingResult.SUCCESS:計(jì)費(fèi)成功的回調(diào)處理(對(duì)于網(wǎng)游業(yè)務(wù),不應(yīng)使用該狀態(tài)值卜-放道具給用戶,對(duì)于擔(dān)/付費(fèi),此值僅表示短信發(fā)送成功,不是真實(shí)的付費(fèi)成功)BillingResult.FAILED計(jì)費(fèi)失敗后的回調(diào)處理(如果需要知道更多的失敗原因及信息,可參見附錄5.2章節(jié))BillingResult.CANCELLED用戶不進(jìn)行計(jì)費(fèi)的回調(diào)處理計(jì)費(fèi)點(diǎn)代碼說明中國(guó)移動(dòng)游戲基地游戲平臺(tái)游戲內(nèi)容下“激活點(diǎn)信息”中的“激活點(diǎn)計(jì)費(fèi)代碼”的后三位示例,計(jì)費(fèi)點(diǎn)“激活游戲”的代碼后三

34、位為“001”,計(jì)費(fèi)點(diǎn)“超級(jí)彈簧”的代碼后三位為“004”試玩轉(zhuǎn)激活多點(diǎn)內(nèi)容信息一遍方式信皂.活點(diǎn)信息定儕信息內(nèi)答數(shù)法點(diǎn)信息避話點(diǎn)計(jì)謂代眄遜話點(diǎn)名瓊逆話點(diǎn)種類通話訐堂方式計(jì)的點(diǎn)他格操作160121211D0I同舌落或聯(lián)網(wǎng)計(jì)費(fèi)蝴400C點(diǎn))直看16012131:302升纓力里上f艮裒網(wǎng)計(jì)矍劇100圓查看一164)12131;!303出加命熱聯(lián)網(wǎng)計(jì)費(fèi)靛300C點(diǎn))直看16012131304超孤彈簧次網(wǎng)讓疑融200(點(diǎn))苣看16O1213t:|005多借信分底網(wǎng)計(jì)費(fèi)刷100道看后避調(diào)用示例(詳見附件示例DEMO)IPayCallbackbillingCallback=newIPayCallback(

35、)OverridepublicvoidonResult(intresultCode,StringbillingIndex,Objectarg)/游戲業(yè)務(wù)收到付費(fèi)結(jié)果后的處理邏輯;GameInterface.doBilling(this,true,false,“000”,“2013101610121270”,billingCallback);3.6.3獲取付費(fèi)同步結(jié)果按照3.6.1業(yè)務(wù)流程中的步驟4,游戲客戶端需要同自身游戲服務(wù)器進(jìn)行數(shù)據(jù)交互,對(duì)于付費(fèi)流程,即向服務(wù)器提取付費(fèi)結(jié)果。從而處理道具下放業(yè)務(wù)邏輯。此接口由合作方提供,游戲平臺(tái)會(huì)將玩家通過短信購買道具的結(jié)果通知給合作方。報(bào)文中包括購買成功

36、和購買失敗的結(jié)果信息。需要獲得計(jì)費(fèi)結(jié)果的合作方,要提供一臺(tái)具備獨(dú)立IP的服務(wù)器,并且按照規(guī)范提供付費(fèi)結(jié)果同步URL信息。接口地址http:/billingURL注:billingURL即為是網(wǎng)游合作方在業(yè)務(wù)申報(bào)時(shí)在iGop上提交的付費(fèi)通知URL(在iGop平臺(tái)上,游戲信息頁中顯示截圖):計(jì)費(fèi)通向URL:Mtp;/192,168.19A25;18688/iGop/ind接口方向游戲平臺(tái)調(diào)用游戲服務(wù)器。提交方式POST請(qǐng)求消息體<?xmlversion="1.0"encoding="UTF-8"?><request><userI

37、d>xxx</userId><contentId>000000000000</contentId><consumeCode>000000000000</consumeCode><cpid>701010</cpid><hRet>0</hRet><status>1800</status><versionId>xxx</versionId><cpparam>xxx</cpparam><packageID>

38、</packageID></request>參數(shù)說明標(biāo)識(shí)符重要性何長(zhǎng)度(字節(jié))描述userIdMString10用戶偽碼contentIdMString12計(jì)費(fèi)代碼consumeCodeMString12道具計(jì)費(fèi)代碼cpIdMString6合作代碼hRetMString1平臺(tái)計(jì)費(fèi)結(jié)果(狀態(tài)碼外碼)0-成功其他-失敗statusMString4返回狀態(tài)(內(nèi)碼),詳見5.2章節(jié)versionidMString5版本號(hào)2_0_0,統(tǒng)一填寫2_0_0cpparamOString16CP透#數(shù),向2.7.2章節(jié)中的付費(fèi)接口參數(shù)一致。packageiDOString12套餐包ID(

39、非局?jǐn)?shù)據(jù)ID)游戲服務(wù)器的返回響應(yīng)值標(biāo)識(shí)符重要性長(zhǎng)度(字節(jié))描述hRetMString10-通知成功;其它-其他錯(cuò)誤messageOString24CP響應(yīng)的消息,比如“Successful”或是合作方自定義的失敗原因。游戲分享接口在游戲中實(shí)現(xiàn)截屏分享功能,需要在游戲界面設(shè)置入口按鈕,點(diǎn)擊即進(jìn)入游戲分享界面。調(diào)用該接口實(shí)現(xiàn):接口定義voidGameinterface.doScreenShotShare(Contextcontext,Uriuri);參數(shù)定義參數(shù)名稱意義注釋:contextContext觸發(fā)游戲分享接口的Context對(duì)象分享UI修改為dialog展現(xiàn)模式,故需要游戲開發(fā)者調(diào)用接

40、口時(shí)傳遞當(dāng)前context參數(shù)uriUri游戲自身截屏,本地保存的圖片Uri路徑游戲自身實(shí)現(xiàn)截屏功能,保存截屏圖片至本地目錄,需游戲開發(fā)者傳遞保存的圖片Uri參數(shù);若游戲不實(shí)現(xiàn)截屏功能,此參數(shù)為null,SDK默認(rèn)實(shí)現(xiàn)截屏功能,截屏失敗,使用游戲ICON游戲退出接口按照中國(guó)移動(dòng)合作方游戲接入規(guī)范,游戲退出時(shí)需要按規(guī)范要求實(shí)現(xiàn)游戲退出邏輯及節(jié)目展現(xiàn)。此要求,同樣SDIC經(jīng)內(nèi)部實(shí)現(xiàn),即通過調(diào)用此接口即可完成。接口定義voidGameinterface.exit(Contextcontext,GameExitCallbackcallback);參數(shù)定義參數(shù)名稱意義注釋:contextContext觸

41、發(fā)該接口的應(yīng)用上卜文劃、境callbackGameExitCallback用戶在退出界面回調(diào)處理接口。開發(fā)者需要實(shí)現(xiàn)其中的接口方法:onConfirmExit。和onCancelExit(>onConfirmExit()表小用戶確認(rèn)退出操作的接口方法,這里面通常是資源釋放代碼。onCancelExit()表示用戶取消退出,此時(shí)需要回到原游戲界面。調(diào)用示例Gameinterface.exit(BillingDemo.this,newGameExitCallback()OverridepublicvoidonConfirmExit()/確認(rèn)退出邏輯)OverridepublicvoidonC

42、ancelExit()/取消退出邏輯)Unity3D游戲接口使用說明1)本章節(jié)適用于使用Unity3D游戲引擎的游戲提供商。其他游戲可忽略本章節(jié)。2)查看本章節(jié)內(nèi)容前,請(qǐng)先務(wù)必仔細(xì)閱讀章節(jié)3的前面章節(jié)內(nèi)容。3)使用Unity3D游戲集成移動(dòng)SDK的開發(fā)者需要具備AndroidOS基礎(chǔ)知識(shí)。3.9.2集成方式1)復(fù)制資源文件下。將SDKassets目錄中的文件復(fù)制到將SDKres目錄中的文件復(fù)制到下。將SDKruntime目錄中的文件復(fù)制到AssetsPluginsAndroidruntime下。止匕jar切記不能編譯到APK中。將SDKUnity3d目錄中的CMBillingForUnity.

43、jar復(fù)制到AssetsPluginsAndroidlibs目錄下。止匕jar必須編譯到APK中。請(qǐng)將g_strings.xml中的g_class_name配置為游戲真實(shí)的入口地址,默認(rèn)是com.unity3d.player.UnityPlayerActivity添加Application定義,詳見3.1章節(jié),將自定義的applicationjavaclass導(dǎo)出一個(gè)jar,放入libs目錄即可。2)編輯配置文件編輯AndroidManifest.xml文件,將開機(jī)動(dòng)畫設(shè)置為游戲入口Activity,對(duì)真實(shí)的游戲入口進(jìn)行配置,同時(shí)加上必須的權(quán)限配置。1)添加SDK1供的Activity引用中的

44、文本Copy到游戲的中中的文本Copy到游戲的中(注意重復(fù)內(nèi)容)將SDKAndroidManifest.xml.activity.txtAssetsPluginsAndroidAndroidManifest.xml2)添加SDKS要的user-permision將SDKAndroidManifest.xml.permision.txtAssetsPluginsAndroidAndroidManifest.xml3.93腳本接口該章節(jié)中的接口,是對(duì)SDK原始JavaAPI的簡(jiǎn)單封裝,游戲開發(fā)者可以根據(jù)自身游戲業(yè)務(wù)需要,自行封裝C#或JavaScript腳本接口。也可使用SDK自帶的腳本接口。添加

45、SDKI供的C#卻本文件將SDKUnity3DCmBillingAndroid.cs文件Copy到中。1)應(yīng)用程序加載接口同3.1章節(jié)。2)游戲啟動(dòng)接口流程及描述同3.2章節(jié)。3.2.2游戲音效接口定義差異:boolCmBillingAndroid.Instance.IsMusicEnabled();3)游戲初始化接口流程及描述同2.5章節(jié)。接口定義差異:voidCmBillingAndroid.Instance.InitializeApp();如果需要自定義支付界面中的游戲名稱、提供商、客服電話及登錄結(jié)果信息,通過下面重載方法實(shí)現(xiàn)。voidCmBillingAndroid.Instance.

46、InitializeApp(StringgameName,StringcpName,StringserviceTel,StringloginNo,StringgameObj,StringruntimeScript);gameObj:游戲場(chǎng)景中的對(duì)象,SD他部完成登錄邏輯后,并把登錄結(jié)果通過Unity內(nèi)部API。UnitySendMessage(StringgameObject,StringruntimeScriptMethod,Stringargs)通知到Unity,故游戲開發(fā)者需要指定一個(gè)游戲?qū)ο蠛驮搶?duì)象的運(yùn)行腳本,用于偵聽SDK勺登錄結(jié)果。runtimeScriptMethod:gameO

47、bject對(duì)象的運(yùn)行時(shí)腳本的方法名稱,該方法會(huì)在收到通知后觸發(fā)。其他參數(shù)同3.3章節(jié)。示例詳見SDK1供的CMBillingAndroidDemo.cs文件。4)登錄接口流程及定義同3.4章節(jié)。5)更多游戲接口描述同3.5章節(jié)。接口差異:voidCmBillingAndroid.Instance.ShowMoreGames();6)游戲付費(fèi)接口流程及描述同3.6章節(jié)。接口定義差異:CmBillingAndroid.Instance.DoBilling(booluseSms,boolisRepeated,Stringindex,Stringcpparam,StringgameObject,Str

48、ingruntimeScriptMethod);如果游戲希望自定義支付界面是否全屏或者指定權(quán)益道具可使用下面重載接口。CmBillingAndroid.Instance.DoBilling(intuiType,intpropsType,Stringindex,Stringcpparam,StringgameObject,StringruntimeScriptMethod);gameObj游戲場(chǎng)景中的對(duì)象,SD他部完成付費(fèi)邏輯后,并把付費(fèi)結(jié)果通過Unity內(nèi)部API。UnitySendMessage(StringgameObject,StringruntimeScriptMethod,Strin

49、gargs)通知到Unity,故游戲開發(fā)者需要指定一個(gè)游戲?qū)ο蠛驮搶?duì)象的運(yùn)行腳本,用于偵聽SDK勺付費(fèi)結(jié)果。runtimeScriptMethod:gameObj對(duì)象的運(yùn)行時(shí)腳本的方法名稱,該方法會(huì)在收到通知后觸發(fā)。其他參數(shù)同3.6.2章節(jié)。注:購買結(jié)果的返回值格式:計(jì)費(fèi)點(diǎn)索引+”|"+計(jì)費(fèi)結(jié)果,具體使用方式,請(qǐng)仔細(xì)參見CmBillingAndroidDemo的OnBillingResult方法。示例詳見SDKS供的CMBillingAndroidDemo文件內(nèi)容。8)游戲退出接口接口描述同3.7章節(jié)。接口定義差異:voidCmBillingAndroid.Inastance.Exi

50、t();或voidCmBillingAndroid.Inastance.ExitWithUI();調(diào)用示例見SDKS供的Demofi,CmBillingAndroidDemo。4常見問題1、為何使用之前版本的SDK沒有問題,使用最新版本的SDK編譯報(bào)錯(cuò),無法運(yùn)行。解答:遇到badrange,或0ffset問題,主要是SDK勺jar引用方式不對(duì),這個(gè)版本的SDK3jar只提供編譯,并不會(huì)真實(shí)編譯到APK3,類似于android.jar,請(qǐng)游戲開發(fā)者集成SDK寸,理解這個(gè)區(qū)別,并根據(jù)自己的編譯環(huán)境,解決此類編譯問題。eclipse打包日b:buidpath中取消CMBilling.jar的打包勾選

51、IDEAandroidstudio需要將CMBilling.jar的編譯方式設(shè)置為provided。Ant打包時(shí),需要在buid.xml中添加jar的引用,把jar包配到classpath變量里調(diào)用androidsdk的build.xml可以加上如下配置:propertyname="piler.classpath"value="runtime/CMBilling.jar"/>2、為何游戲制作過程中,支付UI中,顯示0.1元的測(cè)試信息,不是游戲自身的真實(shí)據(jù)?解答:游戲在集成SDK±程中,游戲提供商務(wù)必將集成SDK的游戲包提交至移動(dòng)游戲管理平

52、臺(tái),申請(qǐng)同步自測(cè),下載替換游戲自身真實(shí)計(jì)費(fèi)信息。3、調(diào)用移動(dòng)SDK初始化接口后,為何收到的登錄結(jié)果是失敗,例如:FAILED_IMPLICIT,FAILED_EXPLICIT?解答:按照2.3章節(jié)的登錄流程,出現(xiàn)此問題的原因有:1)2.3.4章節(jié)中的登錄同步地址沒有在iGop上申報(bào),或者URL不符合規(guī)范,無法正常同步登錄結(jié)果。2)手機(jī)卡無效,無法正常發(fā)送移動(dòng)短信3)網(wǎng)絡(luò)原因?qū)е碌卿浭 ?、游戲之前在二期上申報(bào)的含有000計(jì)費(fèi)點(diǎn),但是SDK自帶的從001開始,無法測(cè)試?解答:SDK自帶的計(jì)費(fèi)點(diǎn)沒有000,是從001開始的,如果你們的游戲是從000開始的,確實(shí)有這個(gè)現(xiàn)象。解決辦法:你可以先用其他的計(jì)費(fèi)點(diǎn)代替000,自測(cè)通過后,發(fā)布APK之前,再改回000,提交到移動(dòng)iGop,提交后,移動(dòng)自動(dòng)會(huì)把000的計(jì)費(fèi)點(diǎn)打入APK中,此時(shí)再運(yùn)行就沒有問題了。5、為何集成游戲SDK已4到SDK的callback結(jié)果,卻沒有收到扣費(fèi)短信?解答:SDK中給出的計(jì)費(fèi)結(jié)果callback,僅用于驗(yàn)證短信發(fā)送成功,但不是真實(shí)的扣費(fèi)成功,若游戲提供商上行的短信內(nèi)容符合移動(dòng)開發(fā)規(guī)范,通常在的鐘內(nèi)會(huì)收到扣費(fèi)提醒短信(如果自測(cè)階段,即非商用產(chǎn)品,通常均不會(huì)收到下行短信)。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論