# H5SDK接入文档
### **demo演示地址 `http://play.jin908.com/1563422358948475/0`**
*****
## 一.适用范围
该SDK适用于H5网页游戏
## 二.如何集成
游戏猫H5SDK推荐使用标签方式引入JS
```
<script async src="http://play.jin908.com/sdk/h5sdk.js"></script>
```
****请保持[http://play.jin908.com/sdk/h5sdk.js](http://play.jin908.com/sdk/h5sdk.js)域名及路径不变,我们会保持版本最新,请不要下载下来使用,避免受到旧版本的影响****
## 三.接口调用
#### 3.1 登录 (切换账号)
```
YXMSDK.userLogin()
```
调用此接口无须传递任何参数,登录流程在H5SDK内部完成,CP只需调起即可
调用场景:进入游戏主页调用
##### 3.1.1 登录回调
```
YXMSDK.loginCallback = function(data) {
// data = {state: '1',openId:'xxxx',message:'xxxx'}
// state=> 1:成功,2,失败
// message => 返回的基础信息
// 登录回调逻辑
}
```
##### 3.1.2 登出回调(切换账户)
```
YXMSDK.logoutCallback = function() {
// 无参数返回 cp需执行角色登出游戏逻辑
// 登出回调(切换账户)回调逻辑
}
```
### 3.2 支付
3.2.1,首先获取商品信息
```
YXMSDK.createOrder();
```
参数说明:
| 参数名 | 参数类型 | 必填| 参数说明|
| --- | --- | ---| ---|
| cpOrderId | string | 是| 订单id|
| amount | number | 是|商品金额(元) (大于等于0.1元)|
| goodsDesc | string |是 | 商品描述|
| notifyUrl | string |是 |发货地址 |
| roleId | string |是 |角色id |
| roleName | string |是 |角色名称 |
| roleServerName | string |是 | 角色所在区服名称 |
| roleServerId | string |是 | 角色所在区服id |
| extras | string |否 | 透传参数 |
| roleGrade | string |是 |角色等级 |
示例:
```
YXMSDK.createOrder({
cpOrderId: '2091828',
amount: 10.0,
goodsDesc: '钻石',
notifyUrl: 'http://mock.xxxx.cn/mockjsdata/11/sdk/notify',
roleId: '1',
roleName: '愤怒的小鸟',
roleServerName: '角色区服名称',
roleServerId: '10',
extras: '',
roleGrade: '10'
})
```
3.2.2,调起支付回调
```
YXMSDK.payCallback = function(data) {
// 完成支付的回调数据
// data = {state: 1,message: 'xxx'}
// state=> 1:成功,2:取消 3,失败
// message => 返回的支付结果信息
}
```
#### 3.3 角色上报
使用场景
1:创建角色
2:选择角色,进入游戏
3:等级提升
4:修改角色名称
`YXMSDK.uploadGameRoleInfo();`
参数说明:
| 参数名 | 参数类型 | 必填| 参数说明|
| --- | --- | ---| ---|
| roleId | string | 是| 角色id|
| roleName | string | 是|角色名称 |
| roleServerId | string |是 | 角色所在区服id|
| roleServerName | string |是 |角色所在区服名称 |
| roleGrade | string |是 |角色等级 |
示例:
```
YXMSDK.uploadGameRoleInfo({
roleId: '221',
roleName: 张三',
roleServerId: '10',
roleServerName: '角色区服名称',
roleGrade: '10'
})
```