# 微信小游戏SDK(unity方案) 接入手册
# 文档修订记录
文档版本 | 文档更新日期 | 文档更新内容 |
---|---|---|
1.0.0.0 | 2024-04-25 | 初版 |
1.0.0.1 | 2024-09-13 | 增加买量打点相关支持 |
# 1. 前言
本文用于指导小游戏(unity方案)接入SDK,文中包含小游戏SDK的接入说明及接口介绍。
# 2. 接入准备
- 必须要先配置好微信小游戏开发环境以及用于微信小游戏开发的微信授权账号 点击进入 (opens new window)
- 微信小游戏通讯域名接入(目前需要接入下列域名) 点击进入 (opens new window)
- 下载 SDK对接资源 点我下载 (opens new window)
# 3. 项目接入
# 3.1 项目引入
将对接资源中的
Plugins
目录下的GSDKBridge
目录(包含GSDKBridge.cs
、GSDKBridgeCallback.cs
、GSDKBridge.jslib
这3个文件),拷贝到Unity
工程的Assets/Plugins
目录下。下载json解析插件
Newtonsoft Json
(package manager
可直接下载该插件,git url:com.unity.nuget.newtonsoft-json
)将对接资源中的
wechat-default
目录下的gsdk_unity
目录(包含index.js
这个文件)拷贝到Unity
工程的Assets/WX-WASM-SDK-V2/Runtime/wechat-default
目录下。打开
Untiy
工程中的Assets/WX-WASM-SDK-V2/Runtime/wechat-default/game.js
文件,在文件中添加如下代码import './gsdk_unity/index';
1
接口回调数据格式
属性名 | 类型 | 说明 |
---|---|---|
code | int | 状态码,根据不同状态进行处理和错误原因排查 |
msg | string | 错误提示信息 |
data | object | 响应数据 |
以下接口返回响应如无特别说明皆为data内容
# 3.2 接口入参均采用JSON字符串形式
具体对接代码可以参考对接资源中unity demo
的范例Demo.cs
# 3.3 接口
# 3.3.1 初始化
方法
public void Init(string json)
1入参
属性名 类型 必填 说明 appId string 是 申请分配的appId 响应
无回调响应,开发者无需关心初始化结果
回调方法
无
示例
Dictionary<string, object> inParams = new Dictionary<string, object> { { "appId", 791000741} }; GSDKBridge.Instance.Init(JsonConvert.SerializeObject(inParams));
1
2
3
4
5
# 3.3.2 登录
方法
public void Login(string json)
1入参
无
响应
属性名 类型 说明 ticket string 游戏登录票据,设置为5分钟 token string 盛趣小游戏sdk登录态 userid string 盛趣appmid openid string 微信openid unionid string 微信unionid 回调方法
GSDKBridgeCallback.LoginCallback
1示例
// 登录 GSDKBridge.Instance.Login(""); // 回调监听 GSDKBridgeCallback.LoginCallback = (loginInfo) => { };
1
2
3
4
5
6
# 3.3.3 获取票据
方法
public void GetTicket(string json)
1入参
无
响应
属性名 类型 说明 ticket string 游戏登录票据,设置为5分钟 回调方法
GSDKBridgeCallback.GetTicketCallback
1示例
// 获取票据 GSDKBridge.Instance.GetTicket(""); // 回调监听 GSDKBridgeCallback.GetTicketCallback = (ticketInfo) => { };
1
2
3
4
5
6
# 3.3.4 支付
方法
public void Pay(string json)
1入参
属性名 类型 必填 说明 areaId string 是 区ID productId string 是 商品ID orderId string 是 订单ID extend string 否 订单扩展信息,会在服务端发货时原样返回 groupId string 否 组ID,按需传递 响应
属性名 类型 说明 payType number 支付方式, 1: 原生支付 orderId string 盛趣订单号 回调方法
GSDKBridgeCallback.PayCallback
1示例
// 支付 Dictionary<string, object> inParams = new Dictionary<string, object> { { "areaId", 1}, { "productId", "test.100"}, { "orderId", 1}, { "extend", 1}, { "groupId", 1}, }; GSDKBridge.Instance.Pay(JsonConvert.SerializeObject(inParams)); // 回调监听 GSDKBridgeCallback.PayCallback = (payInfo) => { };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 3.3.5 行为上报
方法
public void ActionReport(string json)
1入参
属性名 类型 必填 说明 action string 是 上报行为(目前支持role_create(角色创建),role_login(角色登录),role_level(角色升级)三种) actionData JSON 是 上报数据 actionData释义
参数名称 参数说明 是否必须 数据类型 roleId 角色ID true String roleName 角色名称 true String roleLevel 角色等级 true Number zoneId 区服ID true String zoneName 区服名称 true String roleCtime 角色创建时间(时间戳) true Number shiftLevel 转身等级 true Number fight 战力 true Number 响应
属性名 类型 说明 回调方法
GSDKBridgeCallback.ActionReportCallback
1示例
// 行为上报 Dictionary<string, object> actionData = new Dictionary<string, object> { { "ucid", 100}, { "roleId", "1000"}, { "roleName", "测试角色名"}, { "roleLevel", 1}, { "zoneId", "1"}, { "zoneName", "测试1区"}, { "roleCtime", 1725431204651}, { "shiftLevel", 1}, { "fight", 100}, }; Dictionary<string, object> inParams = new Dictionary<string, object> { { "action", "role_login"}, { "actionData", actionData} }; GSDKBridge.Instance.ActionReport(JsonConvert.SerializeObject(inParams)); // 回调监听 GSDKBridgeCallback.ActionReportCallback = (actionInfo) => { };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 3.4 错误码
3.4.1 登录错误码:
错误码 | 说明 |
---|---|
-10403020 | db is error |
-10403021 | get wei xin service error |
-10403019 | json parse error |
-10403013 | The system is busy |
-10403014 | The code is invaild |
-10403015 | Frequency limitation |
-10403016 | High-risk level user |
-10403022 | get lsc4gauth service error |
-10403005 | Request param error |
3.4.2 获取票据错误码:
错误码 | 说明 |
---|---|
-10403005 | Request param error |
-10403023 | token has expired |
# 4. FAQ
切换微信账号,提示权限相关错误
确认微信账号是否开启了相关权限,并重启微信开发者工具
回调数据如何解析
为了方便游戏扩展参数,SDK没有固定数据模型,开发者拿到data中的dictionary,在转成想要的数据模型
此SDK是对GHOME JS SDK的一层包装转发,更多功能请查看GHOME JS SDK (opens new window)