西瓜SDK(Unity3d Windows版)接口自检文档

1. 文档概述

此文档为Unity3d引擎Windows平台下游戏客户端模拟接入文档。
本文介绍如何在Unity3d引擎平台下,游戏接入开发人员在Windows平台的IDE开发调试环境下进行模拟接入西瓜SDK。 文档分成三大部分:西瓜SDK模拟接入工具 下载,集成模拟接入环境,各个接口的接入说明和样例代码,如何查看调测记录。逐步细述了整个接入过程;
同时罗列出了4种类型的接口:分别为:用户与角色接口、充值接口、统计接口、扩展接口 ,便于游戏方的接入人员可以按照需求更加快速便捷的进行模拟接入。

注意: 该接口自检插件目前只对所有必接主动接口进行校验。接口如下:
login onCreateRole onEnterGame onRoleLevelup pay exit releaseResource

1.1 文档结构

  1. 文档概述
  2. 环境搭建
  3. 接口接入
  4. 接口调测

2. 环境搭建

2.1 开发环境

开发环境: Winows平台

2.2开发工具

开发工具:
Unity4.6.0

2.3 SDK包下载

Unity3D SDK调测包下载

解压后,unity目录下有三个文件夹:libsXG_Unity_interfaces_self-checking.unitypackageXGSDK

(1)XGSDKlibs在客户端接入时就已完成配置,此处无需再次操作。

(2)XG_Unity_interfaces_self-checking.unitypackage导入项目中,成功后将包含以下内容:

  • XGSDKChannelTest/resources:
    里面包含字体图片样式以及配置文件configs/sdk_config.properties
  • XGSDKChannelTest/scripts:
    包含MonoBehaviour脚本以及用到的几个工具类

  • XGSDK: XGSDKEntity 实体类,包括( PayInfo 支付实体类 RoleInfo 角色实体类)
    XGSDK2.cs 西瓜API接口
    XGSDKCallback.cs 西瓜回调接口,抽象类
    XGSDKCallbackImpl.cs 对XGSDKCallback的空实现,需要的可以把注释去掉即可 XGSDKCallbackWrapper.cs 西瓜回调接口包装类,解析回调的字符串
    XGSDKMiniJSON.cs 西瓜专用json解析类
    XGSDK2GameCenter.cs 游戏中心,仅供ios平台使用

2.4 接入步骤

2.4.1 放置脚本文件

  • 将unity_x.x.x.zip解压后,XGSDK手动拷贝到<项目目录>\Assets中;
  • 导入package方法:打开游戏unity工程,双击打开unity_channelTest.unitypackage,按照unity给的提示选择导入即可

2.4.2 配置回调实现类

接下来,游戏需要自己新建一个处理回调的实现类,例如XGSDKCallbackImpl,这个实现类必须继承XGSDKCallback.cs抽象类,实现类中的抽象方法;然后在XGSDKCallback.cs类中,替换getInstance方法中的实现类,改成自己的实现类。

2.4.3 配置 sdk_config.properties

在西瓜Web控制台选择“接入西瓜SDK”->“接入调测”,如下图:

点击 “一键复制参数” 按钮,用文本工具编辑sdk_config.properties,将配置信息粘贴到文件里:

配置信息内容不需要关心,由系统自动生成。

2.4.4 运行

先将平台切换到PC平台,就可以直接运行了。

3、接口接入

3.1 回调配置

3.1.1 unity引擎层创建回调接受对象

    public static void CreateSDKManager()

接口说明: 配置回调方法
注意:必须在第一个场景的脚本的Awake方法中调用

代码样例

void Awake()
{
    XGSDKCallbackWrapper.CreateSDKManager ();
}

3.1.2 通知Android / iOS初始化回调方法

    public static void setCallback()

接口说明:

设置UserCallBack,SDK初始化、用户登录、支付结果的回调都会通知到此对象。

注意:必须在第一个场景的Start方法中调用
原因说明:CreateSDKManager和setCallback的调用顺序是不能改变的。在第一个场景的Awake方法中调用CreateSDKManager,在Start方法中调用setCallback方法。之所以这么做,是因为必须要先初始化Unity3D引擎层的接受回调的gameObject对象,而且在setCallback方法执行后,会调用Android / iOS初始化回调方法,所以CreateSDKManager必须在setCallback之前调用。

代码样例:

void Start(){
    XGSDK2.instance.setCallback();
}

3.1.3 开始测试初始化回调接口

以上的配置都配置正确后,即可开始运行。首先测试初始化回调接口:

如上图,运行成功后,会弹出一个XG初始化测试弹框和一个悬浮窗(可拖动)。
游戏可以点击“模拟成功”和“模拟失败”按钮,通过点击后的效果来检查是否已经成功调用了相应的接口。
悬浮窗中的“切换账号”和“退出游戏”:可以检测切换账号(如果游戏有接入)和退出游戏两个接口。

回调方法:

  • 初始化成功回调
    public abstract void onInitSuccess (int code, string msg, string channelCode);

回调说明: 当游戏初始化成功时,会收到初始化成功回调,游戏在此回调中实现初始化成功后的逻辑。

参数说明:

  1. code(int):返回的错误码,详情请见错误码表
  2. msg(string):返回的信息
  3. channelCode(string):渠道的错误码

  • 初始化失败回调
    public abstract void onInitFail (int code, string msg,string channelCode);

回调说明: 当游戏初始化失败时,会收到初始化失败回调,游戏在此回调中实现初始化失败后的逻辑。

参数说明:

  1. code(int):返回的错误码,详情请见错误码表
  2. msg(string):返回的信息
  3. channelCode(string):渠道的错误码

3.2 基础接口

3.2.1 登录接口(必接)

游戏点击登录按钮,弹出XG登录测试窗口 :

点击模拟成功按钮:

操作说明:提示游戏点击前一个窗口的模拟成功/失败/取消按钮后,再点击按钮知道了之后会收到的回调。
知道了:点击该按钮后,游戏会收到相应的回调。
如果点击知道了按钮,并且回调正常。游戏可以去西瓜web控制台查询接口调用的状态。

接口调用状态:必接主动调用接口的调用状态。

  1. 绿勾表示已经调用并且参数校验通过。
  2. 灰色表示未调用。
  3. 红叉表示的是调用失败(参数校验失败)。

PS:如果想知道最新的接口调用状态,可以使用右上角的刷新按钮,得到最新的状态。

接口调用日志:可以点击上图接口调用日志中的查看详情查询接口的调用记录,包括登录用户名,时间,接口名,调用过程以及具体的参数。

在登录流程表中,方向箭头分为三种: 绿色表示成功,红色表示调用失败,灰色表示未调用。
点击绿色向右的方向线,才会出现下半部分的具体参数,参数和描述。

PS:可以通过搜索得到最新的接口调用日志。

自检其他接口完成后,同样可以查看对应的接口调用状态和详细的接口调用日志

接口详情

    public static void login(string customParams)

接口说明: 登录时调用,此接口将调出渠道的登录界面。

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

代码样例:

    XGSDK2.instance.login(customParams);

回调方法:

  • 登录成功回调:
    public abstract void onLoginSuccess (int code, string authInfo);

回调说明: 登录成功之后,会收到登录成功回调,游戏在此回调中实现登录成功后的逻辑,特别需要注意,如果需要使用第四节的调测功能,保证测试功能连贯,在登录成功后需要回调游戏的主界面,不然游戏不能走到渠道的支付界面。

参数说明:

  1. code(int):返回的错误码,详情请见错误码表
  2. authInfo(string):用户验证信息
  • 登录取消回调:
    public abstract void onLoginCancel (int code, string msg);

回调说明: 当用户取消登录之后,会受到登录取消的回调,游戏在此回调中实现登录取消后的逻辑。

参数说明:

  1. code(int):返回的错误码,详情请见错误码表
  2. msg(string):返回的信息
  • 登录失败回调:
    public abstract void onLoginFail (int code, string msg, string channelCode);

回调说明: 登录失败后,会收到登录失败的回调,游戏在此回调中实现登录失败后的逻辑。

参数说明:

  1. code(int):返回的错误码,详情请见错误码表
  2. msg(string):返回的信息
  3. channelCode(string):渠道错误码

3.2.2 登出接口

       public static void logout(string customParams)

接口说明: 登出时调用,此接口将调用渠道的登出方法。

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

代码样例:

    XGSDK2.instance.logout(customParams);

回调方法:

  • 登出成功回调
    public abstract void onLogoutFinish (int code, string msg);

回调说明: 登出成功后,会收到登出成功的回调,游戏在此回调中实现登出成功后的逻辑。

参数说明:

  1. code(int):返回的完成码,详情请见登出完成码表
  2. msg(string):返回的信息

3.2.3 支付接口(必接)

点击支付按钮,弹出西瓜提供的一个支付的场景,建议传递的参数如下:

接下来校验payInfo对象中的各个参数。校验规则和校验oncreateRole接口的RoleInfo一致。

如果校验payInfo对象中没有失败的参数,则弹出支付回调的窗口。

游戏可根据操作说明来检测回调是否正常接入。

西瓜web控制台状态

如上图, 调测用充值回调地址:游戏需要填入一个可用的回调地址来接受模拟的充值回调。具体的接口定义请看服务端接入指南支付通知接口

接口调用日志里,pay(success)那一行,点击查看详情,弹出具体的支付流程和参数窗口。

在上半部分的支付流程表中,如果游戏没有配置调测用充值回调地址则无法点亮notify-recharge-result这个流程。
目前verify-order流程功能没有开通。

接口详情
        public static void pay(PayInfo payInfo)

接口说明: 支付时调用,此接口将会发起用户充值,系统会调用对应渠道SDK充值界面。

参数说明:

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

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

参数 参数类型 最大长度 说明 必须
uid String 128 游戏必须使用登录时西瓜服务器返回的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(美元) N
roleId String 32 角色ID Y
roleName String 64 角色名称 Y
roleLevel int 32 角色等级 Y
roleVipLevel String 32 角色vip等级 N
serverId String 32 服ID:必须为纯数字,且不能超过2147483647(应用宝渠道要求) Y
zoneId String 32 区ID Y
partyName String 32 帮会名称 N
customInfo String 2000 扩展字段,订单支付成功后,透传给游戏 N
gameTradeNo String 64 游戏订单ID,支付成功后,透传给游戏 N
gameCallbackUrl String 128 支付回调地址,如果为空,则后台配置的回调地址 N
additionalParams String - 透传参数 N
virtualCurrencyBalance String 32 虚拟货币余额,需要此字段的渠道:快发、小米、VIVO Y

支付场景

场景一: 某个玩家,购买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 商品单价(单位分) 无需传

代码样例:

    XGSDK2.instance.pay(payinfo);

回调方法:

  • 支付成功回调
    public abstract void onPaySuccess(string payResult);

回调说明: 支付成功后,会收到支付成功的回调,游戏在此回调中实现支付成功后的逻辑。

参数说明: 返回的参数payResult是一个json,解析之后有如下参数:

  • code:返回的支付结果,详情请见错误码表
  • msg:错误信息
  • xgTradeNo:西瓜创建的支付订单ID
  • gameTradeNo:游戏传入的订单ID
  • channelCode:渠道支付结果
  • channelMsg:渠道错误信息
  • 支付取消回调
    public abstract void onPayCancel(string payResult);

回调说明: 支付取消后,会收到支付取消回调,游戏在此回调中实现支付取消后的逻辑。

参数说明: 返回的参数payResult是一个json,解析之后有如下参数:

  1. code:返回的支付结果,详情请见错误码表
  2. msg:错误信息
  3. xgTradeNo:西瓜创建的支付订单ID
  4. gameTradeNo:游戏传入的订单ID
  5. channelCode:渠道支付结果
  6. channelMsg:渠道错误信息
  • 支付失败回调
    public abstract void onPayFail(string payResult);

回调说明: 支付失败后,会收到支付失败的回调,游戏在此回调中实现支付失败后的逻辑。

参数说明: 返回的参数payResult是一个json,解析之后有如下参数:

  1. code:返回的支付结果,详情请见错误码表
  2. msg:错误信息
  3. xgTradeNo:西瓜创建的支付订单ID
  4. gameTradeNo:游戏传入的订单ID
  5. channelCode:渠道支付结果
  6. channelMsg:渠道错误信息
  • 支付结果未知回调
    public abstract void onPayOthers(string payResult);

回调说明: 当支付结果未知的时候,会收到支付结果未知的回调,游戏在此实现支付结果未知时的逻辑。

参数说明: 返回的参数payResult是一个json,解析之后有如下参数:

  1. code:返回的支付结果,详情请见错误码表
  2. msg:错误信息
  3. xgTradeNo:西瓜创建的支付订单ID
  4. gameTradeNo:游戏传入的订单ID
  5. channelCode:渠道支付结果
  6. channelMsg:渠道错误信息
  • 支付过程中回调
    public abstract void onPayProgress(string payResult);

回调说明: 当支付过程仍未结束的时候,会收到支付过程中的回调,游戏在此实现支付过程中的逻辑。

参数说明: 返回的参数是一个json,解析之后有如下参数:

  1. code:返回的支付结果,详情请见错误码表
  2. msg:错误信息
  3. xgTradeNo:西瓜创建的支付订单ID
  4. gameTradeNo:游戏传入的订单ID
  5. channelCode:渠道支付结果
  6. channelMsg:渠道错误信息

3.2.4 退出接口(必接)

点击悬浮窗的退出游戏按钮,弹出退出测试窗口:

点击无渠道弹出框退出,会弹出游戏自己实现的弹出框。

点击有渠道弹出框退出,弹出一个模拟渠道的退出框。

接口详情
        public static void exit(string customParams)

接口说明: 退出时调用,此接口将调用渠道的退出方法,会尝试退出游戏,并将结果通过退出回调通知游戏。

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

代码样例:

    XGSDK2.instance.exit("");

回调方法:

  • 直接退出回调
    public abstract void doExit(string msg);

回调说明: 直接退出游戏成功时,会收到直接退出的回调,游戏在此回调中实现退出游戏后的逻辑。

参数说明: 参数msg无意义。

  • 使用游戏方退出回调
    public abstract void onNoChannelExiter(string msg);

回调说明: 使用游戏方退出时,会收到使用游戏方退出的回调,游戏需要在此回调实现退出游戏逻辑。

参数说明: 参数msg无意义。

3.2.5 释放资源接口(必接)

        public static void releaseResource(string customParams)

接口说明: 用户点击退出时释放资源

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

3.2.6 获取渠道ID

        public static string getChannelId()

接口说明: 获取渠道ID时使用。渠道ID列表请点击渠道ID列表

返回值

参数类型说明
channelIdstirng渠道ID

代码样例:

    XGSDK2.instance.getChannelId();

3.2.7 创建角色(必接)

游戏在登录成功后,点击开始游戏,开始调用onEnterGame,onCreateRole接口,这时候会校验接口的roleInfo对象中的各个参数值。

参数校验有三种状态:
warning:参数已传,但是不符合我们我们建议的参数规则。如果确认参数无误,点击知道了按钮可以继续进行下一步。
pass:参数已传,符合我们我们建议的参数规则。此时不会弹出参数校验的窗口,继续进行下一步。
error:必传的参数没有传值。此时游戏不能进行其他的操作,例如支付。

接口详情
        public static void onCreateRole(RoleInfo roleInfo)

接口说明: 此接口用于游戏信息统计,当创建游戏角色时调用。

参数说明(RoleInfo的成员变量)

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

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

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

代码样例:

    XGSDK2.instance.onCreateRole(roleInfo);

3.2.8 进入游戏(必接)

    public static void onEnterGame(RoleInfo roleInfo)

接口说明 此接口用于游戏信息统计,当进入游戏时调用。

参数说明: 同上

代码样例:

    XGSDK2.instance.onEnterGame(roleInfo);

3.2.9 角色升级(必接)

        public static void onRoleLevelup(RoleInfo roleInfo)

接口说明: 此接口用于游戏信息统计,当角色升级时调用。

参数说明: 同上

代码样例:

    XGSDK2.instance.onRoleLevelup(roleInfo);

3.3 扩展接口

3.3.1 用户中心

        public static void openUserCenter(string customParams)

接口说明: 打开用户中心时调用,此接口将调用渠道的用户中心方法。

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

代码样例:

    XGSDK2.instance.openUserCenter("openUserCenter");

3.3.2 切换账号

        public static void switchAccount(string customParams)

接口说明: 切换账号时调用,此接口将调用渠道的切换账号方法。

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

代码样例:

    XGSDK2.instance.switchAccount("switchAccount");

3.4 统计相关接口

3.4.1 任务开始

    public void onMissionBegin(RoleInfo roleInfo, string missionId, string missionName, string customParams)

接口说明: 此接口用于数据统计,任务开始时调用。

参数说明: 关于 RoleInfo 的成员说明

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

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

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

代码样例:

    XGSDK2.instance.onMissionBegin(roleInfo,"1","test","1");

3.4.2 任务成功

    public void onMissionSuccess(RoleInfo roleInfo, string missionId, string missionName, string customParams)

接口说明: 此接口用于数据统计,任务成功时调用。

参数说明:

输入参数 数据类型 说明 可空
missionId string 任务ID 不可为空
missionName string 任务名称 不可为空
customParams string 扩展参数 不可为空

代码样例:

    XGSDK2.instance.onMissionSuccess(roleInfo,"1","test","1");

3.4.3 任务失败

    public void onMissionFail(RoleInfo roleInfo, string missionId, string missionName, string customParams)

接口说明: 此接口用于数据统计,任务失败时调用。

参数说明:

输入参数 数据类型 说明 可空
missionId string 任务ID 不可为空
missionName string 任务名称 不可为空
customParams string 扩展参数 不可为空

代码样例:

    XGSDK2.instance.onMissionFail(roleInfo,"1","test","1");

3.4.4 充值获得虚拟货币

    public void onVirutalCurrencyPurchase(RoleInfo roleInfo, int amount, string customParams)

接口说明 此接口用于游戏信息统计,充值获得虚拟货币时调用。

参数说明:

参数 说明
roleInfo 对象信息
amount 数量
customParams 扩展参数

代码样例:

    XGSDK2.instance.onVirtualCurrencyPurchase(roleInfo,10,"1");

3.4.5 赠送的虚拟货币

    public void onVirtualCurrencyReward(RoleInfo roleInfo, int amount, string customParams)

接口说明: 此接口用于游戏信息统计,玩家可以在任务奖励、登录奖励、成就奖励等环节获得赠送的虚拟货币时调用

参数说明:

参数 说明
roleInfo 对象信息
reason 获得虚拟货币的原因(登录奖励、新手礼包等)
amount 数量
customParams 扩展参数

代码样例:

    XGSDK2.instance.onVirtualCurrencyReward(roleInfo,"TanXian",10,"2");

3.4.6 跟踪虚拟货币的消费

    public void onVirtualCurrencyConsume(RoleInfo roleInfo, string itemName, int amount, string customParams)

接口说明: 此接口用于游戏信息统计,跟踪虚拟货币的消费(建议只跟踪有价值的虚拟货币,普通游戏币的消耗不建议在此跟踪)。

参数说明:

参数 说明
roleInfo 对象信息
itemName 消费点(比如十连抽、购买体力等)
amount 数量
customParams 扩展参数

代码样例:

    XGSDK2.instance.onVirtualCurrencyConsume(roleInfo,"1",10,"123");

3.4.7自定义事件

        public static void onEvent(RoleInfo roleInfo, string eventId, string eventDesc, int eventVal, string eventBody)

接口说明: 传递事件时使用,此接口用于游戏的自定义事件。

参数说明:

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

代码样例:

    XGSDK2.instance.onEvent(roleInfo,"eventid","eventDesc",1,"tanxianchuji");

3.4.8 跟踪玩家的支付信息

        public static void onPayFinish(PayInfo payInfo)

接口说明: 跟踪玩家的支付信息,支付成功时调用此接口。

参数说明: payInfo 支付信息

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

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

参数 参数类型 最大长度 说明 必须
uid String 128 游戏必须使用登录时西瓜服务器返回的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(美元) N
roleId String 32 角色ID Y
roleName String 64 角色名称 Y
roleLevel int 32 角色等级 Y
roleVipLevel String 32 角色vip等级 N
serverId String 32 服ID:必须为纯数字,且不能超过2147483647(应用宝渠道要求) Y
zoneId String 32 区ID Y
partyName String 32 帮会名称 N
customInfo String 2000 扩展字段,订单支付成功后,透传给游戏 N
gameTradeNo String 64 游戏订单ID,支付成功后,透传给游戏 N
gameCallbackUrl String 128 支付回调地址,如果为空,则后台配置的回调地址 N
additionalParams String - 透传参数 N
virtualCurrencyBalance String 32 虚拟货币余额,需要此字段的渠道:快发、小米、VIVO Y

代码样例:

    XGSDK2.instance.onPayFinish(payInfo);