微信小游戏平台sdk对接
使用说明
项目使用说明:将SDK提供的FOPlatform.ts文件放入项目libs目录下,在Main.ts文件中即可通过foplatform.xxx() 访问FOPlatform内的相应函数。 通过layabox导出微信小游戏项目后,将SDK提供的foplatform.js放入导出后项目的libs目录即可。
1.初始化(必接)
1.1.介绍:
该接口用于向SDK传入相关参数,方便调用其他接口时不需要每次都传入相同的参数。进入小游戏时调用。
1.2:参数说明
| 参数 | 类型 | 是否必填 | 说明d |
|---|---|---|---|
| appKey | string | yes | Appid(平台方提供) |
| appSecret | string | yes | 密钥(平台方提供) |
| gameVersion | string | yes | 版本控制研发定义好 |
| debug | boolean | no | 是否打印日志(true, false) |
1.3:例子
- 调用
foplatform.init(Object params, function callback);
- params:
params = {
appKey:'',
appSecret:'',
gameVersion:'1.0.0',
debug: false //是否显示log日志,true,false
}
1.4:返回值
- 成功:
{
errno: 0,
error: "success"
}
- 失败:
{
errno: 999,
error: "fail"
}
2.登录(必接)
2.1.介绍:
该接口用于CP向平台上报登录信息,玩家登录完成后调用
2.2:参数说明
无
2.3:例子
- 调用
foplatform.login({}, function callback);
- params:
{}
2.4:返回值
- 成功:
{
"errno": 0,
"error": "success",
"data": {
"openid": "oC1Om662-2BTCHr6Mm3v4jB419NQ",
"uid": "1731888",//用户平台uid
"reg_time": "2024-04-18 14:02:44",//注册时间
"unionid": "",
"chid": "1",//渠道号
"pkg": "",
"clients": "0",
"is_invite": "1",//0:未验证,1:已验证
"reg_media": "byte",//注册媒体
"user_tag": 0,
"platid": "1025",
"advertiser_id": "",
"showPay": 0,
"payStatus": 1,
"payTips": "\u5ba2\u670d\u5145\u503c\u5f00\u542f",
"user_check_str": "97cb20e9271036d3db9c64b8535bc8d0,oC1Om662-2BPCHr6MmJv4jB4S9NQ,1731888,1713780560",
"spid": "",//平台标识
"token": "d7d639687b1b1757eb075f2d574c57ce", //登录成功token
"bindtel": 0 // 是否绑定手机号(0=未绑定 1=绑定)
}
}
- 失败:
{
errno: 30001,
error: "很抱歉您的账号被锁定"
}
3.上传角色信息(必接-执行2登录上报之后才可调用)
3.1.介绍:
上传玩家信息用于记录,参考参数Type类型描述情况发生时调用。
3.2:参数说明
| 参数 | 类型 | 是否必填 | 说明d |
|---|---|---|---|
| role_id | string | yes | 角色ID |
| grade | number | no | 传递用户在线累计时长单位秒,例如300即累计5分钟 |
| blance | number | no | 拥有钻石数量 |
| vip_grade | number | no | VIP等级 |
| is_app | string | no | 0:小游戏,1:app(app类型必传递) |
| server_id | number | yes | 所在区服ID(无分区填1) |
| server_name | string | no | 区服名称 |
| role_create_time | number | no | 角色创建时间(时间戳) |
| role_nickname | string | no | 角色昵称 |
| type | number | no | 角色变更事件 1:创建角色;2:角色升级;3:进入游戏;4:昵称变更 |
3.3:例子
- 调用
foplatform.uploadRole(Object params, function callback);
- params:
params = {
role_id: '5555',
grade: 36,
blance: 100,
vip_grade: 0,
server_id: 3,
server_name: '',
role_create_time:16561616,
role_nickname:'',
type: 1
}
3.4:返回值
- 成功:
{
errno: 0,
error: "success"
}
- 失败:
{
errno: 999,
error: "fail"
}
4.支付(执行登录上报之后才可调用)
4.1.介绍:
调用平台支付接口,用于购买。
4.2:参数说明
| 参数 | 类型 | 是否必填 | 说明d |
|---|---|---|---|
| psid | number | yes | 游戏区服id(无分区填1) |
| amount | number | yes | 平台支付金额(单位元,允许值见备注) |
| role_id | string | yes | 角色ID |
| is_app | string | no | 0:小游戏,1:app(app类型必传递) |
| name | string | no | 商品名称(app类型必传递) |
| rolename | string | no | 角色名称(app类型必传递) |
| desc | string | no | 商品描述(app类型必传递) |
| orderno_app | string | no | 订单ID(游戏方自己创建的订单ID用于对账,app类型必传递) |
| extra | string | no | 扩展字段,透传 |
备注:价格只允许下列值:参考微信小游戏的规则.
4.3:例子
- 调用
foplatform.pay(Object params, function callback);
- params:
params = {
psid: 1, //区服
amount: 6, //标价金额(Int)是
role_id: '1',
orderno_app: '1231456',
extra: '1231456'
}
4.4:返回值
- 成功: -(微信PC 返回data数据结果,研发callback回调可判断qrcode_url是否存在且有值,游戏内加载支付二维码弹窗)
- 最终呈现效果:1.关闭按钮 2.白底弹窗 3.二维码尺寸

- data参数说明
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| order_id | number | yes | 订单ID |
| qrcode_url | string | yes | 支付二维码图片链接 |
{
errno: 0,
error: "success",
data:[
order_id: "2309161029524547006950333",
qrcode_url: "https://pay.51.com/qrcode/small?data=https://wxgapi.51.com/api/pay/wechatOrder?order_id=2309161029524547006950333&token=121ec69f54ef5221becdb542d1e5ef80"
]
}
- 失败:
{
errno: 999,
error: "fail"
}
5.游戏分享
5.1.介绍:
该接口用于CP游戏分享
5.2:参数说明
无
5.3:例子
- 调用
foplatform.shareGame(function callback);
- params:
5.4:返回值
- 成功:直接弹出分享窗口
{
"errno": 0,
"error": "success"
}
- 失败:
{
errno: 999,
error: "fail"
}
6.游戏公告
6.1.介绍:
该接口用于CP游戏获取游戏公告列表
6.2:参数说明
无
6.3:例子
- 调用
foplatform.notice(function callback);
- params:
6.4:返回值
- 成功:
{
"errno": 0,
"error": "success",
"data": {
"open_tips": 0,
"notice_list": [
{
"id": "16",
"gid": "100",
"title": "《龙域世界》25区4月11日9点火爆开启",
"content": "<p><br></p><p> 《龙域世界》是一款西方魔幻动作类RPG游戏,在这款游戏中,玩家将扮演一名初入龙域大陆的人类战士,与神圣的远古巨龙们共同抵御强大的邪恶势力,人类勇士们在危机四伏的环境中一点点历练成长,最终成为抵御邪恶实力的重要力量。</p><p>开服时间:2023年4月11日9点<br>服务器名:25区-龙域战歌<br>测试类型:不删档测试</p><p><br></p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p>",
"menu_name": "开服公告",
"content_img_url": "",
"update_time": "2023-04-11 09:42:33"
},
{
"id": "15",
"gid": "100",
"title": "《龙域世界》4月6日版本更新公告",
"content": "<p> </p><p>亲爱的勇士:</p><p> 为向您提供更为丰富的游戏内容,《龙域世界》 全服将于2023年4月6日10:30—11:30进行停服更新,届时请大家提前做好下线准备,以免造成不必要的损失。服务器开启时间将根据更新进度提前或延迟,由此给大家带来的不便,敬请谅解!</p><p>更新区服:1区-14区<br>\n\n更新时间:2023年4月6日10:30—11:30</p><p>更新内容:</p><p>1、优化息屏,优化后手机将不息屏;<br>\n\n2、优化选服页,选服页默认玩家上次登录的区服;<br>\n\n3、增加断线重连功能;<br>\n\n4、优化游戏资源,游戏更流畅;<br>\n\n5、新增寻宝玩法,每日充值,打怪掉落也可获得寻宝钥匙;<br>\n\n6、新增大陆屠龙,开启屠龙任务之后可进入第四大陆;<br>\n\n7、新增装备铭文玩法,可以第四大陆npc处参与玩法;<br>\n\n8、新增第四大陆地图数量;<br>\n\n9、新增龙之特戒,幸运戒指将合并至龙之特戒内;<br>\n\n10、新增死亡后引导弹窗;<br>\n\n11、装备图标及名称更新;<br>\n\n12、新增部分玩法公告提醒;<br>\n\n13、优化资源找回,更新后找回内容将和实际活动活动内容一致;<br>\n\n14、龙池夺宝地图替换;<br>\n\n15、推荐打宝地图机制优化,将按照当前转生等级可进入的地图推荐;<br>\n\n16、神秘商店暂时关闭;<br>\n\n17、远古遗迹第五层暂时关闭;<br>\n\n18、修复部分已知bug;<br>\n\n19、优化部分画面表现;<br>\n\n20、调整转生攻击力百分比加成;</p><p><br>\n<br>\n</p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p>",
"menu_name": "更新公告",
"content_img_url": "",
"update_time": "2023-04-11 09:24:56"
}
]
}
}
- 返回信息说明:
| 参数 | 类型 | 说明 |
|---|---|---|
| open_tips | number | 公告开关0:关闭不弹出,1:开启公告(默认公告发行是关闭状态) |
| notice_list | number | 公告列表 |
| -- menu_name | string | 公告菜单名称 |
| -- content | string | 公告内容 |
| -- content_img_url | string | 公告内容图片链接地址 |
- 失败:
{
errno: 999,
error: "fail"
}
7.内容安全
7.1.介绍:
该接口用于CP游戏检查敏感内容,前端发送聊天之前先调用该接口检查
7.2:参数说明
无
7.3:例子
- 调用
var content = “123”;
foplatform.checkWords(content,function callback);
- params:
7.4:返回值
- 成功:
{
"errno": 0,
"error": "内容合法",
"data": []
}
- 失败:
{
errno: 1,
error: "内容不合法,
data: []
}
8.客服
8.1.介绍:
该接口用于CP游戏唤起客服窗口
8.2:参数说明
无
8.3:例子
- 调用
var from = "game";
foplatform.kefu(from,function callback);
- params:
8.4:返回值
- 成功:直接唤起客服
{
"errno": 0,
"error": "success"
}
- 失败:
{
errno: 999,
error: "fail
}
9.订阅
9.1.介绍:
该接口用于CP游戏唤起订阅
9.2:参数说明
无
9.3:例子
- 调用
foplatform.subScript(function callback);
- params:
9.4:返回值
- 成功:如果没有选择总是允许会一直弹订阅窗口,如果选择了就不在弹窗口
{
"errno": 0,
"error": "success"
}
- 失败:
{
errno: 999,
error: "fail
}
10.检查是否订阅
10.1.介绍:
该接口用于CP游戏判断是否订阅
10.2:参数说明
无
10.3:例子
- 调用
foplatform.checkSubscription(function callback);
- params:
10.4:返回值
- 成功:订阅过
{
"errno": 0,
"error": "success"
}
- 失败: 没有订阅
{
errno: 999,
error: "fail
}
11.生成并显示游戏圈icon
11.1.介绍:
该接口用于创建游戏圈按钮,被点击后会跳转到小游戏的游戏圈
11.2:参数说明
无
11.3:例子
- 直接调用即可会自动生成图标,位置需要根据游戏配置好
foplatform.showGameClub(params,function callback);
- params:默认传递空对象
var params = {};//游戏圈参数
var styles = {};//按钮位置,根据实际情况进行设置
styles.left = 20;//左上角横坐标
styles.top = 50;//左上角纵坐标
styles.width = 42;//图标宽度,可以不用传递
styles.height = 45;//图标宽度,可以不用传递
params.style = styles;
params.openlink = 'Lv-XO1OgAuqztP4pRyKfZnY2aJKe9aE1';//游戏圈跳转链接id,没有可以不用传
12.隐藏游戏圈icon
12.1.介绍:
该接口用于隐藏游戏圈icon
12.2:参数说明
无
12.3:例子
- 直接调用即会隐藏游戏圈图标
foplatform.hideGameClub();
- params:
13.获取游戏圈数据
13.1.介绍:
该接口用于获取游戏圈数据
13.2:参数说明
| 参数 | 类型 | subKey |
|---|---|---|
| type | number | (是)见type说明 |
| subKey | string | (否)部分type需要传,见type说明 |
·type说明
| 取值 | 说明 | (必填)说明 |
|---|---|---|
| 1 | 加入该游戏圈时间 | 无需传入 |
| 3 | 用户禁言状态(0:正常1禁言) | 无需传入 |
| 4 | 当天(自然日)点赞贴子数 | 无需传入 |
| 5 | 当天(自然日)评论贴子数 | 无需传入 |
| 6 | 当天(自然日)发表贴子数 | 无需传入 |
| 7 | 当天(自然日)发表视频贴子数 | 无需传入 |
| 8 | 当天(自然日)赞官方贴子数 | 无需传入 |
| 9 | 当天(自然日)评论官方贴子数 | 无需传入 |
| 10 | 当天(自然日)发表到本圈子话题的贴子数 | 传入话题id,从mp-游戏圈话题管理处获取 |
13.3:例子
- 直接调用即会隐藏游戏圈图标
foplatform.getGameClubData(clubparams,callback); //callback为研发自定义回调函数,回调函数接收参数为游戏圈返回解密结果
- clubparams(完全按照小游戏文档进行参数传入):
var clubparams = {
type:1,
subKey:
}
13.4:返回值
成功:走研发定义回调,参数返回游戏圈解密后结果
失败:失败回调,状态码返回
14.录制分享参数
14.1.介绍:
该接口用于获取录制分享参数
14.2:参数说明
无需参数
14.3:例子
- 直接调用即会隐藏游戏圈图标
foplatform.gameRecorderButton();
- return 参数:
return {
res:1,
data:{
image:jpg,
text:'',
icon:''icon.png
}
}
14.4:返回值
成功:返回结果
15.收入广告接入
15.1.介绍:
该接口用于抖音收入广告接入
15.2:参数说明
无
15.3:例子
15.3.1:banner广告
foplatform.showBannerAd(params,function callback);
- params:默认传递空{},参数留着后续做兼容
var params = {
left: 0,
top: 0,
width: 500,
height: 240
}
15.3.2:激励视频广告调用
foplatform.showVideoAd(params,function callback);
- params:默认传递空{},参数留着后续做兼容
var params = {
ad_md_type:'offline_double'//广告位类型根据游戏埋点实际情况进行上报,英文ename
};
15.4:返回值
- 成功:广告观看结束关闭,游戏可以自定义游戏下一步逻辑
{
"errno": 0,
"error": "success"
}
- 失败: 广告加载失败或者未观看技术关闭广告
{
errno: 999,
error: "fail
}
16.新客服
16.1.介绍:
该接口用于CP游戏唤起客服窗口,相比旧客服支持参数传递,可以在客服调用之前给tips弹框
16.2:参数说明
无
16.3:例子
- 调用
var from = "game";
foplatform.newkefu(from,'tips', callback);//有tips弹框,可用于入群按钮触发
foplatform.newkefu(from,'notips', callback);//没有tips弹框跟旧客服一致
- 右下角卡片式点击调用推送图片
var from = "contact_qrcode";
foplatform.newkefu(from,'notips', callback);
17.新订阅
17.1.介绍:
该接口用于CP游戏唤起订阅
17.2:参数说明
无
17.3:例子
- 调用
var type = "all";//all:默认订阅所有,sign:7日签到指定订阅
foplatform.newsubScript(type,this.testCallback);
- params:
18.邀请分享功能
18.1.介绍:
该接口用于点击发起小游戏的邀请功能 通过携带邀请人操作到query实现被邀请人读取query信息实现相互绑定
18.2:参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| spid | string | (必须)游戏平台标识spid |
| uid | Any | (必须)用户账号 |
| sid | number | (必须)邀请人的区服ID |
18.3:例子
- 直接调用
foplatform.friend_share(params,callback); //callback为研发自定义回调函数,回调函数接收参数为分享succ/fail结果
- params(举例):
var params = {
sid:10001,
uid:19880,
spid:'xcx'
}
18.4:返回值
成功:带参数走研发回调
失败:失败回调,状态码返回
19.获取用户邀请的数据信息
19.1.介绍:
该接口用于获取用户分享邀请的数据情况/配置的各任务次数
19.2:参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| spid | string | (必须)游戏平台标识spid |
| uid | Any | (必须)用户账号 |
| sid | number | (必须)邀请人的区服ID |
19.3:例子
- 直接调用
foplatform.userInviteInfo(params,callback); //callback为研发自定义回调函数,回调函数接收参数为分享succ/fail结果
- params(举例):
var params = {
sid:10001,
uid:19880,
spid:'xcx'
}
19.4:返回值
成功:带参数走研发回调
{
"errno": 0,
"error": "success",
"data": {
"share_role": {
"task_1": 1, // 任务类型:次数
"task_2": 1,
"task_3": 1,
"task_4": 1
},
"share_fights": {
"task_1": 1,
"task_2": 1,
"task_3": 1,
"task_4": 1
},
"share_charges": {
"task_1": 1,
"task_2": 1,
"task_3": 1,
"task_4": 1
}
}
}
失败:失败回调,状态码返回
20.创角上报邀请数据
20.1.介绍:
该接口用于被邀请人创角之后上报邀请信息
20.2:参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| spid | string | (必须)游戏平台标识spid |
| uid | Any | (必须)用户账号 |
| sid | number | (必须)邀请人的区服ID |
20.3:例子
- 直接调用
foplatform.up_invitee(params,callback); //callback为研发自定义回调函数,回调函数接收参数为分享succ/fail结果
- params(举例):
var params = {
sid:10001,
uid:19880,
spid:'xcx'
}
20.4:返回值
成功:带参数走研发回调
失败:失败回调,状态码返回
21.邀请码验证
21.1.介绍:
该接口新用户测试邀请老玩家体验阶段使用
21.2:参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| invite_code | string | 邀请码 |
21.3:例子
- 直接调用
foplatform.inviteCode(params,callback); //callback为研发自定义回调函数,回调函数接收参数为分享succ/fail结果
- params(举例):
var params = {
invite_code:'输入的邀请码'
}
21.4:返回值
- 成功:邀请码验证成功,0都是成功非0都是失败情况
{
"errno": 0,
"error": "success"
}
- 失败: 邀请码验证失败
{
errno: 999,
error: "fail"
}
22.完成新手指引
22.1.介绍:
完成新手指引上报,主要是上报腾讯的广告sdk
22.2:例子
- 直接调用
foplatform.tencentSdkReport('TUTORIAL_FINISH',{});
23.腾讯sdk付费上报
23.1.介绍:
腾讯广告sdk上报,用户支付成功/用户充值游戏内到账后回调
23.2:例子
- 直接调用
var params = {
amount:6//传递充值付费金额,单位元
};
foplatform.reportPurchase(params);
24.ai聊天sdk处理
24.1.介绍:
聊天回复,stram流格式
24.2:例子
- 直接调用
var params1 = {
beautyID:1,//美女id 游戏里面的从1-4,目前就给了我4个美女
gameID:1,//游戏id针对ai,默认填1 你们是第一个接入的 就选择1
years:5,//游戏时间年没有可以默认填1 这里是一个扩展字段 主要就是想把美女和玩家的相处时间控制一下,会有不一样的反应
level: 1,//美女等级,美女培养的话 会根据等级 亲密度会变化
content:content//需要ai回复输入的聊天关键词
};
foplatform.aiChat(params1,callback);
24.3:返回值
- 成功:邀请码验证成功,0都是成功,非0都是失败情况
{
errno:0,
error:"success",
data:{
content:'好',
}
}
- 失败: 失败
{
errno:500,
error:"参数异常,key,parsm is error",
data:[]
}
24.4:重点说明
1.callback回调接收的信息为ai数据流解析后的回复数据,是一个个的单个的词,对接方可以调用接口后使用追加的方式,将数据追加到显示界面实现AI数据流输出的效果。
2.另外接口由于使用了第三方和多方系统会有点延迟,使用方法可以设置个定时器没有数据返回时做下用户体验兼容,如正在思考之类的输出
25.手机验证码发送
25.1.介绍:
手机验证码发送
25.2:参数说明
| 参数 | 类型 | 是否必填 | 说明d |
|---|---|---|---|
| mobile | string | yes | 手机号码 |
25.3:例子
- 调用
foplatform.mobileCodeSend(Object params, function callback);
- params:
params = {
mobile: '',
}
25.4:返回值
- 成功:
{
errno: 0,
error: "success"
}
- 失败:
{
errno: 1,
error: "fail"
}
26.手机号码绑定
26.1.介绍:
手机号码绑定
25.2:参数说明
| 参数 | 类型 | 是否必填 | 说明d |
|---|---|---|---|
| mobile | string | yes | 手机号码 |
| mobile_code | int | yes | 验证码 |
| account | int | yes | 平台账号ID |
26.3:例子
- 调用
foplatform.mobileBind(Object params, function callback);
- params:
params = {
mobile: '',
code: 9501,
account: 1,
}
26.4:返回值
- 成功:
{
errno: 0,
error: "success"
}
- 失败:
{
errno: 1,
error: "fail"
}
