微信小游戏平台sdk对接

51游戏大约 15 分钟小游戏业务

使用说明

项目使用说明:将SDK提供的FOPlatform.ts文件放入项目libs目录下,在Main.ts文件中即可通过foplatform.xxxopen in new window() 访问FOPlatform内的相应函数。 通过layabox导出微信小游戏项目后,将SDK提供的foplatform.js放入导出后项目的libs目录即可。

1.初始化(必接)

1.1.介绍:

该接口用于向SDK传入相关参数,方便调用其他接口时不需要每次都传入相同的参数。进入小游戏时调用。

1.2:参数说明

参数类型是否必填说明d
appKeystringyesAppid(平台方提供)
appSecretstringyes密钥(平台方提供)
gameVersionstringyes版本控制研发定义好
debugbooleanno是否打印日志(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_idstringyes角色ID
gradenumberno传递用户在线累计时长单位秒,例如300即累计5分钟
blancenumberno拥有钻石数量
vip_gradenumbernoVIP等级
is_appstringno0:小游戏,1:app(app类型必传递)
server_idnumberyes所在区服ID(无分区填1)
server_namestringno区服名称
role_create_timenumberno角色创建时间(时间戳)
role_nicknamestringno角色昵称
typenumberno角色变更事件 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
psidnumberyes游戏区服id(无分区填1)
amountnumberyes平台支付金额(单位元,允许值见备注)
role_idstringyes角色ID
is_appstringno0:小游戏,1:app(app类型必传递)
namestringno商品名称(app类型必传递)
rolenamestringno角色名称(app类型必传递)
descstringno商品描述(app类型必传递)
orderno_appstringno订单ID(游戏方自己创建的订单ID用于对账,app类型必传递)
extrastringno扩展字段,透传

备注:价格只允许下列值:参考微信小游戏的规则.

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_idnumberyes订单ID
qrcode_urlstringyes支付二维码图片链接
{ 
    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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 《龙域世界》是一款西方魔幻动作类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>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 为向您提供更为丰富的游戏内容,《龙域世界》 全服将于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_tipsnumber公告开关0:关闭不弹出,1:开启公告(默认公告发行是关闭状态)
notice_listnumber公告列表
-- menu_namestring公告菜单名称
-- contentstring公告内容
-- content_img_urlstring公告内容图片链接地址
  • 失败:
{ 
    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
typenumber(是)见type说明
subKeystring(否)部分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:参数说明

参数类型说明
spidstring(必须)游戏平台标识spid
uidAny(必须)用户账号
sidnumber(必须)邀请人的区服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:参数说明

参数类型说明
spidstring(必须)游戏平台标识spid
uidAny(必须)用户账号
sidnumber(必须)邀请人的区服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:参数说明

参数类型说明
spidstring(必须)游戏平台标识spid
uidAny(必须)用户账号
sidnumber(必须)邀请人的区服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_codestring邀请码

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
mobilestringyes手机号码

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
mobilestringyes手机号码
mobile_codeintyes验证码
accountintyes平台账号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" 
}