提交 0aefbfc5 作者: 刘添

删除 AndroidSDK对接文档

上级 96ab1ba7
# Android SDK 对接文档-v1.0 ++ /dev/null
# Android SDK 对接文档-v1.0
### 目录
1.[接入说明](#sec1)
    1.1 [术语表](#sec1.1)
    1.2 [数据字典](#sec1.2)
    1.4 [主动登录](#sec1.4)
    1.5[下单逻辑](#sec1.5)
2.[Android SDK 接入](#sec2)
    2.1 [配置导入 Android SDK](#sec2.1)
        说明
        SDK 地址
        必要参数
        导入示例
    2.2 [Android SDK 初始化](#sec2.2)
        说明
        调用方式
        示例
    2.3 [登录](#sec2.3)
        说明
        链接参数
        示例
    2.4 [SDK 游戏下单支付](#sec2.4)
        说明
        调用方式
        请求参数
        返回参数
        示例
    2.5 [SDK 角色上报](#sec2.5)
        接口说明
        调用方式
        请求参数
        返回参数
        示例
## 1. 接入说明<a name="sec1"></a>
### 1.1 术语表<a name="sec1.1"></a>
> | 名称 | 说明 |
> | ----------- | --------------------------------------------------------------------------------------------------- |
> | CP | 游戏研发商。 |
> | Android_SDK | 由平台方提供给游戏研发商,用于游戏客户端接入平台登录,支付。 |
> | SDK 服务 | 由平台方开发,用于完成 SDK 的登录,支付流程,承接游戏服务端的数据。 |
> | 游戏服务 | 游戏研发商开发,为游戏提供服务。 |
> | 游戏客户端 | 游戏研发方商开发的网页版游戏。 |
> | 支付服务 | 由平台方调用支付服务,Google等 |
> | 游戏盒子 | 由平台方开发的游戏总入口,可以实现游戏登陆,支付,切换等;Android 游戏以 iframe 的形式在游戏盒子中运行。 |
> | Android 游戏入口 | 由 CP 方提供,进入 Android 游戏的入口链接。 |
### 1.2 数据字典<a name="sec1.2"></a>
> | 名称 | 说明 |
> | ----------- | -------------------------------------------------- |
> | player_id | 用户在平台的一个游戏中的唯一标识。 |
> | user_token | 用户在平台登录的会话标识。 |
> | game_id | 主游戏下的平台的唯一标识。 |
> | main_game_id | 主游戏在平台的唯一标识。 |
> | game_secret | 平台方提供,游戏签名秘钥。 |
> | cp_order_id | 游戏研发商订单唯一标识 |
> | order_id | 平台方订单唯一标识,与 cp_order_id 一一对应 |
>
### 1.4 主动登录<a name="sec1.4"></a>
```mermaid
sequenceDiagram
游戏客户端->>Android_SDK:调用登录
Android_SDK->>玩家:重新登录
玩家-->Android_SDK:账号密码
Android_SDK->>SDK服务:账号密码&game_id
SDK服务-->Android_SDK:player_id,user_token,game_id
Android_SDK->>Android_SDK:三方登录(google,facebook)
```
### 1.5下单逻辑
```mermaid
sequenceDiagram
玩家->>游戏客户端: 充值
游戏客户端->>Android_SDK: 订单信息
Android_SDK->>玩家:询问支付方式
玩家-->>Android_SDK:支付方式
Android_SDK->>SDK服务器:订单信息&支付方式&os
SDK服务器-->>Android_SDK:订单号&支付渠道信息
Android_SDK-->>游戏客户端:订单状态(待支付)
Android_SDK->>玩家:等待支付
玩家-->>Android_SDK:支付
Android_SDK->>支付服务:调用支付
支付服务->>SDK服务:支付结果
SDK服务->>游戏服务:支付结果
游戏服务-->>SDK服务:success/fail
游戏服务->>游戏客户端:发货通知
游戏客户端-->>玩家:发货
```
## 2. AndroidSDK 接入<a name="sec3"></a>
### 2.1 配置导入 Android SDK<a name="sec3.1"></a>
##### 说明
> 游戏客户端通过引入外部 Maven方式或者aar包
##### SDK 依赖地址
> implementation 'com.zwwl.legend.sdk:legend:1.0.0'
##### 必要参数
> | 参数 | 说明 |
> | ----------- | ---------------------------------- |
> | game_id | 游戏唯一标识,由平台方提供 |
> | main_game_id | 主游戏唯一标识,由平台方提供 |
##### 导入示例
1.1、在主工程目录下build.gradle中的 (如遇到拉取不到仓库可使用阿里云代理):
```
maven { url 'https://maven.aliyun.com/repository/jcenter' }
```
> ```
allprojects{
repositories{
maven { url 'http://nexus.zwwlkj01.top/repository/Android/' }
}
}
> ```
1.2、在APP子工程中build.gradle中添加依赖地址
```
implementation 'com.zwwl.legend.sdk:legend:1.0.0'
```
### 2.2 Android SDK 初始化<a name="sec2.2"></a>
在主工程MainActivity中初始化init方法
```
/***
init方法参数1、当前工程上下文、2游戏game_id(可为空,但是在AndroidManifest.xml中必须设置)3、statue渠道号(可为空、作为拓展参数使用)
*/
GameService.getInstance().init(this,"1","")
```
### 配置游戏game_id
在主工程AndroidManifest.xml清单文件中配置Meta参数,name值:game_id、value值:即平台游戏ID
```
<meta-data
android:name="game_id"
android:value="1"/>
//主游戏ID
<meta-data
android:name="main_game_id"
android:value="1"/>
```
### 2.3 调用登录方法<a name="sec2.3"></a>
```
GameService.getInstance().showLogin(object : OnLoginListener<Any?> {
override fun loginSuccess(data: Any?) {
}
override fun loginError(data: Any?) {}
})
```
### 退出登录方法
```
GameService.getInstance().loginOut(object:InitZyCallback{
override fun onSuccess(status: String?) {
}
override fun onFailed(o: String?) {
}
})
```
### 2.4下单方法<a name="sec2.4"></a>
```
private fun googlePlay(){
val data = CustomPayParam()
val role = CustomPayParam.RoleBean()
val orderInfo = CustomPayParam.OrderBean()
role.event = "other"
role.server_id = "100001"
role.role_name = "主宰传奇"
role.cp_role_id = System.currentTimeMillis().toString() + ""
role.server_name = "主宰服"
role.role_level = "83"
role.role_vip = "0"
orderInfo.cp_order_id = System.currentTimeMillis().toString() + ""
orderInfo.amount = "100"
orderInfo.product_price = "100"
orderInfo.product_id = "1505dian" //Google后台配置商品ID
orderInfo.product_cnt = "1"
orderInfo.product_name = "1元档充值"
orderInfo.product_desc = "商品"
orderInfo.ext = "测试数据"
data.role = role
data.order = orderInfo
GameService.getInstance().googlePlay(data,object :OnPlayListener<Any>{
override fun onSuccess(t: Any?) {
}
override fun onFailure(msg: String?) {
}
})
}
```
调用支付方法时请在Activity中的生命周期onDestroy方法中调用GameService.getInstance().onDestroy()
```
override fun onDestroy() {
super.onDestroy()
GameService.getInstance().onDestroy()
}
```
### 2.5角色上报(角色上报参数字段请参考文档字段说明)<a name="sec2.5"></a>
```
private fun setRoleReporting(type:String){
val map=HashMap<String,String>()
map["attack"] = "0"
map["chapter_index"] = "0"
map["combat_num"] = "0"
map["cp_role_id"] = "0"
map["event"] = type
map["gang_name"] = "unknown"
map["main_city_level"] = "0"
map["online_time"] = "0"
map["power"] = "0"
map["profession"] = "unknown"
map["reiki_num"] = "0"
map["role_level"] = "23"
map["cp_role_id"] = "0"
map["role_name"] = "啊啊啊"
map["role_vip"] = "0"
map["server_id"] = "4433175"
map["server_name"] = "4433175"
map["sponsor_level"] = "0"
map["trans_level"] = "0"
GameService.getInstance().setRoleReporting(GsonUtils.toJson(map),"",mPayerId,object :RoleInfoCallBack<Any>{
override fun onSuccess(t: Any?) {
mTvRoleInfo.text=t.toString()
}
override fun onFailure(msg: String?) {
}
})
}
```
| 名称 | 类型 | 是否必须 | 默认值|说明 |
|:--------------|-------:|-----:|-----:|-----------------:|
| cp_order_id | string | 必须 || CP订单ID |
| amount | number | 必须 | |商品总价(单位:分 |
| product_price | number | 必须 | |商品价格(整数,后台自动换算分) |
| product_id | String | 非必须 |0| 商品ID |
| product_cnt | number | 必须 | |商品数量 |
| product_name | string | 必须 |""| 商品名称 |
| product_desc | string | 非必须 |""| 商品描述 |
| ext | string | 必须 |""| 订 调用方定义 单额外信息用(json)|
| event | string | 必须 |""| 事件|
| server_id | string | 必须 |0| 区服id |
| server_name | string | 必须 |""| 区服名称|
| cp_role_id | string | 必须 | cp角色id |
| role_name | string | 必须 | ""|角色名称 |
| role_level | string | 必须 |0| 角色等级 |
| role_vip | string | 必须 | 0|角色vip等级 |
| role_id | string | 必须 |0| 角色ID |
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论