[新浪游戏微博原创,敬请关注@新浪游戏]
渠道,作为推广平台在现今手游市场上属于必不或缺的元素之一,CP想要自己的产品有量有个好位置能卖座都需要各个渠道的帮忙。而如何与渠道对接沟通许多小白CP都很不清楚。下面小编给各位讲讲渠道对接那点事儿。
与渠道对接其主要流程大致为:与需要合作渠道沟通,创建该渠道账户,提交游戏并审核,与技术对接sdk联调,测试通过上线,日常运营。





针对许多cp对于对接模式的不了解,下面就来为大家介绍一下四大渠道商360,百度,应用宝,uc九游的对接方式。
百度对接方式:http://games.sina.com.cn/y/n/2015-08-26/fxhehqr6321679.shtml
应用宝对接方式:http://games.sina.com.cn/y/n/2015-08-26/fxhehqr6321679-p3.shtml
360平台对接方式:http://games.sina.com.cn/y/n/2015-08-26/fxhehqr6321679-p4.shtml
UC九游对接方式:http://games.sina.com.cn/y/n/2015-08-26/fxhehqr6321679-p5.shtml
畅思广告对接方式:http://games.sina.com.cn/y/n/2015-08-26/fxhehqr6321679-p6.shtml
小米对接方式:http://games.sina.com.cn/y/n/2015-08-26/fxhehqr6321679-p15.shtml
快赢对接方式:http://games.sina.com.cn/y/n/2015-08-26/fxhehqr6321679-p6.shtml
豌豆荚对接方式:http://games.sina.com.cn/y/n/2015-08-26/fxhehqr6321679-p9.shtml
安智市场对接方式:http://games.sina.com.cn/y/n/2015-08-26/fxhehqr6321679-p16.shtml
应用汇:http://games.sina.com.cn/y/n/2015-08-26/fxhehqr6321679-p17.shtml
百度渠道
1.建联调组:
与百度商务谈成游戏联运意向后联系百度移动游戏的商务人员建讨论组或QQ群,组或群中应有:双方商务、技术支持、游戏开发,后期可加入运营、论坛专区对接人、游戏审核接口人等。
2.后台创建应用,并网签合同:
SDK需要用到的APPID、APPKEY、APPSECRET请在百度移动游戏开发者平台新注册或使用已有的百度账号登录后点击“管理中心”进入[联运游戏]添加游戏后获得。一款游戏只允许使用一个APPID,游戏上架后 APPID正常情况下不允许改变。CP须在百度移动游戏开发者平台进行网签合同。

3.接入SDK:
新游接入或进行游戏版本更新前确认使用开发者平台最新版本的SDK。下载后请在手机上安装SDK包内DEMO以便对照SDK文档(必看),DEMO代码可供开发时参考。
SDK下载地址:http://app.baidu.com/docs#h2-tit0;
A。必须遵守的业务规定。
B。必须实现的API:SDK初始化、账号登录、SDK悬浮窗口、SDK支付、销毁、暂停页面。
4.游戏自测:
参照《百度移动游戏网游自测文档》对游戏进行检查,测试未通过将造成延期上架。
5.游戏审核:
开发商从开发者平台(APK上传/更新)提交游戏包和相关资料。审核过程中,CP可在管理中心——[游戏管理]分类下查看游戏审核状态。


单机
- 下载单机SDK
下载地址:http://dev.mgame.baidu.com/yyjr/djsdk
- 注册为开发者
注册地址:http://dev.mgame.baidu.com/completion
注册成功后获取到AppId,AppKey,AppSecret。上述三个参数请在Androidmainfest中填写。
- 环境搭建详见SDK包中《百度多酷游戏SDK(单机版)接入API参考手册_基本模块。doc》文档。
- 配置AndroidManifest.xml
详见SDK包中《AndroidManifest文件配置说明。txt》,AndroidMainfest中AppChannel请向我们的运营人员询问需要推广的渠道id。Cp接入时可先以单机1.4.2SDKDemo的参数代替,提交测试时换成自己的参数。
- 实现自定义Application
第一种方式:自定义的Application继承com.baidu.frontia.FrontiaApplication,然后在Application的onCreate函数里调用super.onCreate;
第二种方式:自定义的Application不继承上述类,那么在自定义Application的onCreate函数里要添加下面这句代码,否则程序会崩溃:
第三种方式:直接在Androidmainfest中添加name属性(不需自定义Application继承),
- 初始化(必接)
用于对单机SDK进行初始化,显示百度移动游戏闪屏。在应用主Activity的onCreate函数中调用该方法。应用主Activity如果有关界面显示的代码应当在回调函数中添加,以免影响闪屏的显示。
- 品宣初始化(必接)
开发者在进入游戏第一界面,初始化完成后,调用此接口。不要传null,会导致悬浮窗不显示,如无广告页面,appid换成4110测试。定义:
public void bdgameInitActivity activity, callBack

- 游戏暂停(必接)
开发者在游戏中触发暂停,过关升级或者切换游戏场景时。暂停接口应在CP的暂停按钮中调用,无暂停按钮不接,不要在Onpause里面调用。无插播推广页面,appid换成4110测试。回调函数的调用,证明暂停处理完成,也可传null。
开发者在游戏退出时,调用此接口。需要实现IDKSDKCallBack接口,在接口方法里编写退出应用的 操作。 接口定义: public void bdgameExitActivity activity, IDKSDKCallBack callBack
百度大数据统计接口。在每个activity界面的onResume函数和onPause函数中分别加入如下两个接口 接口定义: public void resumeBaiduMobileStatisticContext context public void pauseBaiduMobileStatisticContext context
DKCMMMData:MDO计费数据 没有计费指令传null DKCMMMData:移动MM计费数据 没有计费指令传null
移动mm 3种皮肤:
THREE
此为正常情况,由于移动、联通、电信支持的面值不用,如果选中的计费点面值非当前渠道支持的面值, 则不显示短 信计费。
参考接入文档里的混淆模块部分,此情况可能由于没有加上SDK提供的混淆代码。
支持设为true, 若不支持设为false。 11.4。 测试支付显示计费点为0.1元 CP在开发者后台配置多个计费点,测试任意计费点时只显示计费点为0.1元。原因:mm未审核前不存 在计费文件, 都是0.1元,但每个计费点测试成功才能在MM后台提交审核,只有百度自己的计费不用审核。 11.5。 支付界面显示 SDK会在支付金额为非整数或者大于30元时,调用第三方支付。CP在传入整数金额时(小于30元)不要含有小数点,否则不会出现短代支付界面。 12.SDK查询订单接口(可选) 开发者通过查询接口,查询订单是否真正扣费成功。订单状态会有延迟,具体根据各计费商返回我方数据的时间为准。若是查询充值卡,请在调用查询接口时务必传入渠道编DKOrderPayChannelData.DK_ORDER_CHANNEL否则不会返回真实的数据。 13。单机计费点申请 1。 登陆百度移动游戏开发者账号。 2。点击开发者专区。 ![]() 3。点击“添加游戏”,填写数据,保存。 ![]() 4。点击已添加游戏——计费点(单机)——添加 ![]() 14.CP自测 1、显示百度移动游戏闪屏、icon不允许带任何角标。 ![]()
2、显示插播界面、(CP可用demo中appid和appkey等参数来自测工程是否显示悬浮窗,自测通过后上传包时要把 appid和appkey等参数改为自己游戏的)。 3、应用退出时显示交叉推荐弹框 ![]() 15。 打包问题 15.1。渠道包接入新版本,需包体与渠道一一对应(百度手机助手13744,百度多酷12999,91(原91)14076,百度贴吧14146) 15.2。无法提交MM打入了品宣SDK的包无法提交MM,显示“未使用符合要求的SDK” 解决方法:将品宣SDK目录下的libbdpush_v1_0.so及libdkunique.so文件删除即可。 16。 SDK计费框、插播界面、广告界面拉伸问题确保SDK初始化代码和AndroidManifest中横竖屏设置与游戏保持一致。true为横屏,false为竖屏。如下图: ![]() ![]() 17。反编译单机SDK,libs/armeabi与mips文件下libbdpush_V1_0.so不同问题反编译单机SDK,libs/armeab与mips文件下libbdpush_V1_0.so是不相同的。没有armeabi-v7a文件夹,是因为armeabi里面的so包兼容了系统;如果有armeabi-v7a文件夹,则把armeabi里面的so包都复制到armeabi-v7a文件夹里。 18。广告插件问题 CP在Eclipse或Adt引用Google三方库(Admob),Gogle会认为是Banner,从而检测出广告插件,如下图。CP可以删除Admob解决。 ![]() 19。游戏在联通电信卡测试正常,移动卡出现Crash问题游戏在联通电信卡测试正常,移动卡出现Crash,报错如图所示,解决办法把 armeabi 里面的so文件全部复制到armeabi-v7a 文件里。 ![]() ![]() |
应用宝
如何接入移动应用?
简单描述如下:
通过简单的四个步骤(开发者注册 -> 创建移动应用 -> 完善应用信息 ->应用分发),即可加入腾讯开放平台创建移动应用,并将您的应用上线发布到腾讯的移动平台上,轻松通过在应用宝、腾讯QQ、微信、腾讯手机管家、QQ空间、QQ游戏等场景分发聚合的腾讯移动开放平台获取丰厚的收益和巨大的流量。
开发者资质接入前提条件
应用申请上线前,请确认开发者资质证明已符合接入规范,才可以将开发者创建的应用提交上线。
开发者资质证明清单
范围 |
关键点 |
接入标准 |
资质证明 |
开发者 |
|
资料真实性 |
|
应用上线后的表现形式如何?
以应用宝应用中心为例:用户可以根据应用类别,快速找到并安装应用。

- 应用宝(tap.myapp.com)已迁移至腾讯开放平台(open.qq.com),如之前已有应用宝帐号,可迁移。
- 输入应用宝的用户名,登录密码以及验证码,可将QQ号码与应用宝帐号进行绑定。
- 绑定成功后,拉取开发者资料,导入开发者信息至腾讯开放平台的账号体系。
- 确认导入后,完成账号迁移,以后可用绑定的qq号码登陆腾讯开放平台。
- 如何上传安装包?
注册成为开发者后,点击创建应用,在创建应用页面填写名称和类别,点击创建应用,即可跳转到安装包上传页面。


如何更新安装包?
更新安装包有两个入口,第一个在管理中心的快捷入口,如下:第二个在应用信息管理页,如下:

第二个在应用信息管理页,如下:

如何认领应用?
如果您发现应用已经在应用中心上线,但您或您的团队从未上传该应用,您可以通过认领功能认领应用。认领成功后该应用会自动转入您的账户下,同时保留应用全部数据,您可以在应用管理中进行管理。

只需简单三步即可完成认领:
提交需认领应用的PackageName。

下载应用中心提供的未签名包,并将与待认领应用一致的签名写入该包中。

上传完成签名的安装包进行校验。

登录分享
使用QQ登录分享功能,可以实现定向分享給指定好友,实现与QQ好友的亲密互动。API OpenAPI是腾讯开放平台对外开放的后台接口的统称,可支持多平台,包含用户信息,应用推广,支付,营销等能力支持。
QQ登录
可以让用户使用QQ帐号在第三方移动应用上登录,分享内容、同步信息,大大降低了用户注册的门槛。成功在open.qq.com创建的应用会自动授予QQ登陆的权限,开发者可接入QQ登陆sdk就可以接入。
QQ关系链
提供拓展关系链,获取已有关系链等功能,来满足用户的互动需求,达到迅速增加用户数量与粘性的目的。使用QQ关系链需要申请,如下:

360平台
总得来说,360手游SDK目前共有三种类型:

接下来将为各位小伙伴们分别阐述:各类型游戏如何接入SDK
新游测试期间如何接入SDK
作为360移动开放平台“启明星计划”的重点服务,新游测试成为众多手游上线的必经过程,其SDK接入流程也备受关注。因此,大台长将首先从新游测试入手,为您展示其统计SDK的接入流程:


网络游戏(付费)如何接入SDK
目前所有免费游戏无需接入SDK,而网络付费游戏需接入SDK,详细请看:


单机游戏(付费)如何接入SDK
单机付费游戏也需接入相应SDK,可以为游戏提供登陆、支付、数据分析及消息推送、游戏社交等功能服务,请看:


单机游戏(派生)如何接入SDK
单机派生游戏接入SDK,需要根据各大运营商的规定提前申请派生包,详细请看:

九游

一、UC·九游网游接入流程介绍

二、游戏接口人介绍
经过商务端确定合作后,从游戏接入到游戏上线的整个过程中,UC·九游会分配3个接口人协助您完成全部接入过程。分别是接入引导人、运营接口人和技术接口人。
角色 |
工作内容 |
接入引导人 |
接入全流程引导;制定接入计划、接入进度跟进、安排游戏验收和测试; |
运营接口人 |
制定运营计划、运营引导、运营事件跟进; |
技术接口人 |
在接入开发和联调过程中提供技术支持,协助解决您在接入过程中遇到的所有技术问题,确保游戏顺利接入SDK或接口; |
三、接入步骤具体介绍
- 申请接入资格
1) 根据“UC·九游开放平台(http://game.open.uc.cn/)“提供的商务联系方式联系商务进行具体的谈判,确定合作。
2) 进入“UC·九游开放平台“注册帐号、创建所需接入的游戏并提交审核。
- 接入阶段
前提:游戏审核通过,并且UC·九游商务正式启动接入工作。
- 接入与联调
1) SDK接入与联调:从“UC·九游开放平台—文档中心”处下载最新版本的SDK开发文档,根据里面的开发文档进行SDK接入,遇到技术问题可向技术接口人寻求协助。
2) 上传游戏包:SDK接入完毕,请按照SDK开发文档里的“08-自测用测试用例”进行自测,自测通过后从“UC·九游开放平台—游戏管理”处上传面向玩家的正式环境的游戏包给UC·九游进行测试验收。
- 同步丰富专区内容
游戏专区内容准备一般和游戏接入开发同步进行。即在贵方技术人员进行接口开发、联调时,贵方运营或者商务人员要同步准备游戏专区内容,不清楚的地方可向运营接口人寻求协助。
1)游戏上线前需要提交:
- 新闻类:游戏特色玩法宣传、游戏获奖信息宣传、游戏研发情况或技术宣传,不少于3篇 b。攻略资料类:基础资料尽量齐全、新手教程不少于1篇、其他不少于1篇
2)制定运营计划:运营计划是指如开服、开测等活动的计划,在游戏上线前及上线运营后都需要进行提交。
- 上线商业化
前提:游戏包通过验收测试、且游戏专区已经符合要求,将安排游戏上线。
1)确定上线计划:游戏上线时间一般由双方运营负责人商量确定。
2)游戏包开放下载:决定好上线时间后,一般提前这个时间2~3天开放游戏包下载,这段时间关闭服务器。
3) 到了上线时间,开启游戏服务器。
- 日常运营
前提:游戏已正常上线。
1)监控线上情况:请贵方运营和开发人员密切关注线上情况,如有问题及时排查解决,如需协助请联系UC·九游游戏接口人。
2)获取数据查看权限:UC·九游为您提供支付查询后台,可查看充值订单、订单详情、充值日报表、月报表;支付查询后台地址和帐号密码,将由UC·九游商务提供。
3)游戏包更新:有新版本游戏包时请从“UC·九游开放平台—游戏管理”处上传。
4)增加游戏接入平台:于开放平台新建一个同名游戏,选择要增加的平台并联系商务审核。
5)运营事件:更新专区资讯,制定游戏后续运营计划。
四、附加
- 九游开放平台介绍地址:http://game.open.uc.cn/
功能支持:游戏包管理(上传、更新)、游戏专区管理(新闻、活动、截图、logo等)、接入参数获取、联调工具、财务对账结算、客服系统;
操作详情请进入“UC·九游开放平台—文档中心”查看。
- 线上更新机制
1)客户端更新(apk/ipa)需要上传九游开放平台,我们审核并签名后把客户端下载地址反馈给贵方,贵方可放进游戏内引导玩家下载。(无注明发布时间我方将即时发布)
2)资源更新(文件更新)贵方自己做处理。
畅思广告
畅思广告是由原触控科技推广投放团队发展而来,早期的《捕鱼达人1、2》、《战国》、《时空猎人》,最近的《秦时明月》、《捕鱼达人3》等均由畅思广告投放组负责,操盘。其主要支持banner、插屏、积分墙、推荐墙、视频、原生广告等多种广告展现样式。


1。注册并获取 畅思 广告平台 广告平台 广告平台 publisherID
要使用畅思广告平台提供的功能,您需要先注册帐号,并通过创建应用获取Publisher ID。注册Publisher ID地址:http://dev.cocounion.com/ ,如您已经有 ,如您已经有 ,如您已经有 ,如您已经有 Publisher ID,ID,ID,可以直接 可以直接 可以直接 进入 第二步。 第二步。
2。在项目中集成 畅思 广告平台 广告平台 SDK
2.1。将获取到的SDK开发包解压,libs文件夹里包含广告SDK;
2.2。将libs目录下的jar包引入到应用工程的依赖库中,拷贝jar包到Eclipse工程的libs目录下,如下图:

添加后,刷新工程,点击上图工程的“Android Private Libraries”目录,打开,如下面自动出现刚引入的jar文件,说明引入成功,如下图:

添加libad.so 库至libs\armeabi 下。步骤为右键点击libs 后New->Folder,新建的文件夹名为armeabi。新建完armeabi 文件夹后,将libad.so 拷贝到libs\armeabi,即可。如下图:

3.AndroidManifest.xml 文件配置
增加权限
⑴。 ChanceAd SDK 需要添加如下permission:


配置publisherID:
请在<Application>节点内增加如下内容:

3、 增加Service声明
请在配置中增加对service的注册,如下:

4。嵌入广告
(1)、嵌入 固定 广告
a。 通过xml布局文件嵌入固定广告位


(2)、嵌入精品推荐广告:
步骤:
声明 MoreGameAd 实例
设置监听(可选)
对其加载广告
在需要展示的时机展示精品推荐



原生精品推荐
原生精品推荐相对上述,更贴近 原生精品推荐相对上述,更贴近 android 系统,有更好的用户体验效果图可以参加上面的广告类。

嵌入插屏广告:

小米
小米应用商店的推广服务无需排期。在应用审核、签订协议、付费后,即可随时开启推广计划,确定推广时间。
1。将APP提交至小米应用商店
通过在dev.xiaomi.com填写应用名称、简介和图标等信息,您可以将APP提交至小米应用商店。
2。成为广告主并充值
在小米营销平台提交资质信息申请注册,小米团队将对资质信息进行审核。通过后您即可往账户中充值,并等待充值信息确认。
3。提交广告计划和创意
充值成功后,即可根据您的推广需求新建广告计划和创意,开始推广应用。
快赢
超闪公司旗下的快赢手游辅助发行服务平台正式面世,该平台只需要3小时、5步骤即可解决手游技术人员最头疼的多渠道接入问题。

快赢可根据开发者接入需求“自助勾选式”生成的前端(客户端)SDK;用于开发者二次开发的前端(客户端)接入平台的API接口协议;针对多种服务器端架构(PHP/JAVA/C++)的服务端接入源代码;面向开发者的渠道SDK、接入指导和更新服务。
本地打包,让数据更加安全
快赢高度安全保障也是极大亮点。快赢有着与以往SDK发布平台完全不同的概念。在数据安全方面,快赢创新启动了完全不同的管理模式。为了让开发者数据更加安全、放心的进行接入,快赢并没有延用其他SDK平台的数据云端中转方案,而是采用开源Server端代码,开发者自行搭建SDK数据服务器,所有数据内部传输。快赢只负责适配各渠道的差异,并提供给游戏所属方统一的调用方式及数据格式、以及相关使用示例,以便游戏所属方处理。不经过任何云端中转,确保游戏在SDK接入时的稳定性和用户信息的安全性。
四大特性打造更成熟的SDK平台式服务
快赢除了上述特性外,还同时具备更自主、更多服务的特点。整合快捷性、安全性、多服务性、自主性为一体的快赢,可以更好的为广大游戏开发者提供更成熟的SDK平台式服务体验。

快赢更自主的特性体现在面向会员提供全部前端接入的通讯协议进行二次开发。这就意味着开发者无需依赖任何第三方即可完成标准协议下的新渠道SDK接入,实现渠道发行的自由扩展。
同时,快赢不断丰富的平台功能实现更多服务的应用,真正实现游戏开发商用化。“傻瓜式”批量打包助手、游戏版本及资源ERP管理等辅助服务,云端游戏服务器架构、第三方登陆与社交分享、消息推送等产品商用化模块,都是非常实用的操作设计;与友盟、talkingdata、dataeye、testin等实现第三方合作可实现游戏精准的数据分析;开发者“勾选式”植入和选择服务, 2D及3D游戏开发引擎及其工具链体系的陆续推出,也将丰富游戏开发者的在快赢平台应用上的多维度体验。
豌豆荚
1。申请豌豆荚‘应用开发者’帐号,并提交应用。通过审核认证后,您的应用将在豌豆荚获得更多的展现机会,并可进一步和豌豆荚进行合作。
2。接入豌豆荚的游戏平台可以免费分享优质游戏用户群。豌豆荚提供了账户登录、游戏内支付和活动奖励体系等多重平台功能提升游戏的商业价值。
3.SDK展示
注册开发者账号,申请 Appkey和Secret ID;并下载最新版 SDK。
包名的命名原则为:公版渠道包名 + 后缀‘。wdj’,如 com.yourgame.wdj
每个 Appkey 仅能用于一个游戏。如果有多个游戏需要嵌入 SDK,请分别为每个游戏申请单独的 Appkey 及 ID,否则会导致登陆及支付失败。
支持Android SDK 2.3 及以上版本。Java JDK 1.6及以上版本。编译时请用Android SDK 4.0以上版本编译
请保证接入过豌豆荚SDK版本的游戏,旧版本的SDK包全部删除干净,然后再按照流程重新接入SDK。
请保证每次核对代码的一致性,成功接入3.0版本游戏如若更新版本,直接替换一下alipay_lib_resource,plugin-demo里面的文件内容即可,需要重新打包工程。
解压包展示如下:
其中:
alipay_lib_resource是支付接口,需关联项目。
api-doc是接口javadoc,对所有接口的说明。
plugin-demo是游戏demo包,对常用接口实现的样例。
server是支付的服务器回调demo,提供服务器端的代码参考。
接入FAQ(请仔细查看)
接入流程
第一步:将plugin-demo的assets文件夹下得所有内容拷贝到项目的assets
第二步:将plugin-demo的libs文件夹下得所有内容拷贝到项目的libs,(有ARM和ARMv7包的,请保持里面的所有文件一致)
第三步:将alipay_lib_resource 以lib_project 方式引入工程,并且将您的项目和 alipay_lib_resource 进行项目关联,U3D游戏可以将 alipay_lib_resource 中的资源拷贝到自己的项目中
第四步: 添加Application
- 将 plugin-demo 的 MarioPluginApplication.java 文件复制到游戏的package目录。
- 如果游戏拥有自己的 Appliaction ,将 MarioPluginApplication 中的方法拷贝到游戏 Application 对应的方法中去。
- 里面需要替换成申请的APP_KEY和SECURITY_KEY。
- 别忘记在AndroidManifest 里面添加name标签。
第五步:添加 AndroidManifest 内容
将plugin-demo 中 AndroidManifest 中的权限和配置拷贝到游戏的 AndroidManifest 中去。里面的OakenshieldActivity需要配置申请的APP_KEY。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<activity android:name=“com.wandoujia.oakenshield.activity.OakenshieldActivity” android:configChanges=“orientation|keyboardHidden|screenSize” android:windowSoftInputMode=“adjustResize” android:theme=“@android:style/Theme.Translucent.NoTitleBar”> <intent-filter> <action android:name=“com.wandoujia.oakenshield”/> <category android:name=“android.intent.category.DEFAULT”/> <!-- 将xxxx替换成自己申请的AppKey --> <data android:scheme=“Wandoujia-PaySdk-xxxx”/> </intent-filter> </activity> |
第六步: 初始化
- 在程序的第一个 activity 的 onCreate 方法中调用 wandouGamesApi.init(this)初始化
- 在程序的每一个 activity 的 onResume 和 onPause 中调用用 wandouGamesApi 对应的 onResume 和 onPause 方法,保证 SDK 插件化的正常运行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
private WandouGamesApi wandouGamesApi; @Override protected void onCreate(Bundle savedInstanceState) { super。onCreate(savedInstanceState); setContentView(R。layout。main); wandouGamesApi = MarioPluginApplication。getWandouGamesApi(); wandouGamesApi。init(this); } @Override protected void onResume() { super。onResume(); wandouGamesApi。onResume(this); } @Override protected void onPause() { super。onPause(); wandouGamesApi。onPause(this); } |
第七步:登陆部分接口展示,根据需求来实现接入。
1 2 3 4 5 6 7 |
void login(OnLoginFinishedListener listener); //调用豌豆荚登录/注册界面,获取uid和token void logout(OnLogoutFinishedListener listener); //注销豌豆荚账号 void addWandouAccountListener(WandouAccountListener listener) //悬浮窗登陆和注销状态的获取 WandouPlayer getCurrentPlayerInfo(); // 获取玩家的信息 |
关于LoginFinishType的类型的参考:
LoginFinishType参数 |
内容 |
cancle |
登陆失败 |
非cancle |
登陆成功 |
一般的登陆错误,例如密码或者账号错误,SDK会自行判断。
cancle类型是单独针对在注册登陆界面,按返回键导致登陆失败的回调。这个是必须要实现的接口。
在没有登陆成功的情况,不能去获取token,如果登陆失败的情况下,去获取token,会报空指针的异常。
如果需要实现切换账号功能,需要先调用 logout 再去调用 login 。
第八步:用户验证。
1 |
String getToken(long duration) //获取当前用户的Token 字符串 |
如果需要验证用户的有效性,请在客户端请求此接口,然后使用得到的token字符串去服务端验证。
Token的服务器端验证接口:https://pay.wandoujia.com/api/uid/check 方法:GET,大小写敏感如果 token 有效,则返回字符串 true ,无效则返回 false 编码:UTF-8
参数名 |
内容 |
uid |
登录账户 uid |
token |
登录账户验证信息 |
appkey_id |
游戏AppKey_id,数字类型 |
通过Login的回调onLoginFinishedListener中的UnverifiedPlayer来获取登陆成功用户的uid和token。
第九步:支付相关
网游支付 – 调用
1 2 |
void pay(Activity activity, String orderDesc, long moneyInFen, String outTradeNo, OnPayFinishedListener onPayFinishedListener) |
其中 orderDesc 道具名称,moneyInFen 为道具价格单位 分。
“GameOrderNo” 为游戏订单号,可自定义,最大长度为50字符。
onPayFinishedListener是监听支付回调的接口。
单机支付 – 调用
1 2 |
void singlePay(Activity activity, String orderDesc, long moneyInFen, OnSinglePayFinishedListener onSinglePayFinishedListener) |
其中 orderDesc 道具名称,moneyInFen 为道具价格单位 分。
onSinglePayFinishedListener 是监听支付回调的接口。
支付客户端回调 – 接收
网游支付 – 接收
1 2 3 4 5 6 7 |
public interface OnPayFinishedListener { public void onPaySuccess(PayResult payResult); // 支付成功 public void onPayFail(PayResult payResult); // 支付失败 } |
单机支付- 接收
1 2 3 4 5 6 7 8 |
public interface OnPayFinishedListener { public void onPaySuccess(PayResult payResult); // 支付成功 public void onPayFail(PayResult payResult); // 支付失败 public void onMobilePay(PayResult payResult); //单机支付回调,运营商支付接口(需自己实现) } |
附回调对象PayResult:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public interface PayResult { public Boolean getSuccess(); //是否支付成功 public Long getUid(); //用户ID public String getNick(); //用户昵称 public String getToken(); //用户token public String getOrderId(); //订单号 public String getOrderDesc(); //道具名称 public Long getMoney(); //道具价格 public String getOutTradeNo(); //游戏自定义订单号 } |
支付服务器端回调–通知游戏服务器
- 在订单支付成功后会立即以 POST 方式回调开发者提供的回调 URL
- 订单号必须保证唯一
- 配置回调地址
- 签名使用 RSA 验证,详细代码参见Zip 包内server.zip目录中的文件,我们已经提供服务器端 Java,PHP,C#,C++ 进行RSA验证的例子,请参考完成。
- 公钥使用上述例子的即可,安全性请参考RSA数字签名原理
- 订单支付失败不会回调
- 订单处理成功,返回字符串success,以PHP为例 echo “success”;即可。失败返回fail字符串。
- ‘重要’在接收到服务器返回通知的时候,必须同时校验buyerid、money 字段,校验由服务端进行编写。
POST回调参数
参数名 |
内容 |
类型 |
备注 |
content |
回调内容 |
String |
以PHP为例,($_POST[‘content’]) |
signType |
签名类型(RSA) |
String |
值固定 RSA |
sign |
签名 |
String |
其中 Content 参数,内容以JSON形式给出。
参数名 |
内容 |
类型 |
备注 |
timeStamp |
时间戳 |
String |
|
orderId |
豌豆荚订单id |
String |
|
money |
支付金额 |
String |
单位是(分) |
chargeType |
支付类型 |
String |
ALIPAY:支付宝 SHENZHOUPAY:充值卡 BALANCEPAY:余额 CREDITCARD :信用卡 DEBITCARD:借记卡 |
appKeyId |
appKeyId |
String |
|
buyerId |
购买人的账户id |
String |
|
out_trade_no |
开发者订单号 |
String |
创建订单时候传入的订单号原样返回 |
cardNo |
充值卡id |
String |
只有充值卡充值的时候才不为空 |
游戏服务器在收到回调通知后,应该首先进行签名验证,再进行业务处理。当游戏服务器没有正常返回 success 时,豌豆荚服务器会多次通知游戏服务器,24小时后放弃通知。对于24小时后的订单,可以进入豌豆荚后台发起手动回调。如果是已经处理成功的订单,后续收到的豌豆荚通知,也应该返回 success。
服务器回调联调
如果支付订单后没有收到豌豆荚服务器回调通知,首先请检查:
- 配置的URL是否正确,可在开发者后台里编辑,会立刻生效
- 检查客户端appkey是否正确
- 查看游戏服务器的access log。
- 在开发者后台里查询订单详情中的回调时间
确认以上没有问题后,可以在开发者后台里查询失败订单发起手动回调。
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$* {*;}
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$* {*;}
小米平台
在上传您的应用之前,请您先阅读我们的审核规范,以免耽误您的应用发布,只有符合审核规范的应用才会被收录。
审核规范链接:http://dev.xiaomi.com/doc/?p=211
1。 App基本知识
APP是英文Application的简称,即第三方应用程序,在应用商店中可以使用到的APP的基本知识基本上为应用名称,包名,应用图标,应用分辨率等。
- 应用包名: 应用的包名不是应用安装包的文件名,而是一个格式类似com.xiaomi.miliao的名称。包名是唯一的,同样包名的应用无法共存于小米应用商店中。(商务同学可以找开发了解)
- 应用签名: 签名也是验证应用的唯一信息,是应用程序的关键性密钥。如果您的APP中内置了签名,建议妥善保管不要丢失。
- 应用图标: ICON既为应用图标,小米应用商店严格遵守谷歌的开发规范,对应用的图标要求格式为PNG
- 应用分辨率: 应用分辨率需要适配小米手机全部机型:
米1/米1S的分辨率为854*480;
米2/米2S/米2A/红米/红米note的分辨率为1280*720;
米3/米4的分辨率为1920px*1080px;
小米平板的分辨率为2048px*1536px;
2。 提交应用流程
- 注册小米开发者后,就可以发布应用啦,进入开发者站后点击“小米手机及平板”
如下图:
点击“点击创建”或“创建应用”来创建您的应用, - 选择应用的默认语言、操作系统后输入您的应用名称,不超过20个字符,以后可以修改;并输入您应用的包名后点击“创建”按钮。
如下图:
- 创建完成后,您的应用并没有成功的发布,而是您会得到和您应用包名对应的的appID、AppKey和AppSecret,相关信息是接入小米开放提供服务的必要信息。
您可以创建新应用后,不立即发布您的应用,接入了相关的服务后,再选择上传您的应用。目前开放的服务如下图所示:
- 如果您并不需要接入任何的服务SDK,而是直接发布您的新应用,点击“发布应用”按钮即可,如果您的应用包名没有正确填写,点击“删除应用”按钮即可。
如下图所示:
- 点击“立即上传”选择您要上传的应用apk文件,提交(如果文件大于50M,请使用“大文件发布助手”);如果在上传应用过程中遇到问题,请尝试使用简单上传。
apk文件上传完毕后,会进入应用编辑详情页。包括:包名、应用名称、版本号(VersionName)和文件尺寸等信息,如果信息有误,请您重新检查您的apk文件是否正确。从应用包中读取的信息
设置应用类型
应用类型:目前应用类型分为:手机、平板、手机和平板;请选择您应用可以适配的设备类型。
应用分类:
选择符合应用主要功能的分类项目,如应用符合多个分类,则可以自由选择,但不能选择无关的分类。
设置发布范围目前支持的分发地区如下:中国大陆、台湾地区、香港地区(可多选)
设置应用的上线时间
默认为立即上线,如果您想尽快让您的应用上线则无需修改。
完善应用资料您可以选择填写不同语言的应用描述,在不同的地区显示。
注:不同地区所对应的语言优先级不同,如果您没有填写分发地区最高优先级的语言资料,会显示下一个优先级的语言资料。
语言优先级如下所示:
中国大陆: 简体中文 > 繁体中文 > 英文
台湾、香港地区: 繁体中文 > 简体中文 > 英文
例如:一个应用设置了在台湾地区上线,但只填写了简体中文和英文的资料,则在台湾地区会显示简体中文的资料。
- 以“简体中文”为例
(项目前*号的都为必填项)
应用名称(网页端和客户端显示的名称):
默认名称为在apk文件中读取出的名称,您可以适当的添加描述语,但手机端应用显示名称+描述语不能超过8个汉字字符或16个英文字符(如手机端应用显示名称本身就已经超过8个汉字或16个英文字符就只能使用应用的原名称,不能添加描述语);
版本名:
默认名称为apk文件中的版本号(VersionName): 可以添加某些特定版本名称,如新春版;
开发者名称:
默认为开发者账号的开发者名称,会显示在应用信息中,用户可以根据开发者名称找到您开发的其他应用。
关键字:
填写和应用功能相符的关键字,提高应用在应用商店SEO的效果,方便用户更容易通过关键字搜索到您的应用,不能使用和应用功能无关的关键字,不能加入相关应用的竞品名称。
应用介绍:
如实介绍应用功能和亮点,方便用户快速上手,不要有过多的SEO优化和空行。
官网、更新日志、测试账号,可以选择性填写。
填写完整的应用资料后,提交应用截图,若您的应用类型为手机和平板,则需要上传两套应用截图(手机和平板各一套)
应用截图至少需要提交三张符合尺寸要求的截图,截图不用转换图片方向,使用原始截图提交即可。注意:应用截图内不要包含第三方应用市场首发字样,不要提交重复截图。
- 填写后点击“保存并返回”,填写其他语言的流程和此相同,填写完毕后点击“下一步”
上传完美图标 (选填):
用于在小米设备桌面上显示完整图案,需上传尺寸为90*90、136*136、192*192、168*168图标:(仅支持PNG格式图标)
具体的审核规范请参照:http://dev.xiaomi.com/doc/?p=204
点击”提交”按钮,进入最后一步应用信息和截图全部确认无误,点击“提交”,1-3个工作日内小米应用商店团队会为您审核。如果超过3个工作日还未有审核结果反馈给您,请您联系 developer@xiaomi.com 咨询。
安智市场
一、游戏联运服务概述
安智游戏联运服务为开发者提供安全、透明、公平的一站式变现解决方案。在游戏开发时集成安智SDK ,即可使用安智的账号系统或支付功能,不必考虑用户登录、支付等额外的开发工作,也不必顾虑账号、支付等相关的安全问题,专注于开发优质的游戏,提高效益。
安智账号系统,拥有强大的用户资源,对游戏投放、推广具有强大的优势。可使用安智账号、腾讯QQ、新浪微博一账号登录多游戏客户端,免除用户注册的麻烦。同时通过安智账号服务体系,同时提供个人中心、礼包、论坛、消息、客服中心等游戏必备功能。
安智支付SDK,是安智为开发者提供的游戏变现服务之一,现已集成国内多家主流支付公司的服务,开发者只需在游戏内嵌入支付SDK,即可享受多样化的支付方式、查看清晰的交易报表、自助结算等多种温馨服务,从而大大节省开发者的支付维护成本。
二、服务优势
- 海量用户:整合安智数千万的活跃用户,开放给所有的合作资源方,借助安智平台的优势资源,为您带来丰厚收益。• 定期结算:将您的收入按时结算,保证您的资金迅速回流。结算数据清晰准确,方便您了解资源销售情况。• 开发支持:专业的开发技术支持,专业的QA测试,帮助开发者降低开发及运营成本,加快游戏上线的步伐。 三、资源下载
版本号 |
发布时间 |
资源下载 |
更新说明 |
2015-07-22 |
SDK和接入文档 |
1、增加我的礼券功能; 2、消费增加礼券与叠加支付功能; 3、增加账号安全引导功能; 4、增加充值返利活动提醒功能; 5、增加悬浮窗自动隐藏功能; 6、增加文字链展示功能; 7、优化消息详情页面; 8、优化个人中心UI设计; |
四、SDK功能说明
安智提供网络游戏、单机、棋牌三种类型的游戏联运服务
游戏类型 |
可接入的服务 |
网络游戏 |
1、账号系统:安智账号、腾讯QQ、新浪微博。 2、支付功能:安智币、支付宝、财付通、银联、充值卡、礼券 |
单机 |
运营商短代计费:移动MM/移动基地、联通沃商店、电信爱游戏(三个运营商需全 部接入)。 |
支付功能(安智单机支付SDK):必选(安智短代)、可选(支付宝、财付通、 银联、充值卡)。 |
|
棋牌游戏 |
1、账号系统:安智账号、腾讯QQ、新浪微博。 2、支付功能:安智币、支付宝、财付通、银联、充值卡、安智短代。 |
安智账号SDK包含安智账号、腾讯QQ、新浪微博登录,同时提供个人中心、礼包、论坛、攻略、消息、客服中心等游戏必备功能。
登录:用户在游戏中使用“安智账号”登录时, 可以使用邮箱、用户名、手机三种登录方式,采用增强的密码登录验证机制。注册:用户可使用手机号一键注册功能快速注册,也可通过用户名、邮箱进行注册。
登录后用户可使用个人中心、礼包、论坛、攻略、消息等功能。
个人中心:为用户提供个人资料管理、VIP专区、安智币充值、礼券、礼包、消息、消费记录查看、账号密码管理等功能。
礼包、论坛:接入SDK后您可在此平台我的软件列表中找到该游戏选择[发布礼包],详情参见发布礼包帮助页面,还可在安智论坛中给您提供相应的游戏版块,供用户交流互动。
客服中心、消息:用户可发送反馈给您,可在用户数据-用户反馈中查看用户提交的反馈,并回复,与用户直接沟通。用户可接收系统发送的消息,发送消息功能暂未对开发者开放。
我的礼券:用户通过充值返利活动获得,礼券可用于游戏内支付。
VIP专区、攻略:VIP是指用户满足一定条件后安智为其提供的特权服务;攻略为玩家提供一些游戏经验与心得,引导玩家熟悉并能尽快的对相关游戏规则进行了解。
2。 支付功能
用户使用游戏客户端过程中,购买游戏产品可以直接调用SDK客户端控件进行支付操作,充值成功后,SDK服务端会异步通知游戏服务端。
安智币:安智提供的手机用户用于购买各种付费业务的一种虚拟货币,目前主要用于支付安智运营的游戏、软件、手机小说等SDK端应用业务。 只要有安智账号,就可以对安智币账户进行充值和使用安智币进行消费。安智币账户充值的方式目前有:支付宝、移动/联通/电信充值卡、网银等, 可以在 SDK客户端或安智Web版用户中心(user.anzhi.com)操作充值。
安智币支付及充值图示:
游戏内支付图示:
五、注意事项
图片资源:请见接入文档资料包“LOGO及使用说明”—“游戏启动页”。
横屏 竖屏
图片资源:请见接入文档资料包“LOGO及使用说明”—“游戏图标角标”。
说明:
1)角标不可遮挡icon的主体元素,可根据实际情况布局到icon的4个边角。
2)角标必须严格遵守《LOGO使用说明》。
3)角标必须严格按照所提供的icon与角标的尺寸对应关系进行使用。
4)游戏启动页必须使用安智提供的启动页。
5)以上条件不符合时,游戏不予与接入。
应用汇

注册:
想在AppChina 应用汇的平台发布软件?赶紧“注册新用户”吧。按照页面提示完成注册并激活账户后,您就可以上传,更新,并实时管理软件啦。
上传:
填写软件名称和描述,上传截图和软件包,几分钟内即可快速完成软件上传。
审核:
AppChina 应用汇的工作人员会在软件上传后1~3个工作日内进行审核,并给予反馈信息,请耐心等待吧。

发布:
软件通过审核即会自动上架,出现在AppChina 应用汇的“最新上架”栏目中。祝贺您完成软件的发布!
1、如何上传新应用?
成功登录开发者中心之后,在首页点击“上传应用”,进入添加新应用页面。按照提示逐步填写软件信息,并上传截图和apk,完成后保存。
2、如何查看应用?
如图,在开发者中心点击“应用管理”,进入应用列表,可以查看到您上传过的所有软件,点击查看详情,可以看到软件的详细情况。
3、如何编辑应用?
在“查看详情”页面,点击“编辑软件描述”,进入软件描述的编辑页面,此页面仅仅对软件的名称,分类,描述,截图等属性做编辑修改,不能对软件apk包做任何修改。
4、审核流程是怎样的?
您完成软件的编辑,保存后,软件进入审核状态。一共有“等待审核”,“需要修改”,“审核通过”三个状态,其中“等待审核”表示审核人员还未对软件做审核,此时可以对软件内容进行编辑;“需要修改”状态下,您可以根据审核人员的修改意见进行修改,完成后再次进入“等待审核”的状态;“审核通过”表示软件通过工作人员的审核,可以在应用汇上架发布。
1、如何上传新版本?
应用管理->应用列表->查看详情,进入软件详情页面,点击“上传新版本”,即可对软件的apk包做操作,选择新版本上传之后,将会直接覆盖旧版本,保存后软件进入“等待审核”的状态。
2、查看软件版本
软件管理->应用列表->查看详情,进入软件详情页面,在软件截图及描述下方可以看到该应用的所有上传的版本,查看版本号以“版本:”后数字为准。在“状态:”后可看到软件的审核状态。
3、版本上下架管理
软件管理->应用列表->查看详情,进入软件详情页面,在软件截图及描述下方可以看到该应用所有上传的版本,每个版本后方都标示着软件的上下架及审核状态,已经上架过的应用会根据状态不同在下方显示“点击上架”,“点击下架”按钮,开发者可以通过上述两个按钮对应用进行上下架操作申请。
以上就是四家大渠道的对接方法,相信大家都对们有了一些具体的了解,想了解更多相关内容请关注新浪游戏。我们会为您带来更多他的业内资讯,敬请期待。