CP不得不知道的事情:渠道对接那点事儿

2015-08-26 14:48:57   来源:新浪游戏

  4399手机开放平台

网游支付SDK

  网游支付SDK,主要面向网络游戏开发者,包括有服务器端和客户端两部分。支持支付宝、短信充值(移动/联通/电信)、财付通、网银、4399一卡通、手机充值卡、骏网一卡通、游币兑换。数据准,收入稳,转化高。

1。申请支付接口

  登录4399手机开放平台http://open.4399.cn,点击 [新建游戏] 填写相关信息完成游戏创建, 进入游戏详细页面,选择 [支付SDK 配置管理] 填写配置并提交申请。

  平台会将所提交申请,先审核成为测试模式,测试模式主要是服务器端回调接口联调,该模式下客户端调用支付接口直接模拟充值,无充值界面。 测试模式联调成功后,告知平台开通正式模式后进行RMB充值测试。

2。环境搭建

下载SDK包

  SDK下载地址: http://open.4399.cn/doc/download/

关联类库项目

  假设现在你的工程目录名字叫project,下面将具体介绍如何将SDK接入project中
① 将m4399RechargeSDK工程关联到project
② 将m4399RechargeSDK导入到eclipse中
③ 右键点击m4399RechargeSDK工程名→Properties→Android 
④ 勾选Is Library→OK
⑤ 右键点击project工程名→Properties→Add
⑥ 在弹出的对话框中点选资源工程m4399RechargeSDK→OK

  若游戏仅支持部分指令集,需要在引入资源工程后将m4399RechargeSDK\lib\目录下未使用的指令集文件夹删除。  

  如游戏仅支持arm6(armeabi),即可将其余的x86、arm64-v8a、armeabi-v7a文件夹删除。  

包名要求

  联运游戏apk包名必须以 m4399 结尾,如 com.xxx.xxx.m4399

配置Androidmanifest.xml

  添加SDK所需权限

  <!-- Common permission --> <uses-permission android:name=“android.permission.MOUNT_UNMOUNT_FILESYSTEMS” /> <uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE” /> <uses-permission android:name=“android.permission.INTERNET” /> <uses-permission android:name=“android.permission.ACCESS_WIFI_STATE” /> <uses-permission android:name=“android.permission.ACCESS_NETWORK_STATE” /> <uses-permission android:name=“android.permission.CHANGE_CONFIGURATION” /> <!-- For Dial custom service hotline --> <uses-permission android:name=“android.permission.CALL_PHONE” /> <!-- SMS pay permission --> <uses-permission android:name=“android.permission.SEND_SMS” /> <uses-permission android:name=“android.permission.READ_SMS” /> <uses-permission android:name=“android.permission.READ_PHONE_STATE” /> <uses-permission android:name=“android.permission.RECEIVE_BOOT_COMPLETED” /> <!-- Alipay permission --> <uses-permission android:name=“android.permission.ACCESS_COARSE_LOCATION” />

  注册SDK相关Activity&Service,注意必须放入元素区块内

  <!-- For 4399 recharging SDK。 请不要在此处修改RechargeActivity的方向设置,因为某些2。3的机型启动Activity总是先启动 竖屏,然后强制转换成横屏,这会导致潜在问题。 --> <activity android:name=“cn.m4399.recharge.ui.activity.RechargeActivity” android:configChanges=“orientation|screenSize|keyboardHidden” android:launchMode=“singleTask” android:exported=“true” android:theme=“@style/m4399ActivityTheme” /> <!-- For 4399 Operation SDK --> <activity android:name=“cn.m4399.operate.ui.activity.LoginActivity” android:configChanges=“orientation|screenSize|keyboardHidden” android:launchMode=“singleTask” android:theme=“@style/m4399TransparentStyle” /> <activity android:name=“cn.m4399.operate.ui.activity.UserCenterActivity” android:hardwareAccelerated=“false” android:launchMode=“singleTask” android:configChanges=“orientation|screenSize|keyboardHidden” android:theme=“@android:style/Theme.NoTitleBar.Fullscreen” /> <activity android:name=“cn.m4399.operate.ui.activity.CustomWebActivity” android:launchMode=“singleTask” android:configChanges=“orientation|screenSize|keyboardHidden” android:theme=“@android:style/Theme.NoTitleBar.Fullscreen” /> <service android:name=“cn.m4399.recharge.service.smsm.SmsmService” android:enabled=“true” android:exported=“false” android:process=“system” > </service> <receiver android:name=“cn.m4399.recharge.service.smsm.SmsmStartReceiver” > <intent-filter> <action android:name=“android.intent.action.BOOT_COMPLETED” /> </intent-filter> </receiver> <!--------以下为第三方支付SDK Activity&Service配置------------> <activity android:name=“com.alipay.sdk.app.H5PayActivity” android:configChanges=“orientation|keyboardHidden|navigation|screenSize” android:exported=“false” android:screenOrientation=“behind” android:windowSoftInputMode=“adjustResize|stateHidden” />

  注:第三方支付SDK的Activity需在AndroidManifest.xml中强制配置横竖屏,请游戏方根据游戏的横竖屏要求手工配置landscape|portrait

3。代码实现

初始化SDK

  初始化推荐在游戏初始化过程中进行,析构函数则在游戏退出前执行。

  mOpeCenter = OperateCenter.getInstance(); mOpeConfig = new OperateCenterConfig.Builder(this) 。setGameKey(“APPKEY”) //设置AppKey 。setDebugEnabled(false) //设置DEBUG模式,用于接入过程中开关日志输出,发布前必须设置为false或删除该行。默认为false。 。setOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) //设置横竖屏方向,默认为横屏,现支持横竖屏,和180度旋转 。setSupportExcess(true) //设置服务端是否支持处理超出部分金额,默认为false 。setPopLogoStyle(PopLogoStyle.POPLOGOSTYLE_ONE) //设置悬浮窗样式,现有四种可选 。setPopWinPosition(PopWinPosition.POS_LEFT) //设置悬浮窗默认显示位置,现有四种可选 。build(); mOpeCenter.setConfig(mOpeConfig); mOpeCenter.init(new OperateCenter.OnInitGloabListener() { // 初始化结束执行后回调 @Override public void onInitFinished(boolean isLogin, User userInfo) { assert(isLogin == mOpeCenter.isLogin()); } // 注销帐号的回调, 包括个人中心里的注销和logout()注销方式 // fromUserCenter区分是否是从个人中心注销的,若是则为true,不是为false @Override public void onUserAccountLogout(boolean fromUserCenter, int resultCode) { } // 个人中心里切换帐号的回调 @Override public void onSwitchUserAccountFinished(User userInfo) { } });

  是否支持处理超出部分金额也可单独设置

  mOpeCenter.setSupportExcess(support);

  能否支持处理超出部分金额指在使用SDK充值时,由于用户选择的充值渠道不同,可能造成实际充值金额超出游戏下单时传入的金额。如果游戏服务端能够正确处理超出部分的金额,则本接口传入true。如果无法支持处理超出部分的金额,则传入false,SDK将会根据传入金额自动隐藏无法满足充值金额的渠道(例:开发者设置SupportExcess为false,充值时传入7元,此时4399一卡通中无7元面额的充值卡,此时4399一卡通的充值渠道将自动隐藏)。SupportExcess默认为false。

  注:代码中MainActivity为当前Activity。下文的mOpeCenter指OperateCenter实例,通过getInstance()静态方法获得。

用户登录接口

  用户在触发登录时,调用该接口,如果SDK内已包含未注销的用户凭证,将自动返回用户信息。如需强制调出登录界面,请使用[用户切换]接口。

  mOpeCenter.login(MainActivity。this, new OnLoginFinishedListener() { @Override public void onLoginFinished(boolean success, int resultCode, User userInfo) { //登录结束后的游戏逻辑 } });

  SDK会自动识别用户手机中是否安装了新版的4399游戏盒1.4.1以上版本,如果已安装,自动跳转至游戏盒授权登录。如果未安装,则弹出Web版4399统一登录界面。 在登录成功后,监听器返回的User类型的用户信息中将包含State登录凭证,该信息可用于游戏服务端进行用户信息二次验证

  注:登录后如果未注销,登录状态将一直保持直至登录凭证过期或失效(若用户修改平台账户密码,所有游戏授权凭证将失效,需重新登录)。建议游戏在初始化完成后调用登录状态查询接口查询用户当前登录状态。

获取用户信息

  在SDK处于登录状态时,可通过该接口获取当前用户的信息(UID、用户名、昵称、登录凭证)。

  User user = mOpeCenter.getCurrentAccount();

账号切换

  当用户需要注销当前登录状态,且同时弹出登录界面时,使用本接口。本接口的监听器类型与[用户登录]接口相同。

  mOpeCenter.switchAccount(MainActivity。this, new OnLoginFinishedListener() { @Override public void onLoginFinished(boolean success, int resultCode, User userInfo) { //用户账号切换结束后的游戏逻辑 } });

用户注销

  当用户需要注销当前登录状态时,使用本接口,注销回调在初始化接口回调中统一处理。

  mOpeCenter.logout();

游戏关闭

  如果游戏已经配置游戏圈, 则在关闭前,SDK会弹出对话框询问“退出游戏”还是“前往游戏圈,如果还没有配置,SDK弹框会提示“退出游戏”还是“留在游戏”。

  mOpeCenter.shouldQuitGame(MainActivity。this, new OnQuitGameListener() { @Override public void onQuitGame(boolean shouldQuit) { // 点击“退出游戏”时,shouldQuit为true,游戏处理自己的退出业务逻辑 // 点击“前往游戏圈”时,shouldQuit为false,SDK会进入游戏圈或者下载 // 游戏盒子界面,游戏可以不做处理。 // 点击“留在游戏”时,shouldQuit为false,SDK和游戏都不做任何处理 // 点击右上角的关闭图标,shouldQuit为false,SDK和游戏都不做任何处理 } });

登录状态查询

  查询当前客户端是否有账号登录

  boolean isLogin = mOpeCenter.isLogin();

设置服务器ID

  当游戏有分服时,在用户选择角色进入分服时,请务必立即通过本接口设置所在服的ID。如果无分服,则可不设置。

  //serverid为整型,长度不超过8位 mOpeCenter.setServer(“SERVER_ID”);

充值接口

  当用户需要充值时,可调用本接口启动充值中心界面。特别注意:mark为游戏方订单号,最大长度32位,由包含字母或数字组成的唯一字符串,该字段不可为空,不可重复。

  mOpeCenter.recharge(MainActivity。this, je, //充值金额(元) mark, //游戏方订单号 productName, //商品名称 new OnRechargeFinishedListener() { @Override public void onRechargeFinished( boolean success, int resultCode, String msg) { if(success){ //请求游戏服,获取充值结果 }else{ //充值失败逻辑 } } });

  je充值金额:4399充值中心仅支持整数金额充值,最小充值金额1元,最大不超过50000元。 
mark订单号:最大长度32位,支持大小写字母、数字、‘|’(竖线)、‘-’(中划线)、‘_’(下划线),该字段不可为空,不可重复。 
productName商品名称:最长不超过8个字符。 如果传入商品名,充值中心将直接显示改商品名称,如果充值金额大于下单时传入的je时,将显示商品名+XXX游戏币,相关游戏币的兑换比例在接入时提供给运营人员配置。如果未传入商品名,则直接显示XXX游戏币。

  测试模式

  何为测试模式? 游戏申请支付接口,平台会先将该申请设置为测试模式。测试模式需要使用平台指定的账号进行登录,方可测试充值接口,测试模式调用充值接口不会弹出充值界面,直接模拟充值,主要是与服务器端进行联调,客户端会根据服务器端返回的状态进行显示成功还是异常。 测试模式联调成功后,平台会开通正式模式,进行RMB测试。

  移动短代需要以下处理

  注意:由于移动短代的jar包中包含了assets和iap_corp.xml的资源文件,u3d需将assets拷贝到对于的Plugin目录下,u3d以及apktool工具打包的游戏,需要添加以下步骤,否则短代会出现“0.1元”的现象。 1、将Cartoonsmsbilling1。0.0。jar包解开,提取里面的iap_corp.xml 2、将iap_corp.xml追加到游戏APK中:。/aapt a yourgame.apk iap_corp.xml 3、删除原有的失效的签名文件:zip -d yourgame.apk “META-INF*” 4、重新签名:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore your_keystore.keystore compiled.apk your_alias_name 5、后期处理: 。/zipalign -v 4 compiled.apk yourgame_resigned.apk

获取状态信息

  工具接口,用于将回调函数中的resultCode解析为中文的说明(充值接口recharge的resultCode对应的中文是回调中的msg)。

  String resultMessage = OperateCenter.getResultMsg(resultCode);

获取SDK版本号

  mOpeCenter.getVersion();

析构

  游戏退出时调用本接口,释放SDK资源以及保存相关数据。

  mOpeCenter.destroy();

检查更新

  SDK包含自动更新模块,SDK将检查后台是否有新版本游戏上线,如果有,则显示更新内容,并提示用户升级。 
该升级为增量升级,后台在提交新版游戏时自动制作差分包,更新时用户只需下载APK文件中新旧版本有差异的部分。
相关更新内容和版本提交事宜,请联系4399相关运营对接人员。 
4399SDK的增量升级为全自动增量更新(无需操作,默认初始化完成)

代码混淆

  如果您的应用使用了混淆, 请不混淆SDK代码,可以在proguard.cfg文件里追加以下配置。

  -dontwarn android.support.v4。** -keep class android.support.v4。** { *; } -keep public class * extends android。support。v4。** -dontwarn com。unipay。** -keep class cn。m4399。operate。** {*;} -keep class cn.m4399.recharge。** {*;} -keepclassmembers class cn.m4399.recharge.R$* {*;}

上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 下一页

新浪声明:新浪网登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
精彩推荐
相关新闻

大四学生互联网创业卖游戏外挂:半年挣60万被抓

今年4月,位于马陆的某互联网企业来到嘉定公安报警,称网上有人售卖一款游戏外挂,能使参与者展现全景地图,影响游戏公平性,造成...

相关坚决抵制外挂 韩《冒险岛2》处理6万违规账号
2015-08-24 10:18:37 来自:大陆网游新闻

游戏创业热潮退去:热钱与情怀难以支撑市场

近几年,游戏创业经历了爆发式发展,造就了很多一夜暴富的神话,很多创业者义无反顾地投入到游戏的创业的热潮中去,老牌的游戏公...

相关纪学锋谈手游 80%移动游戏创业团队或将“死掉”
2015-08-20 10:57:59 来自:产业服务-新闻

51.com创业十年历程

  2015年8月18日,51.com十周年庆典在上海意索娜意大利餐厅举行,在十周年庆典上,51.com创始人庞升东对过去经历的十年风雨做出...

相关51.com戴建清:完善手游布局 期待《EVA》发行
2015-08-18 11:03:45 来自:产业服务-新闻
CGWR

中国网络游戏排行榜(China Game Weight Rank)是由新浪游戏推出的目前国内最全面、最专业、最公正的最新网络游戏评测排行榜,涵盖2010至今内所有新游戏,力图为中国游戏玩家打造最值得信赖的新网游推荐平台。

新浪中国网络游戏排行榜是以由新浪游戏专业评测员组成的评测团队为核心,以游戏的画质、类型、风格、题材等游戏特性为依据,对中国(大陆港澳台)、欧美、日韩等地区正在进行测试或正式运营的新网游产品进行评测并打分后产生的权威游戏排行榜。新浪中国网络游戏排行榜将网络游戏从六大项、二十八个小分项与同类游戏进行横向比较,再将该游戏与自身的不同版本进行纵向对比后,由评测中心根据加权平均数得出最后的游戏分数,并以游戏测试及上线时间点为分组,根据每款游戏的CGWS分数在每个季度发布排行榜榜单,实现了排行榜的透明化和实时化,帮助玩家准确、迅速地找到心目中的理想游戏。

评天下游戏、测产品深浅—新浪中国网络游戏排行榜CGWR! http://top.sina.com.cn

专题活动

本周9款游戏测试 《魔甲时代》首测

本周进行测试的游戏共有9款,其中大型机甲国战网游《魔甲时代》周四国服首测,MOBA新游《魔幻英雄》开启技术内测。查看测试表>>

多娇游戏圈 女神萌妹天天看

游戏圈女神多娇又爱玩 来看一周游戏美女汇总!

合金装备V:幻痛专区

更多资讯、攻略、视频,尽在新浪游戏《合金装备V:幻痛》游戏专区。

荐一贱:完美收官vs经典难续

小编辛辣点评本周荐满分好评作合金装备5,吐槽新流星搜剑录。

搓招对战《新流星搜剑录》解说

《新流星搜剑录》由腾讯代理的3D武侠电竞网络游戏。

大汇站:御天降魔传

国产ACT单机作《御天降魔传》正式版独家试玩解说,各模式揭秘。

新游尾行:诛仙世界

《诛仙世界》8月18日开测,海量内容独家爆料。

新浪简介 About Sina | 网站地图 | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

Copyright © 1996-2015 SINA Corporation, All Rights Reserved

新浪公司 版权所有

用微信扫描二维码
分享至微信朋友圈