当前版本: 1.0
一 接入规则
1.1 谁来阅读此文档
1.2 注意事项
1.3 接入描述
1.4 特别注意
2 接口地址
2.1 登录流程
2.1.1 登录接口
2.1.2 前端初始化
2.1.3 选择服务器接口
2.1.4 角色创建接口
2.2 充值流程
2.2.1 充值唤起
2.2.2 充值异步回调通知
2.3 功能接口
2.3.1 用户分享接口
2.3.2 用户收藏接口
1 接入规则
1.1 谁来阅读此文档
游戏平台和游戏方技术人员。
1.2 注意事项
接口参数大小写敏感。
request和response的编码格式为UTF-8。
1.3 接入描述
游戏对接时游戏方提供商家名称、游戏名称、游戏登录地址、支付异步通知地址,wancms向游戏方提供app_id、login_key、pay_key(应用加密字段,请妥善保管)及游戏测试地址。用户访问游戏时wancms会采用iframe方式访问游戏登录地址并带上参数open_id(用户唯一识别ID)及sign(用户登录口令)及channel(渠道标识,在sdk初始化时用到可为空),游戏请求各个接口时需取得用户授权参数open_id及sign。请求校验参数sign为请求参数与值加login_key(md5("open_id=xxx&key={login_key}"))的MD5加密。
1.4 特别注意
1、所有接口接入之前必须先提供(商家名称、游戏名称、游戏登录地址、充值回调地址),wancms提供该游戏的密钥对(app_id、login_key、pay_key)和游戏测试地址。
2、游戏开发对接需在wancms提供的测试地址中进行才能唤起支付。
3、每款游戏对应一组密钥对(app_id、login_key、pay_key)。
4、wancms用户登录游戏后,会分配给游戏该用户的open_id及sign。其中,同一个用户对同一款游戏来说,open_id是固定不变的,游戏方可以将open_id与自身的用户系统user_id绑定。因此,可对同一个wancms用户做游戏存档等操作。
5、请妥善保存游戏的密钥对。login_key、pay_key不可直接暴露在前端。如发现泄露,请尽快联系wancms进行更换。
6、收藏功能用于实现wancms的包含但不限于微端下载、发送桌面、关注公众号,wancms会根据当前不同客户端实现不同功能。
2 接口地址
2.1 登录流程
2.1.1 登录接口(必接)
1、请求地址:http://gameurl/ (游戏入口地址,游戏方提供)
2、请求方式:get 由wancms平台iframe跳转至游戏地址
3、请求参数:
open_id:用户open_id,
sign:验证sgin,
channel:用户渠道,
is_favorite:是否收藏(0:未收藏,1:已收藏),收藏功能用于实现包括但不限于:微端下载、发送桌面、关注公众号等。,
2.1.2 前端初始化(必接)
游戏加载时加载wancmsjs文件,并做初始化 <script src="http://h5.wancms.com/themes/main_template/Public/h5style/js/h5sdk.js" type="text/javascript>"</script>
1、请求参数:
app_id:应用id,
open_id:用户open_id,登录授权时传入,
channel:平台渠道标识,登录授权时传入
2、请求参数:
var initdata = {
app_id:"XXX",
open_id:"XXX",
channel: "XXX"
};
3、请求方式:在游戏加载时调用 初始化sdk:wancmssdk.init(initdata);
4、返回值 无
2.1.3 选择服务器接口(必接)
1、请求参数:
app_id:游戏id,
open_id:用户open_id,
server_id:服务器id,
server_name:服务器名称
2、请求方式:
var serverData = {
app_id:"xxx",
open_id:"123456789abc",
server_id:"123456789abc",
server_name: "123456789abc"
};
调用查询接口方法: wancmssdk. selectServer (serverData)
3、请求试例
<head>
<script src="http://h5.wancms.com/themes/main_template/Public/h5style/js/h5sdk.js" type="text/javascript"></script>
<script>
wancmssdk.init();
var serverData = {
"app_id":'xx',
"open_id":'11111111',
"server_id":'2222222',
"server_name":'aaaaaaa',
};
wancmssdk.selectServer(serverData);
</script>
</head>
4、返回值 无
2.1.4 角色创建接口(必接)
1、请求参数:
app_id:游戏id,
open_id:用户open_id,
server_id:服务器id,
server_name:服务器名称
role_id:角色id
role_name:角色昵称
role_level:角色等级
2、请求方式:
var roleData = {
app_id:"xxx",
open_id:"123456789abc",
server_id:"123456789abc",
server_name: "123456789abc"
role_id: "123456789abc"
role_name: "123456789abc"
role_level: "xxx"
};
调用查询接口方法: wancmssdk. createRole (roleData)
3、请求试例
<head>
<script src="http://h5.wancms.com/themes/main_template/Public/h5style/js/h5sdk.js" type="text/javascript"></script>
<script>
wancmssdk.init();
var roleData = {
"app_id":'xx',
"open_id":'11111111',
"server_id":'2222222',
"server_name":'aaaaaaa',
"role_id":'aaaaaaa',
"role_name":'aaaaaaa',
"role_level":'xx',
};
wancmssdk.createRole(roleData);
</script>
</head>
4、返回值 无
2.2 充值流程
2.2.1 充值唤起(必接)
1、请求参数:
app_id:游戏id,
open_id:用户open_id,
bill_no:游戏充值订单号(游戏方可唯一识别),
goods_name:商品名称,
ext:额外参数,充值后原样返回,
total_fee:充值元宝数,1元RMB = 10元宝 .(大于1,且不包含小数),
sign:请求校验参数(签名需要在后端生成后再返回前端,pay_key不直接暴露在前端)md5(bill_no=XXX&ext=XXX&goods_name=XXX&open_id=XXX&secret_key={pay_key}&total_fee=XXX)
2、请求方式
引用js文件:<script src="http://h5.wancms.com/themes/main_template/Public/h5style/js/h5sdk.js" type="text/javascript"></script>,
初始化sdk:wancmssdk.init(),
拼装参数
var paydata = {
"app_id":'xxx',
"open_id":'111111111111111',
"bill_no":'33333333333',
"goods_name":'游戏大礼包',
"total_fee":1,
"ext":'abc',
"sign":'aaaaaaaabc',
},
调用支付方法:wancmssdk.pay( paydata, function (code, msg) { alert("支付 code="+code+",msg="+msg);
示例代码
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<script src="http://h5.wancms.com/themes/main_template/Public/h5style/js/h5sdk.js" type="text/javascript"></script>
<script>
wancmssdk.init();
var paydata = {
"app_id":'xxx',
"open_id":'111111111111111',
"bill_no":'33333333333',
"goods_name":'游戏大礼包',
"total_fee":1,
"ext":'abc',
"sign":'aaaaaaaabc',
};
wancmssdk.pay( paydata, function (code, msg) {
alert("支付 code="+code+",msg="+msg);
});
</script>
</head>
<body>
</body>
</html>
3、返回值
code | msg |
---|---|
5 | 关闭支付 |
6 | 支付成功 |
7 | 支付失败 |
8 | 取消支付 |
9 | 支付参数错误 |
10 | 支付参数数量错误 |
2.2.2 充值异步回调通知(必接)
1、请求地址:由游戏方提供通知地址
2、请求方:充值成功后由wancms服务端请求至游戏方服务器
3、请求方式:异步get请求
4、请求参数:
app_id:游戏App_id,
open_id:用户open_id,
bill_no:充值订单号,游戏请求充值时传递给wancms,
orderid:平台订单号,
ext:额外参数,游戏请求时传递给wancms,
price:充值RMB(带两位小数点),
status:充值状态(success:充值成功,fail:充值失败),
sign:请求校验参数md5(app_id=XXX&bill_no=XXX&ext=XXX&open_id=XXX&price=XXX&secret_key={pay_key}&status=XXX)
5、返回值:
success:异步通知成功,且游戏已进行处理,
fail:异步通知失败
2.3 功能接口
2.3.1 用户分享接口
1、请求参数:
open_id:用户open_id,
2、请求方式
引用js文件:<script src="http://h5.wancms.com/themes/main_template/Public/h5style/js/h5sdk.js" type="text/javascript"></script>,
初始化sdk:wancmssdk.init(),
拼装参数
var shareData = {
"open_id":'1234567890',
};
调用查询接口方法:wancmssdk.share( paydata, shareData (code, msg) { alert("查询 code="+code+",msg="+msg);
示例代码
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<script src="http://h5.wancms.com/themes/main_template/Public/h5style/js/h5sdk.js" type="text/javascript"></script>
<script>
wancmssdk.init();
var shareData = {
"open_id":'1234567890',
};
wancmssdk.share( shareData, function (code, msg) {
alert("查询 code="+code+",msg="+msg);
});
</script>
</head>
<body>
</body>
</html>
3、返回值示例
{
code:错误编码,
msg:提示信息,
data: {
}// 目前为空 只根据状态码为101即可判断分享成功
}
2.3.2 用户收藏接口
1、请求参数:
open_id:用户open_id,
2、请求方式
引用js文件:<script src="http://h5.wancms.com/themes/main_template/Public/h5style/js/h5sdk.js" type="text/javascript"></script>,
初始化sdk:wancmssdk.init(),
拼装参数
var favoriteData = {
"open_id":'111111111111111',
};
调用查询接口方法:wancmssdk.favorite( favoriteData, shareData (code, msg) { alert("查询 code="+code+",msg="+msg);
示例代码
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<script src="http://h5.wancms.com/themes/main_template/Public/h5style/js/h5sdk.js" type="text/javascript"></script>
<script>
wancmssdk.init();
var favoriteData = {
"open_id":'111111111111111',
};
wancmssdk.favorite( favoriteData, function (code, msg) {
alert("查询 code="+code+",msg="+msg);
});
</script>
</head>
<body>
</body>
</html>
3 附录
3.1 平台参数列表说明
字段名 | 类型 | 说明 |
open_id | String | 用户id |
app_id | String | 游戏id |
sign | String | 签名, md5(param1=XXX& param2=XXX& paramN=XXX&secret_key=xxx) |