客户端接入引导-Unity3D

客户端接入引导-Unity3D

1

准备:
libs目录下的ixsdk_pay.pro.jar包复制到游戏项目的libs目录下。
Demo工程使用的是unity开发环境为 4.5。
您可以使用 ixsdk_pay_u3d.unitypackage 一次性将Demo包导入自己的工程里,如果导入失败,也可以将 ixsdk_u3d 和 Plugins目录下的文件拷贝到游戏工程的对应目录里来完成导入。

注意:
1. 所有接口参数不能为 null。
2. 支付回调地址,在stars-cloud.com开发者后台填写。
3.必须将IXU3DProxy.cs和游戏计费的Gameobject进行关联,且要将此GameObject名称通过setGameObject()方法传入IXU3DProxy中,否则无法回调。

2

配置Android Manifest【必接】 查看

2.1 添加IXSDK_APPID

需要把您在 stars-cloud.com 平台申请的 IXSDK_APPID 写入 Android Manifest.xml中的 application 标签下。

<application >

    <meta-data
        android:name="IXSDK_APPID"
        android:value="您在stars-cloud.com平台申请的AppId" />

</application>

2.2 添加用户权限

此处添加的权限只是SDK测试时使用的权限,在游戏打包时,会再根据渠道的需要增加不同的权限。

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

3

代码混淆 查看

如果要混淆 java 代码,请不要混淆联编的 jar 包中的类。可以添加以下类到 proguard 配置,排除在混淆之外:

-keep class com.ixsdk.** {*;}

4

初始化【必接】 查看

开发者需要在start() 方法中,调用IXU3DProxy的初始化方法,并设置关联的GameObject名称。如果配置错误,脚本将无法实现回调。

IXU3DProxy.Instance.init("Main Camera");

5

退出【必接】 查看

游戏需要在用户选择退出时,调用exit()方法。

IXU3DProxy.Instance.exit();

退出回调如下:
此回调参数showGameExitUI为true时,表示需要游戏展示自己的退出UI。
参数showGameExitUI 为false时,表示已经展示了渠道的退出界面,并且用户点击了退出,此时游戏只要执行退出逻辑即可。

public void onExit(boolean showGameExitUI) {
    if(showGameExitUI) {
        // TODO 展示游戏退出UI,需要游戏自行实现退出逻辑
    } else {
        // TODO 需要游戏自行实现退出逻辑
        // TODO 设置玩家退出数据
        // TODO 游戏退出前,必须执行如下SDK销毁代码
        IXU3DProxy.Instance.destroy();
    }
}

6

销毁【必接】 查看

在exit()的onExit()回调方法中调用此方法,执行渠道的资源释放等操作。
此方法需要在游戏执行finish或kill process之前调用。

IXU3DProxy.Instance.destroy();

7

登录相关【联网游戏必接】 查看

7.1 设置用户其他游戏信息

开发者在玩家角色创建,升级,登录,退出四个地方调用此接口,并根据实际情况填写如下信息,以免影响上线和支付。

/**
 * 必须接入此接口,而且角色创建时间在任何数据接口必须是同一个服务器时间(秒为单位)
 */
const int IXSDK_EXT_PLAYER_CREATE_ROLE = 1001;  // 角色创建
const int IXSDK_EXT_PLAYER_LEVEL_UP    = 1002;  // 角色升级
const int EXT_PLAYER_LOGIN_GAME  = 1003;  // 登录游戏
const int EXT_PLAYER_EXIT_GAME   = 1004;  // 退出游戏

IXProxy.getInstance().setPlayerExtData(
        int dataType, 
        string userRoleId,
        string userRoleName,
        int userRoleLevel,
        long userRoleCreateTime,
        long userRoleLevelUpTime,
        int userBalance,
        int userVipLevel,
        int userZoneId,
        string userZoneName,
        string userPartyName);

7.2 用户登录,登出行为回调接口

此接口需要在调用登录接口之前调用,以保证能在玩家登录完成后有相应的回调。

public void onLoginSuccess(string userId) {
    // TODO 第一步,清除上一个玩家游戏数据,游戏需要回到登录页面

    // TODO 第二步,在此实现游戏玩家的登录成功逻辑

    // TODO 第三步,设置玩家登录后的游戏详细信息接口

}

public void onLoginFail(String reason) {
    // TODO 处理登录失败的逻辑
}

public void onLogout() {
    // TODO 清除老数据,游戏需要回到登录页面

    // TODO 可以在此处执行登录接口来实现账号切换
}

7.3 登录

IXU3DProxy.Instance.login();

7.4 登出

可以在游戏结束前调用此登出接口,完成用户信息销毁的动作。

IXU3DProxy.Instance.logout()

8

支付【必接】 查看

用户发起支付,支付成功后的支付金额,订单等参数会通知给游戏服务器。
客户端支付回调接口:

public void onSuccess(IXPayResult result) {
    // 请在此处处理支付成功后的逻辑
}

public void onFail(string result) {
    // 请在此处处理支付失败后的逻辑
}

public void onPending(IXPayResult result) {
    // 支付进行中,支付无法在指定的时间内完成,需要游戏服务端去ixsdk.com的后台服务端轮询当前支付结果	
}

8.1 联网游戏支付

在客户端回调支付成功之后,游戏必须去游戏服务端确认当前订单状态,最终支付结果应该以服务端回调结果为准。
开发者可以根据实际的需求来调用以下支付接口:
pay():用来购买游戏中的道具,如:钻石,金币,披风等。

/**
 * 游戏商品(道具)支付
 *
 * goodsId     游戏商品(道具)id
 * goodsName   游戏名称
 * goodsCount  
 * totalPrice  游戏商品(道具)单位价格,单位为人民币分
 * extraInfo  由游戏开发者定义传入的字符串,回与支付结果一同发送给游戏服务器,
 *            游戏服务器可通过该字段判断交易的详细内容(金额 角色等)
 * extraIntent 渠道自定义扩展参数
 */
IXU3DProxy.Instance. pay(
        string goodsId, string goodsName, int goodsCount, 
        int totalPrice,
        string extraInfo);