# GHOME SDK 开发手册 for Unity C#
# 1. 前言
本文用于指导游戏开发商接入GHome -Unity PC 版本SDK,文中包含客户端的接入说明;
# 2. SDK接入流程概述
完成隐私政策展示逻辑(请务必在完成隐私的展示逻辑之后再进行调用初始化)
初始化SDK
调用账号功能相关接口
用户在进行购买时,调用支付功能相关接口
其他功能接口,可根据业务需要适时调用
注意:sdk内挂载UI prefab的节点默认是Canvas,需要改为游戏中自己的ui挂载点(如果游戏自己的不为Canvas的话),可以调用如下接口进行修改:
GHSDK.Instance.GSetUIPrefabParent("Canvas");
1
# 3. 开发环境要求
# 3.1. 集成SDK文件到游戏工程
- 导入ghome-unity_[日期]_v[版本号].unitypackage包的所有内容到游戏unity项目中
# 4. 隐私政策功能
游戏可调用该接口展示隐私政策同意与否弹框
接口:
GPrivacyAgreement(string appId, GCallback gCallback);
参数说明:
appId: 游戏的appId
gCallback: 回调对象,用来回调执行结果,详情请参考代码事例。
注意事项:
请确保隐私政策功能接口成功之后再调用其他接口。
代码示例:
GHSDK.Instance.GPrivacyAgreement("791000008", (code, msg, dicData) =>
{
if (code == 0)
{
//同意隐私 初始化
if (!isInit)
{
GHSDK.Instance.GInit("791000008", (code1, msg1, dicData1) =>
{
if (code1 == 0)//初始化成功
{
isInit = true;
//...
GHomeUtils.ShowToastUI(msg1);
}
else
{
GHomeUtils.ShowToastUI(msg1);
}
});
}
}
else
{
//不同意则退出游戏
Application.Quit();
}
});
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 5. 基础功能(必接)
# 5.1. SDK初始化接口
游戏在初始场景调用,初始化接口返回成功方可调用后续的登录等功能接口
接口:
GInit(string appId, GCallback gCallback);
参数说明:
appId: 游戏的appId
gCallback: 回调对象,用来回调执行结果,详情请参考代码事例。
注意事项:
请确保初始化接口成功之后再调用其他接口。
代码示例:
GHSDK.Instance.GInit("791000008",(code,msg,dicData)=>
{
if (code == 0) {
isInit = true;
//...
GHomeUtils.ShowToastUI(msg);
} else {
GHomeUtils.ShowToastUI(msg);
}
});
2
3
4
5
6
7
8
9
10
# 6. 账号功能(必接)
# 6.1. 客户端登录
游戏客户端可以调用登录接口为玩家提供登录功能。若用户第一次登录,将显示登录和注册的界面。若用户上次使用账号成功登录过,则调用登录接口之后会用该账号自动登录。
接口:
GLogin(GCallback gCallback)
参数说明:
gCallback: 回调对象,用来回调执行结果,详情请参考代码事例。
代码示例:
GHSDK.Instance.GLogin((code, msg, dicData) => {
if (code == 0)
{
GHomeUtils.ShowToastUI(msg + ", userid: " + dicData["userid"] + ", ticket: " + dicData["ticket"]);
//请求区数据
GetAreaInfo();
}
else if (code == GUnityConstants.ERROR_CODE_LOGIN_CANCEL)
{
GHomeUtils.ShowToastUI(msg);
}
else
{
GHomeUtils.ShowToastUI(msg);
}
}
);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 6.2. 客户端注销接口
游戏客户端可以在游戏内需要注销账号的地方调用该接口,执行成功将删除自动登录的记录信息,玩家下次登录后将不再自动登录,而是显示出登录界面。
接口:
GLogout(GCallback gCallback)
参数说明:
gCallback: 回调对象。
代码示例:
GHSDK.Instance.GLogout((code, msg, dicData) => {
if (code == 0)
{
GHomeUtils.ShowToastUI(msg);
//跳转去登录主页
SceneManager.LoadScene("LoginScene");
}
else { }
}
);
2
3
4
5
6
7
8
9
10
# 7. 支付功能(必接)
# 7.1. 客户端支付接口
游戏客户端可以在购买道具的地方调用该接口。这将打开支付界面,引导玩家支付该订单。用户结束支付操作后,SDK会回调游戏客户端,告知支付结果是否已经成功。
接口:
GPay(string orderId, string groupId, string areaId, string productId, string extend, GCallback gCallback)
参数说明:
orderId: 必传,游戏订单号。如果游戏需要记录订单号,可以传入唯一的字符串来标识此订单。
groupId: 必传,组ID。没有则传空串
areaId: 必传,在手游直通车平台上设置的区服的ID 区服ID不可为0
productId: 必传,在手游直通车平台上设置的商品的ID
extend: 扩展参数,游戏可用于自行扩展,平台发货通知时将原样返回给游戏服务器,无需要则传空。
gCallback: 回调对象,用来回调执行结果,详情请参考代码事例。
注意事项:
由于可能发生网络延迟等等原因,有时候客户端返回的支付结果可能与实际情况有出入,所以最终订单是否支付成功,建议以平台服务器端的通知为准,客户端的通知结果仅作为参考。
代码示例:
GHSDK.Instance.GPay("order123456123456", "1", "1", "test.1", "payextentstr", (code,msg,dicData)=>
{
if (code == 0) {
//......
GHomeUtils.ShowToastUI(msg);
} else {
GHomeUtils.ShowToastUI(msg);
}
}
);
2
3
4
5
6
7
8
9
10
# 8. 扩展功能(可选)
# 8.1. 客户端获取游戏区服列表接口
游戏客户端可以调用该接口获取游戏在G家平台登记的区服配置。
接口:
GGetAreas(GCallback<List<GHAreaInfoDetail>> gCallback)
参数说明:
gCallback: 回调对象,用来回调执行结果,详情请参考代码事例。
代码示例:
GHSDK.Instance.GGetAreas((code,msg,data)=>
{
if (data != null) {
areaData = data;
foreach(GHAreaInfoDetail areaInfo in data)
{
OptionData temoData = new OptionData
{
text = areaInfo.name
} ;
mAreas.options.Add(temoData);
}
mAreas.captionText.text = data[0].name;
selectedAreaId = data[0].area_code;
selectedGroupId = data[0].group_id;
}
});
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 8.2. 客户端设置区服信息接口
游戏客户端需要在选择了区服之后调用该接口上报一下区服信息
接口:
GSetLoginArea(string areaId, string groupId)
参数说明:
areaId: 区服id。 groupId: 组id。
代码示例:
//上报选择的区服信息
GHSDK.Instance.GSetLoginArea(selectedAreaId, selectedGroupId);
2
# 8.3. 客户端获取游戏商品列表接口
游戏客户端可以调用该接口获取游戏在G家平台登记的商品配置。
接口:
GGetProducts(GCallback<List<GHProductInfoDetail>> gCallback)
参数说明:
gCallback: 回调对象,用来回调执行结果,详情请参考代码事例。
代码示例:
GHSDK.Instance.GGetProducts((code,msg,data)=>
{
if (data != null) {
foreach(GHProductInfoDetail productInfo in data)
{
Debug.Log("productName: " + productInfo.item_name);
}
}
});
2
3
4
5
6
7
8
9
# 8.4. 客户端获取一次性票据接口
游戏客户端可以调用该接口获取用于游戏登录的一次性票据。
接口:
GGetTicket(GCallback gCallback)
参数说明:
gCallback: 回调对象,用来回调执行结果,详情请参考代码事例。
代码示例:
GHSDK.Instance.GGetTicket((code, msg, dicData) => {
Debug.Log("ticket: " + dicData["ticket"]);
});
2
3
# 8.5. 客户端获取隐私政策和用户协议url
游戏客户端可以调用该接口获取隐私政策 和用户协议的 url链接。
接口:
GGetAgreementUrl(GCallback gCallback)
参数说明:
gCallback: 回调对象,用来回调执行结果,详情请参考代码事例。
代码示例:
GHSDK.Instance.GGetAgreementUrl((err, msg, data) =>
{
Debug.Log("servicerAgreement html Url: " + data["servicerAgreementUrl"]);
Debug.Log("privacyPolicy html url: " + data["privacyPolicyUrl"]);
privacyUrl = data["privacyPolicyUrl"];
serviceUrl = data["servicerAgreementUrl"];
});
2
3
4
5
6
7
8
9