西瓜SDK(原生Android版 )接入文档

1. 文档概述

此文档为使用原生 android 引擎游戏客户端的接入文档。
本文介绍如何在原生引擎平台下,Android 游戏客户端快速接入西瓜SDK。 文档分成三大部分:西瓜 SDK 下载,配置环境,各个接口的接入说明和样例代码。逐步细述了整个接入过程;
同时罗列出了4种类型的接口:分别为:用户与角色接口、充值接口、统计接口、扩展接口 ,便于游戏方的接入人员可以按照需求更加快速便捷的进行接入。

1.1 文档结构

  1. 文档概述
  2. 配置环境与快速接入简介
  3. 修改相应平台工程的配置信息
  4. 用户接口
  5. 充值接口
  6. 统计接口
  7. 扩展接口
  8. 运营活动接口
  9. 渠道接入要点须知

1.2 SDK下载包

渠道版 SDK 下载包包含: api jar包:xgsdk-api.jar

原生SDK下载

2. 配置环境与快速接入简介

Android 开发环境如下:
Android 版本:Android2.2 以上
Android 开发工具:Android SDK 和 Android Eclipse 等

3.修改相应平台工程的配置信息

3.1 复制SDK的Jar包

将西瓜SDK的xgsdk-api.jar拷贝到游戏Android工程的libs目录下:

3.2 配置android权限

在AndroidManifest.xml中配置android权限

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

3.3 Application设置

在AndroidManifest.xml文件中,设置Application为XGApplication,如下图:

修改的代码如下:

    <application
     android:name="com.xgsdk.client.api.XGApplication"
     android:label="@string/app_name"
     android:icon="@drawable/icon">

如果游戏有自己的application,则需要继承XGApplication

所有必接接口必须进行接入!

4.用户接口

4.1 接入生命周期接口

如果游戏的入口activity继承了XGActivity 则不需要接入以下接口

生命周期接口接入,样例代码如下:


    @Override
    protected void onStart() {
        super.onStart();
        XGSDK.getInstance().onStart(this);
        //第一行调用父类方法,第二行调用西瓜的方法,顺序固定
        //然后再执行贵游戏的自己的代码逻辑,下面方法类同
    }

     @Override
    protected void onResume() {
        super.onResume();
        XGSDK.getInstance().onResume(this);
    }


    @Override
    protected void onPause() {
        super.onPause();
        XGSDK.getInstance().onPause(this);

    }


    @Override
    protected void onStop() {
        super.onStop();
        XGSDK.getInstance().onStop(this);
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        XGSDK.getInstance().onRestart(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        XGSDK.getInstance().onDestory(this);
    }
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        XGSDK.getInstance().onNewIntent(this, intent);
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        XGSDK.getInstance().onActivityResult(this, requestCode, resultCode,
                data);
    }

    @Override
    protected void onBackPressed() {
        super.onBackPressed();
        XGSDK.getInstance().onBackPressed(this);

    }
    @Override
    protected void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        XGSDK.getInstance().onConfigurationChanged(this, newConfig);
    }

  @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        XGSDK.getInstance().onSaveInstanceState(this, outState);
    }

onCreate 生命周期方法比较特殊。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        XGSDK.getInstance().onCreate(this);
        XGSDK.getInstance().setUserCallBack(new UserCallBack() {});
    }

XGSDK.getInstance().setUserCallBack(new UserCallBack() {});
以上代码的表示的意思是实现一个匿名的 UserCallBack 对象,该对象中实现了初始化失败,初始化成功,登录成功、登录失败、登录取消,登出完成详见这里描述

4.2 回调接口接入

XGSDK.getInstance().setUserCallBack(new UserCallBack() {});//设置用户信息回调

当前接口必须在onCreate生命周期中调用

回调说明:

用户信息回调

      XGSDK.getInstance().setUserCallBack(new UserCallBack() {

          @Override
          public void onLoginSuccess(int code, String authInfo) {
             //登录成功
          }

          @Override
          public void onLoginFail(int code, String msg, String channelCode) {
              //登录失败
          }

          @Override
          public void onLoginCancel(int code, String msg) {
              //登录取消
          }

          @Override
          public void onLogoutFinish(int code, String msg)  {
              //登出成功,需要退出当前游戏账号,并返回游戏登录首页

          }

           @Override
          public void onInitSuccess(int code, String msg, String channelCode) {
              //初始化成功,可以进行下一步操作,如登录等
          }

          @Override
          public void onInitFail(int code, String msg, String channelCode) {
              //初始化失败,请提示玩家初始化失败,建议退出游戏后重新进入
          }
      });

4.3 登录接口(必接)

接口定义:public void login(final Activity activity, final String customParams)
接口说明:用户登录接口,传入扩展参数。

参数 说明
customParams 该参数用于扩展,传输时使用json格式,接入时若不需要直接置空即可

4.4 登录回调

在 UserCallBack 中实现登录 callback 接口(登录成功、失败、取消,登出成功、失败,初始化失败接口)
例如登录成功,游戏在此回调中实现登录成功后的逻辑,其余的 callback 接口类似。
注:在登录成功 callback 中,调用 xgsdk 的 onEnterGame 接口。
样例代码:

    XGSDK.getInstance().setUserCallBack(new UserCallBack() {

        @Override
        public void onLoginSuccess(int code, String authInfo) {
            Log.w(TAG, "authInfo: \n" + authInfo);
        }

        @Override
        public void onLoginFail(int code, String msg, String channelCode) {
            ToastUtil.showToast(MainActivity.this, "login fail." + code + " " + msg + ",channelCode = " + channelCode);
        }

        @Override
        public void onLoginCancel(int code, String msg) {

            ToastUtil.showToast(MainActivity.this, "login cancel." + msg);
        }

        @Override
        public void onLogoutFinish(int code, String msg)  {

            ToastUtil.showToast(MainActivity.this, "logout finish." + msg);

        }

         @Override
        public void onInitSuccess(int code, String msg, String channelCode) {

            ToastUtil.showToast(MainActivity.this, "init success." + msg + ",channelCode is " + channelCode);
        }

        @Override
        public void onInitFail(int code, String msg, String channelCode) {

            ToastUtil.showToast(MainActivity.this, "init fail." + code + " " + msg + ",channelCode = " + channelCode);
        }
    });

4.5 登出接口

接口定义:public void logout(final Activity activity, final String customParams)

接口说明:用户登出接口,登出传入扩展参数 customParams

参数 说明
customParams 该参数用于扩展,传输时使用json格式,接入时若不需要直接置空即可

4.6 登出回调

注:登出回调接口(onLogoutFail,onLogoutSuccess)要在 UserCallBack 中实现

XGSDK.getInstance().setUserCallBack(new UserCallBack() {
        @Override
        public void onLogoutFinish(int code, String msg) {
           ToastUtil.showToast(MainActivity.this, "logout finish." + msg);

        }
}

4.7 退出接口(必接)

接口定义:public void exit(final Activity activity, ExitCallBack exitCallBack,final String customParams)

接口说明:用户退出接口,传入 exitCallback 和扩展参数 customParams

参数 说明
exitCallBack 退出回调
customParams 该参数用于扩展,传输时使用 json 格式,接入时若不需要直接置空即可

调用案例代码:

findViewById(RUtil.getId(getApplicationContext(), "xg_exit"))
.setOnClickListener(new OnClickListener() {
      @Override
 public void onClick(View v) {
 XGSDK.getInstance().exit(MainActivity.this,
 new ExitCallBack() {},null)
 }
   });

4.8 退出回调

样例代码:

new ExitCallBack() {
    @Override
  public void onNoChannelExiter(){
    //未提供退出引导
    //1 游戏需要使用自己的退出引导,进行退出
    注意:在最终退出前,需要先调用西瓜的回收资源接口}

  @Override
  public void doExit() {
    //已提供退出引导,游戏不需要使用自己的退出引导
    //1 调用西瓜的回收资源接口
    //2 释放游戏资源 并退出游戏

  }
}

4.9 释放资源接口(必接)

接口定义:public void releaseResource(Activity activity, String customParams);
接口说明:用户退出游戏时释放资源接口,传入扩展参数 customParams

参数 说明
customParams 该参数用于扩展,传输时使用 json 格式,接入时若不需要直接置空即可

调用案例代码:与退出接口类似。

5.充值接口

5.1 支付接口(必接)

接口定义:public void pay(final Activity activity, PayInfo payInfo,PayCallBack payCallBack)

接口说明:充值接口

参数 说明
payInfo 支付信息对象,包含产品ID、名称和数量等
paycallback 支付回调

调用案例代码:

//payInfo 初始化
.......
payment.setTotalPrice(totalPrice);
payment.setProductUnitPrice(1);
XGSDK.getInstance().pay(MainActivity.this, payment,
        new PayCallBack() {})

关于 PayInfo 的成员说明

所有必字段必须进行接入,否则会导致部分渠道无法支付!

请严格按照西瓜规定的字段长度进行设置,否则可能发生游戏服务器端长度不够问题。

参数 参数类型 最大长度 说明 必须
uid String 128 用户ID,游戏必须使用登录时西瓜服务器返回的uid Y
productId String 64 商品ID Y
productName String 64 商品名称 Y
productDesc String 128 商品描述 Y
productUnit String 64 商品单位,例如元宝 Y
productUnitPrice int 10 商品单价,单位分(无需传,以后版本会去掉) N
productQuantity int 10 产品数量,例如购买60元宝则传60 Y
totalAmount int 10 商品总金额,单位分 Y
payAmount int 10 实际支付总额,单位分 Y
currencyName String 64 海外渠道必传:实际支付的国际标准货币代码,比如CNY(人民币)/USD(美元) Y
roleId String 32 角色ID Y
roleName String 64 角色名称 Y
roleLevel int 32 角色等级 Y
roleVipLevel String 32 角色vip等级 Y
serverId String 32 服ID:必须为纯数字,且不能超过2147483647(应用宝渠道要求) Y
zoneId String 32 区ID Y
partyName String 32 帮会名称 N
virtualCurrencyBalance String 虚拟货币余额,需要此字段的渠道:快发、小米、VIVO Y
customInfo String 2000 扩展字段,订单支付成功后,透传给游戏 N
gameTradeNo String 64 游戏订单ID,支付成功后,透传给游戏 N
gameCallbackUrl String 128 支付回调地址,如果为空,则后台配置的回调地址 N
additionalParams String 扩展参数 N

常用的国际货币

国家 货币中文名 货币英文名 货币代码
中国 人民币元 RenminbiYuan CNY
韩国 韩圆 Korean Won KRW
日本 日元 Japanese Yen JPY
美国 美元 U.S.Dollar USD

支付场景

场景一: 某个玩家,购买750钻石(价值80元),创建订单参数是:

productId 11111
payAmount 实际支付总额(单位分) 8000
totalAmount 商品总金额(单位分) 8000
productName 商品名称 750钻石
productQuantity 商品数量 750
productUnit 商品单位 钻石
productUnitPrice 商品单价(单位分) 无需传

场景二: 某个玩家,遇到商品打折优惠:购买750钻石(价值80元)可享受8.5折优惠,这样其实玩家是用68元购买了750钻石,创建订单参数是:

productId 222
payAmount 实际支付总额(单位分) 6800
totalAmount 商品总金额(单位分) 8000(折前原价)
productName 商品名称 750钻石
productQuantity 商品数量 750
productUnit 商品单位 钻石
productUnitPrice 商品单价(单位分) 无需传

场景三: 某个玩家,购买月卡(价值30元),创建订单参数是:

productId 333
payAmount 实际支付总额(单位分) 3000
totalAmount 商品总金额(单位分) 3000
productName 商品名称 月卡
productQuantity 商品数量 1
productUnit 商品单位 月卡
productUnitPrice 商品单价(单位分) 无需传

5.2 支付回调

在调用 pay 接口时,需要实现 pay 支付 callback (支付的四种状态:支付成功,支付失败,支付取消,支付其他状态)。

实现的案例代码:

 XGSDK.getInstance().pay(MainActivity.this, payment, new PayCallBack() {

        @Override
        public void onPaySuccess(PayInfo payInfo,PayResult payResult) {
            ToastUtil.showToastLong(MainActivity.this, "pay success, result is "+payResult.toJson());
            OrderUtils.storeOrder(MainActivity.this, GameInfo.getInstance().getUid(),payResult.getXgTradeNo(),payment);
        }

        @Override
        public void onPayFail(PayInfo payInfo,PayResult payResult) {
            ToastUtil.showToastLong(MainActivity.this, "pay failed, result is "+payResult.toJson());
        }

        @Override
        public void onPayCancel(PayInfo payInfo,PayResult payResult) {
            ToastUtil.showToastLong(MainActivity.this, "pay canceled, result is "+payResult.toJson());
        }

        @Override
        public void onPayOthers(PayInfo payInfo, PayResult payResult) {
            ToastUtil.showToastLong(MainActivity.this, "onPayOthers, result is "+payResult.toJson());
        }

        @Override
        public void onPayProgress(PayInfo payInfo, PayResult payResult) {
            ToastUtil.showToastLong(MainActivity.this, "onPayProgress, result is "+payResult.toJson());
        }
    });

6.统计接口

6.1 创建角色(必接)

接口定义:public void onCreateRole(RoleInfo roleInfo)
接口说明:使用 roleInfo 来创建角色

参数 说明
roleInfo 角色信息

调用案例代码

findViewById(RUtil.getId(getApplicationContext(), "xg_create_role"))
            .setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    mRoleInfo.setRoleId("1112");
                    mRoleInfo.setRoleName("cuizi");
                    ...
                    XGSDK.getInstance().onCreateRole(MainActivity.this,
                            mRoleInfo);
                }
            });

关于 RoleInfo 的成员说明:

所有必字段必须进行接入,否则会导致统计不完全,部分渠道审核无法通过!

请严格按照西瓜规定的字段长度进行设置,否则可能发生游戏服务器端长度不够问题。

参数 参数类型 最大长度 说明 必须
uid string 128 用户ID,游戏必须使用登录时西瓜服务器返回的uid Y
serverId string 32 服ID:必须为纯数字,且不能超过2147483647(应用宝渠道要求) Y
serverName string 64 游戏必须传入真实的游戏服名称,建议中文 Y
zoneId string 32 游戏区ID Y
zoneName string 64 游戏大区名称:要与界面显示名称一致,如:界面显示(一区 桃园结义),zoneName也必须传(一区 桃园结义),UC渠道要求必传真实值,否则无法通过审核 Y
roleId string 32 角色ID Y
roleName string 64 角色名 Y
roleType string 20 角色类型,如法师,道士,战士 N
roleCreateTime string 10 角色创建时间(Unix时间戳,单位秒),如:1461722392,UC渠道要求必传真实值,否则无法通过审核 Y
roleLevel int 32 角色等级,游戏必须传入真实的角色等级 Y
roleVipLevel int 32 角色vip等级 N
partyName string 32 公会名 N
gender string 枚举值:m,f;分别代表男女 角色性别 N
balance string 128 角色账户余额 N

6.2 角色升级(必接)

接口定义:public void onRoleLevelup(RoleInfo roleInfo)

接口说明:角色等级接口,角色等级提升时调用

参数 说明
roleInfo 角色信息

调用案例代码

findViewById(RUtil.getId(getApplicationContext(), "xg_role_levelup"))
            .setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    mRoleInfo.setRoleId("1112");
                    mRoleInfo.setLevel(2);
                    ...
                    XGSDK.getInstance().onRoleLevelup(mRoleInfo);
                }
            });

6.3 进入游戏(必接)

接口定义:public void onEnterGame(RoleInfo roleInfo)
接口说明:进入游戏接口,进入游戏时调用

参数 说明
RoleInfo 角色信息

注:onEnterGame方法建议在所有的User Role Server 信息都获取到以后再进行调用

调用案例代码:

         XGSDK.getInstance().onEnterGame(mRoleInfo);

7.扩展接口

7.1 切换账号

接口定义:public void switchAccount(Activity activity, String customParams)

接口说明:切换账号,传入扩展参数 customParams

参数 说明
customParams 该参数用于扩展,传输时使用 json 格式,接入时若不需要直接置空即可

7.2 自定义事件

接口定义:public void onEvent(RoleInfo roleInfo, String eventId, String eventDesc, int eventVal, Map eventBody)

接口说明:自定义事件,传入事件id以及事件内容

参数 说明
roleInfo 角色信息
eventId 事件id
eventDesc 事件描述
eventVal 事件内容
eventBody key-value 事件体

7.3 任务开始

接口定义:public void onMissionBegin(RoleInfo roleInfo, String missionId, String missionName, String customParams)

接口说明:任务开始接口

参数 说明
roleInfo 对象信息
missionId 任务ID
missionName 任务名称
customParams 该参数用于扩展,传输时使用json格式,接入时若不需要直接置空即可

7.4 任务成功

接口定义:public void onMissionSuccess(RoleInfo roleInfo, String missionId, String missionName, String customParams)

接口说明:任务执行成功接口

参数 说明
roleInfo 对象信息
missionId 任务ID
missionName 任务名称
customParams 该参数用于扩展,传输时使用json格式,接入时若不需要直接置空即可

7.5 任务失败

接口定义:public void onMissionFail(RoleInfo roleInfo, String missionId, String missionName, String customParams)

接口说明:任务失败

参数 说明
roleInfo 对象信息
missionId 任务ID
missionName 任务名称
customParams 该参数用于扩展,传输时使用json格式,接入时若不需要直接置空即可

7.6 购买虚拟货币

接口定义:public void onVirtualCurrencyPurchase(RoleInfo roleInfo, int amount, String virtualCurrencyType, int virtualCurrencyTotal, String gameTradeNo)

接口说明:充值获得的虚拟货币

参数 说明
roleInfo 角色信息
amount 获得数量
virtualCurrencyType 虚拟货币名称,如:元宝、金币等
virtualCurrencyTotal 虚拟货币总量,如:100、1000、10000
gameTradeNo 游戏订单号

7.7 赠送虚拟货币

接口定义:public void onVirtualCurrencyReward(RoleInfo roleInfo, int amount, String virtualCurrencyType, int virtualCurrencyTotal, String gainChannel, String gainChannelType, String gameTradeNo)

接口说明:玩家可以在任务奖励、登录奖励、成就奖励等环节获得赠送的虚拟货币

参数 说明
roleInfo 角色信息
amount 奖励数量
virtualCurrencyType 虚拟货币名称,如:元宝、金币等
virtualCurrencyTotal 虚拟货币总量,如:100、1000、10000
gainChannel 货币来源,比如(每日登录奖励,抽宝箱等)
gainChannelType 货币来源类型比如日常任务、闯关等
gameTradeNo 游戏订单号

7.8 消费虚拟货币

接口定义:public void onVirtualCurrencyConsume(RoleInfo roleInfo, int amount, String virtualCurrencyType, int virtualCurrencyTotal, String itemName, int itemNum, String itemType)

接口说明:建议只跟踪有价值的虚拟货币,普通游戏币的消耗不建议在此跟踪

参数 说明
roleInfo 角色信息
amount 消费虚拟货币数量
virtualCurrencyType 虚拟货币名称,如:元宝、金币等
virtualCurrencyTotal 虚拟货币总量,如:100、1000、10000
itemName 消费项目(比如十连抽,购买体力等)
itemNum 消费项目的数量,如1、2、3
itemType 消费类型 比如道具

7.9 通用接口(选接,在西瓜api 2.2.7版本以上使用)

接口定义:public Object callXGMethod(String methodName, Object param, XGGenericCallBack callback, String customInfo)

接口说明:通过当前接口,来调用部分 渠道的特殊接口

参数 说明
methodName 特殊接口的方法名
param 调用接口时,所需要的参数
callback 回调信息,具体内容按照各接口区分
customInfo 透传信息,会在回调信息中透传回来

通用回调

new XGGenericCallBack() {
  @Override
  public void onXGGenericCallBack(int code, String customInfo, Object result) {
    //code:         返回码,用于判断是否成功
    //customInfo    透传信息,调用通用接口callXGMethod时传入的customInfo
    //result        返回结果
  }
}

8.运营活动接口

8.1 礼包码兑换,绑定手机号(西瓜提供页面)

接口定义:

public void openWebActivity(Context context, String uid, String activityType, String roleId,
        String zoneId, String serverId)

接口说明:开启活动页面

参数 说明
context 当前context
uid 玩家uid
activityType 活动类型(IXGSDK中常量ACTIVITY_TYPE_GIFT/ACTIVITY_TYPE_MOBILE_BIND分别为兑换礼包码和绑定手机号)
roleId 玩家角色ID
zoneId 游戏区ID
serverId 游戏服ID

8.2 礼包码兑换 (游戏提供界面)

接口定义:

public void exchangeGiftCode(String uid, String roleId, String zoneId, String serverId,
        String giftCode, ActivityCallBack callback) {

接口说明:礼包码兑换

参数 说明
uid 玩家uid
roleId 玩家角色ID
zoneId 游戏区ID
serverId 游戏服ID
giftCode 礼包码
callback 兑换结果回调

8.3 绑定手机号(游戏提供界面)

接口定义:

// 发送验证码
public void sendCaptcha(BindMobileInfo bindMobileInfo, ActivityCallBack callback)

// 绑定手机号  
public void bindMobile(BindMobileInfo bindMobileInfo, String captcha, ActivityCallBack callback)

接口说明:发送验证码

参数 说明
bindMobileInfo 发送手机短信验证码所需信息
callback 发送结果回调
关于 BindMobileInfo 的成员说明:

所有必字段必须进行接入

参数 参数类型 最大长度 说明 必须
mobile string 11 手机号 Y
uid string 128 用户ID,游戏必须使用登录时西瓜服务器返回的uid Y
serverId string 32 游戏服ID Y
zoneId string 32 区ID Y
roleId string 32 角色ID Y
roleName string 64 角色名 Y

接口说明:绑定手机号

参数 说明
bindMobileInfo 绑定手机号所需信息
captcha 接收到的手机验证码
callback 发送结果回调
关于 BindMobileInfo 的成员说明:

所有必字段必须进行接入

参数 参数类型 最大长度 说明 必须
mobile string 11 手机号 Y
uid string 128 用户ID,游戏必须使用登录时西瓜服务器返回的uid Y
serverId string 32 游戏服ID Y
zoneId string 32 区ID Y
roleId string 32 角色ID Y
roleName string 64 角色名 Y

8.4 问卷调查

问卷的内容和完成问卷返回的礼品信息,需要联系西瓜数据和运营人员设定完成。

8.4.1 初始化问卷

示例代码如下:

    XGSDK.getInstance().initQuestionnaire(activity, new QuestionnaireCallBack() {
            @Override
            public void doFreshQuestionnaire(String questionnaireName) {
                //问卷状态更新后,用该方法处理问卷信息的显示与通知
                //在进入游戏,或完成问卷,或主动调用问卷刷新接口时触发

            }

            @Override
            public void doFinishQuestionnaire(String giftInfo) {
                //问卷完成后,用该方法处理完成问卷的相关奖励。
            }
    });

8.4.2 刷新问卷

接口定义:

public static void refreshQuestionnaire(RoleInfo roleInfo, string missionId, string missionName, string customParams);

接口说明:游戏初始化问卷后手动调用刷新问卷,查看问卷是否更新。

参数说明:

RoleInfo说明:

输入参数 数据类型 最大长度 说明 是否必填
uid String 128 用户ID (必须传入登录时XG服务器返回的UID) Y
roleId String 32 角色ID Y
roleName String 64 游戏必须传入真实的角色名,建议中文 Y
roleType String 20 角色类型,必须使用真实的角色类型,如法师,道士,战士,建议中文 N
roleCreateTime Data 10 角色创建时 (UC渠道要求必传真实值,否则无法通过审核) Y
roleLevel String 32 角色等级 Y
roleVipLevel String 32 角色VIP等级 N
serverId String 32 服ID:必须为纯数字,且不能超过2147483647(应用宝渠道要求) Y
zoneId String 32 区ID Y
serverName String 64 游戏必须传入真实的游戏服名称,建议中文 Y
zoneName String 32 游戏大区名称:要与界面显示名称一致,如:界面显示(一区 桃园结义),zoneName也必须传(一区 桃园结义)(UC渠道要求必传真实值,否则无法通过审核) Y
partyName String 32 公会名 N
gender String 传入字符:m,f;分别代表男女 性别 Y
balance String 128 角色账户余额 Y
ageInGame String 64 角色游戏年龄(单位:天) N
accountAgeInGame String 64 账号游戏年龄(单位:天) N
ext String 1024 扩展参数 N

其它参数说明:

输入参数 数据类型 说明 可空
missionId string 任务ID 可为空
missionName string 任务名称 可为空
customParams string json串格式自定义参数 可为空

代码样例:

 XGSDK2.instance.refreshQuestionnaire(roleInfo, "missionId", "missionName", null);

8.4.3 打开问卷

接口定义:

  public static void openXgQuestionnaire(int widthPercent,  int heightPercent, string customParams)

接口说明:当游戏有通过游戏用户在线分发问卷的需求时,可以通过本SDK的接入简化开发提高效率节省成本。

参数说明:

widthPercent:打开问卷窗口的宽度占屏幕的百分比,100表示全屏。 heightPercent:打开问卷窗口的高度占屏幕的百分比,100表示全屏。 customParams:json串格式自定义参数。

代码样例:

  XGSDK2.instance.openXgQuestionnaire(80, 80, null);

8.5 更新服务回调接口

游戏需要使用西瓜更新服务时,在西瓜后台配置打开更新

西瓜检测完更新将通过西瓜通用回调(onXGGenericCallBack)回调游戏 (注:需要手动设置通用回调并处理)

参数 说明
code 200:成功,其它失败
customInfo {"updateType":"1"} type = 0 为强制更新 type = 1 为选择更新 type = -1 为不存在更新
result "updateCallBack"

10 渠道接入要点须知

  • 华为:
    1.要求传入的productDesc非空,不能包含特殊字符,包括 # " & / ? $ ^ *:) \ < > | , = 回车 换行,否则会导致无法拉起支付
  • 快发:
    1.要求首次启动游戏onCreateRole的信息和onEnterGame的一致
  • UC:
    1.角色创建时间为必传
    2.zoneName要与角色进入游戏时,玩家看到的信息相同,如:界面显示(一区 桃园结义),zoneName也必须传(一区 桃园结义)
  • 应用宝:
    1.调用西瓜login接口可以传参:{\"platform\":\"qq\"} or {\"platform\":\"weixin\"}"
    2.serverid必须为纯数字,且不能超过2147483647