Uncategorized

iOS不常用功能(4.6.0)20250316

wapublisher No Comments

1 支付有关

1.1 查询商品本地价格

通过查询商品信息,可以获取库存商品的本地价格,查询商品本地价格调用接口:
+ (void)queryChannelProduct:(NSString )channel
callBackBlock:(void(^)(NSArray
channelProductsArray,NSError *error))callBackBlock

代码示例

注意:这个接口需要在查询库存商品( queryInventoryWithDelegate)成功回调后使用。
参数说明:

参数名 类型 必填 说明 备注
chanel NSString Y 渠道名称 如苹果渠道 APPLE

实体结果说明 WAChannelProduct:

字段名 类型 说明 备注
channel NSString 渠道名称 传递的channel
productIdentifiere NSString 平台商品id
localeCurrencyCode NSString 本地货币code USD 、CNY
localFormattedPrice NSString 格式化价格 $999.99 、 ¥6,498.00
price NSDecimalNumber 价格 999.99、 6498

1.2支付服务是否可用

通过以下接口可以获取支付服务是否可用,返回boolean类型结果,true为可用,false为不可用,只要有一个支付渠道可用即为true:
+(BOOL)isPayServiceAvailable;
代码示例:

2 . 隐私政策

如果CP对接的登录方式是接口登录方式,则可以使用以下几个接口来实现隐私政策流程,具体流程可参考下图。
图片1

2.1 获取隐私政策url

WINGSDK有自己的隐私政策,调用以下接口获取到隐私政策url(隐私政策内容为html页面)

示例:

2.2 获取隐私政策更新时间

隐私政策更新需要重新显示时可以调用以下接口获取最新隐私政策更新时间,和上一次保存的时间戳作对比,从而确定是否需要展示

示例:

2.3 显示隐私政策详情UI

当需要显示隐私政策详情时,可以调用以下接口显示出隐私政策详情界面

示例:

3 公共设置

WINGSDK包括serverId等公共参数,这些参数主要用于数据跟踪和统计。公共参数必须严格按照文档进行配置,在后续的接口中会使用到这些公共的参数,没有按照要求配置会导致部分接口调用失败。

3.1 设置服务器ID

当用户的服务器ID发生改变时,需要调用设置服务器ID接口设置新的服务器ID,例如每次进入服务器:

注意:设置服务器ID的操作在每次选服后都需要进行,必须在调用其他接口前设置。

3.2 设置用户gameUserId

用户在选择服务器并且登录之后将用户gameUserId设置到SDK中以便于跟踪。

3.3 设置用户等级level

设置游戏玩家的角色等级,调用接口:

注意:第一次进服获取玩家等级或玩家等级变更后,需要及时调用这个接口设置玩家等级,必须在调用其他接口前设置。

3.4 设置玩家昵称

设置游戏玩家的昵称,调用接口:

注意:
1.当玩家登录、登出游戏,或修改昵称时,需要及时调用这个接口设置玩家昵称。
2.调用该接口设置昵称后,玩家进行购买时会自动记录昵称到订单信息中。

4 登录有关

4.1 应用内登录

SDK平台应用内登录,是指CP本身有自己登录系统,先登录CP后台拿到用户信息后登录SDK后台,应用内登录调用接口用户登录接口 ,登录平台取值APPSELF(WA_PLATFORM_APPSELFLOGIN),将CP后台返回的用户信息按照规定格式(JSON字符串)通过extInfo字段传入。

应用内登录extInfo格式(标准JSON格式字符串)

实例:

字段说明:

字段名 类型 说明 必填 备注
appSelfLogin boolean 应用内登录固定值true Y
puserId String CP用户id Y
accessToken String CP用户Token Y
extInfo String 额外信息 N CP 扩展信息字段,限长512,WING服务器到CP服务器验证登录时原样返回给CP。CP可以添加任意自定义的字段(JSON格式),用于检验登录或扩展其它功能,不超过长度限制即可。

4.2 登录高级设置

使用该接口需注意以下两点:
1)一般来说,如果应用登录的时候有登录方式选择界面,就不需要使用此接口,此接口默认是这种方式(取值为1)。

2)这个接口主要是用来满足以下需求:用户第一次登录是以游客方式进行登录,进到应用里面可以切换其它登录方式,下次登录会直接以切换后的账户进行登录(取值为2)。

代码示例:

登录流程有两种模式,在WAConstants类中定义,取值如下表:

名称 取值 备注
WA_LOGIN_FLOW_TYPE_DEFAULT 1 适用于有登录界面的场景,登录的时候不会重新绑定设备
WA_LOGIN_FLOW_TYPE_REBIND 2 适用于无登录界面的场景,登录时重新将新账号与当前设备绑定,如在游戏中切换账户,切换以后的匿名登录是以切换后的账户进行登录。

5 账户管理

5.1 关于绑定解绑的通知

账户管理界面没有返回绑定和解绑结果,但是会以通知的方式将结果回调给CP。当绑定有结果之后(无论成功失败),将回传一个WABindingResult实例。当解绑有结果(无论成功失败),将回传一个WAAccount实例。有四个通知,分别是绑定成功、绑定失败、解绑成功、解绑失败,通知的名称分别是以下常量:
WABindDidSucceedNotification;//绑定成功
WABindDidFailNotification;//绑定失败
WAUnbindDidSucceedNotification;//解绑成功
WAUnbindDidFailNotification;//解绑失败

注:关于绑定facebook成功之后,请注意触发邀请奖励。代码如下:

5.2 绑定第三方平台账户

5.2.1 实现协议WAAccountBindingDelegate

说明:关于APPLE账号的绑定,请参考实现协议WALoginDelegate中定义的方法的说明。

5.3 调用方法

+(void)bindingAccountWithPlatform:(NSString *const)platform extInfo:(NSString*)extInfo delegate:(id<WAAccountBindingDelegate>)delegate;
绑定平台取值:

名称 取值 备注
WA_PLATFORM_FACEBOOK FACEBOOK FACEBOOK平台
WA_PLATFORM_APPLE APPLE APPLE平台
WA_PLATFORM_VK VK VK平台

示例代码:

5.4 查询已经绑定的第三方平台账户

通过以下接口,可以查询当前的账户已经绑定的第三方平台账户:
+(void)queryBoundAccountWithCompleteBlock:(void(^)(NSError* error,NSArray<WAAccount *>* accounts))block;

示例代码:

5.5 解绑第三方平台账户

通过以下接口,可以解绑已经绑定的第三方平台账户:
+(void)unBindAccountWithPlatform:(NSString *const)platform platformUserId:(NSString*)pUserId completeBlock:(void(^)(NSError* error))completeBlock;
有以下情况之一者,不可解绑:
1.解绑的账户为WINGSDK平台的;
2.用户没有绑定第三方平台账户的;
3.用户只绑定一个第三方平台账户,且用户没有与当前设备绑定的。
示例代码:

5.6 切换账户

使用以下接口可以快速切换登录的账户
+(void)switchAccountWithPlatform:(NSString *const)platform completeBlock:(void(^)(NSError* error,WALoginResult* result))completeBlock;

5.7 新建账户

+(void)createNewAccountWithCompleteBlock:(void(^)(NSError* error,WALoginResult* result))completeBlock;

新建账户后,新的账户会跟当前设备绑定,如果之前的账户没有绑定第三方平台账户,数据将会丢失。
代码示例:

5.8获取账户信息

SDK提供了获取指定平台的账户信息,可以通过以下接口获取:

+(WAAppUser*)getAccountInfoWithPlatform:(NSString *const)platform;

示例代码:

6 AiHelp有关

6.1.判断是否开启游戏评分AiHelp

说明:该接口返回布尔值,YES表示已开启,NO表示未开启。在使用其他AIHELP接口前请先判断这个接口,在返回YES的情况下使用。示例如下:

6.2. 打开游戏评分AiHelp界面

说明:该接口受WING后台中参数设置-客户端-游戏评价开关
控制。如果后台未开启开关,此接口不生效。

调用示例:
        

6.3.设置客服系统语言

示例代码:

参数说明:

参数名 类型 必填 说明 备注
language NSString Y 语言名称 语言支持如下图

语言支持列表图:
图片1

7 调用评分界面

cp可根据需求,调用appStore评分界面,调用方法

系统要求:iOS10.3及以上系统才可以调起评分界面。

8 删除账号接口

8.1 第三方账号注销授权接口

描述:如果是SIGGINWITHAPPLE登录(可通过接口[WAUserProxy getCurrentLoginPlatform]获取登录方式),需要单独授权一次拿到授权信息,然后再调用请求删除账号接口,目前只支持SIGGINWITHAPPLE
类名:WAUserProxy
方法名:deleteAccounAuthorizationWithPlatform
请求参数:paltform,登录平台
调用方法:WAUserProxy.deleteAccounAuthorizationWithPlatform
调用示例:

WADeleteRequestModel说明

字段名 类型 说明 备注
deletePlatform string 删除平台(Facebook,Apple)
deleteToken string 删除平台accessToken

8.2 请求删除账号接口

类名:WAUserProxy
方法名:requestDeleteAccout
请求参数:(WADeleteRequestModel*)deleteResult,如无则传递nil。此参数通过调用第三方账号注销授权接口回掉获取。如signinwithappie需要传递此参数
返回值:callback
调用方法:WAUserProxy.requestDeleteAccout
调用示例:

8.3 取消删除账号接口

类名:WAUserProxy
方法名:cancelRequestDeleteAccoutWithUserid
返回值:callback
调用方法:WAUserProxy.cancelRequestDeleteAccoutWithUserid
调用示例:

9 UMP同意弹窗相关

9.1同意弹窗说明

SDK在初始化的时候会在页面进行UMP同意弹窗初始化,并展示给需要的用户(欧盟地区)进行同意授权,授权完成后AdMob功能才会进行初始化及加载广告。如果是非欧盟地区用户,则会直接返回授权成功,并进行后续逻辑。
以上为SDK内部逻辑,研发无需处理。除此之外,研发需要在游戏内部放置一个按钮,可供用户打开UMP同意设置并修改同意状态,需要用到下面“检查设置”和”展示设置“两个方法。

UMP同意弹窗效果如下:

9A202A5454A1F53E70C7E37556AAF4C7

9.2 开关配置

UMP功能默认关闭,如果需要开启UMP功能,在Info.plist中加入下面配置:
AdmobUseUMP 为YES

ump

9.3 检查配置

检查是否需要展示UMP同意设置。

返回值说明:

类型 必填 说明 备注
BOOL Y YES为需要展示,此时可以显示UMP配置按钮入口;NO为不需要,可以隐藏UMP配置按钮入口。 如果设备在非欧盟地区一般返回NO

9.4 展示配置

展示UMP同意设置

参数说明:

参数名 类型 必填 说明 备注
viewController UIViewController Y 当前页面控制器 显示成功后,用户操作同意或不同意才会回调,;如果显示失败,则error不为空

示例代码:

9.5添加UMP同意监听

SDK初始化时的UMP同意弹窗授权状态监听.

notification.userInfo回掉参数说明:

参数名 类型 必填 说明 备注
status NSString Y 1为同意 0为失败
error NSError N status为0时,才有值

示例代码:

10 GHGL模块相关配置

在Info.plist文件中,URL types下配置URL Schemes

WechatIMG698

注意
1.格式为wa+YOUR_SDK_APPID。比如SDK的appid为f7f9a9d18da611e5a0be000d3a906774,则对应内容为waf7f9a9d18da611e5a0be000d3a906774
2.这里SDK的appid为wingsdk的appid

11 AdMob功能

11.1 横幅广告

11.1.1 判断横幅广告是否开启

11.1.2 展示横幅广告

参数说明:

参数名 类型 必填 说明 备注
viewController UIViewController Y 显示广告的UIViewController
containerView UIView Y 放置横幅广告的view

11.2 插页广告

11.2.1判断插页广告是否开启

11.2.2 检查和预加载插页广告

检查插页广告是否已准备好,若未准备好,则内部会立即开始缓存广告。

返回值说明:

类型 必填 说明 备注
BOOL Y YES为广告已经准备好,调用showInterstitialAdWithViewController可以展示广告;NO为未准备好,此时内部会立即开始缓存广告。

备注:SDK初始化后会立即开始缓存广告,无需在此时调用该接口。为了避免调用展示的时候因缓存失败而无法显示,建议在展示前适当的时机调用该接口确保广告预加载成功(该接口判断如果接口未准备好会立即开始缓存)。比如:可以在进入关卡时调用一次该接口,确保关卡完成后调用showInterstitialAd可以正常展示广告。

11.2.3 展示插页广告

参数名 类型 必填 说明 备注
viewContoller UIViewController Y 显示广告的UIViewController
delegate GADFullScreenContentDelegate N 广告结果回调
1.显示广告失败:didFailToPresentFullScreenContentWithError
2.显示广告成功:adWillPresentFullScreenContent
3.广告关闭:adDidDismissFullScreenContent

示例代码:

失败处理建议:尽可能确保广告加载失败时,不影响用户后续体验。建议在
[WAAdMobProxy checkInterstitialAdReady])为 NO 时,直接忽略显示广告继续游戏。

11.3 开屏广告

11.3.1 判断开屏广告是否开启

11.3.2 检查和预加载开屏广告

检查开屏广告是否已准备好,若未准备好,则内部会立即开始缓存广告。

返回值说明:

类型 必填 说明 备注
BOOL Y YES为广告已经准备好,调用showAppOpenAdWithViewController可以展示广告;NO为未准备好,此时内部会立即开始缓存广告。

11.3.3 检查和预加载开屏广告

参数名 类型 必填 说明 备注
viewContoller UIViewController Y 显示广告的UIViewController
delegate GADFullScreenContentDelegate N 广告结果回调
1.显示广告失败:didFailToPresentFullScreenContentWithError
2.显示广告成功:adWillPresentFullScreenContent
3.广告关闭:adDidDismissFullScreenContent

示例代码:

失败处理建议:尽可能确保广告加载失败时,不影响用户后续体验。建议在
[WAAdMobProxy checkAppOpenAdReady]为 NO 时,直接忽略显示广告继续游戏。

12 互推功能

12.1 判断广告是否开启

调用判断admob广告是否开启接口

详情参考: 判断激励广告是否开启

12.2 获取推广任务列表

参数说明

参数名 类型 必填 说明 备注
tasksArray NSArray 数组字典 N @”taskName”: @”任务名称(推广游戏名称)”,
@”taskStatus”: @”0/1″ // 0表示未完成,1表示已完成
@”rewardStatus” :”1″//0表示发奖未完成,1表示发奖
error NSError N 错误信息

使用示例:

12.3 通知发放奖励(可选)

参数名 类型 必填 说明 备注
success BOOL Y 查询完成结果
error NSError N 错误信息

使用场景
如玩家看完广告,然后安装了推广游戏,返回到app后,cp需要主动查询下玩家的任务完成情况,查询成功后,然后在刷新下任务列表,看下对应任务完成情况、奖励发放情况,可根据需求对应提示玩家,如任务完成、奖励已发放等。
使用示例:

WINGSDK后台基础配置指南(bak20260313)

wapublisher No Comments

一 快速新增

1.1 应用管理

1 登录WINGSDK后台,在左边导航栏选择设置中的应用管理
2 进入应用管理后,点击“+新增应用”
SDK-应用管理
3 在出现的“添加应用”列表中,填写以下字段
SDK-应用管理

参数 描述
应用名称 输入应用的名称
语言 输入该应用使用的语言,注:此处的语言选择会影响webview支付的语言展示,且客户端需有相应语言包对应
图标 上传该应用的图标,不大于100KB。
游戏服务器时区 需正确选取,选择后将不可再变更(如游戏尚未上线,可和技术人员联系进行修改),该应用的数据将以此设定的时区为准进行统计。如该地区有时令切换问题,SDK后台将自动切换。

4 表单填写后,点击保存,新增App完成。

1.2 应用商店信息

SDK-参数设置相关
B 点击“应用商店信息”配置游戏的公共参数
应用商店信息
安卓:

参数 描述
平台应用包名 应用的包名
下载地址 应用的下载地址


应用商店信息2

参数 描述
平台应用ID SDK-appStore信息
格式为:id12345678
BundleID 同上
Scheme 非必填,如使用到应用墙或消息推送功能可能涉及。这里填写游戏的scheme,用于别的应用打开该应用时使用,如果没有填写,其他应用无法跳转到该应用。
下载地址 应用的下载地址


1.3 参数获取

SDK-参数设置相关
A:点击“设置”,如图红框中的两个参数“应用ID”和“APPKEY”需配置到游戏中(安卓和iOS用同一套参数)
秘钥用于登录校验,具体见
“服务端接口文档→2.1 CP验证用户登录接口→osign参数”
支付秘钥用于支付做校验,具体见“服务端接口文档→3.2 CP发货通知接口→osign参数”


appid

参数 描述
AppKey 该字段自动生成,表示游戏客户端和SDK后台校验的秘钥。
登录秘钥 该字段自动生成,表示SDK后台和游戏后台校验的秘钥(校验登录)
支付秘钥 该字段自动生成,表示SDK后台和游戏后台校验的秘钥(校验支付)

注:只有应用管理员可获取以上参数

二 登录功能

新增登录平台后,由于默认状态为“测试”,因此需要添加测试设备,才可进行调试,具体见4.1 测试设备管理

2.1 直接使用SDK已对接的登录方式

1 点击左侧导航栏选择设置中的登录平台,注意:如果需配置Google和Apple登录平台,需先配置“应用管理”→“应用商店信息”
2 进入界面后,点击“新增”按钮
SDK-登录平台
3 在出现的“新增平台信息”中,填写以下字段—由于不同登录平台所需参数不一样,具体在后面详细说明:
SDK-登录平台

参数 描述
平台类型 选择对应的登录平台
应用ID 应用ID在创建App时,系统自动生成,不可变更
可用状态 控制该登录方式能否在此应用中使用。可分别控制不同操作系统的可用状态(Facebook有gameroom可选)
图标 该平台的登录图标。此处已有默认的登录图标,也可根据需求自行更换
额外信息 该应用的备注信息

Google:

“额外信息”需填入从Google后台获取的clientID,客户端的clientID需要和后台配置的相一致(目前SDK 3.6.1.3版本才需要)

图片1

clientID获取方式:http://blog.wing-analytics.com/archives/2783.html#create_web_clientid中的第三步

GUEST:

可用状态:根据实际情况选择开关
展示状态:打开
图片16


WINGA(手机/邮箱)

可用状态:根据实际情况选择开关
展示状态:打开

图片wa

Apple登录

可用状态:根据实际情况选择开关
展示状态:打开

图片13

Sign in with Apple

可用状态:根据实际情况选择开关
展示状态:打开

图片14

Facebook

可用状态:根据实际情况选择开关
展示状态:打开

图片15

Twitter:

具体获取方式见:http://blog.wing-analytics.com/archives/2391.html#Twitter
SDK-登录平台Twitter

4 表单填写后,点击保存,生成App对应登录平台,此时生成的登录平台默认为测试状态(登录平台正式/测试模式的使用见4.2登录平台的正式/测试模式
5 添加完字段后,点击保存,在该页面上即会生成对应登录平台。
6 可对登录平台进行维护
SDK-登录平台

操作 描述
修改 对登录平台参数进行更新
删除 删除该平台,此操作不可逆,需谨慎操作

Facebook H5&小游戏(Facebook instant game):

13

Facebook H5应用和Facebook小游戏都需要在后台配置FACEBOOK,保存即可;
需要注意,在应用设置里面:
Facebook H5需要配置Facebook H5应用ID(Facebook后台获取的应用编号)
14

Facebook 小游戏需要配置Facebook小游戏秘钥(Facebook后台获取的应用秘钥)
15

ARMORGAMES:

  1. 填写对应的公钥(从ARMORGAMES后台获取):
  2. 由于ARMORGAMES 登录方式只在 ARMORGAMES 平台上才能使用,因此建议将展示状态设置为“不展示”,防止在其他平台上打开游戏时会展示该登录方式。

HUAWEI_HMS:

可用状态:根据实际情况选择开关
防沉迷:关闭
展示状态:打开
AG

官网包登录配置


可用状态:根据实际情况选择开关
平台应用ID:从GHG\R2平台获取
展示状态:打开
官网包标识:谷歌包选择’否’,官网包选择’是’

图片3

图片4

Nowgg登录配置

nowgg

平台应用ID,即Nowgg登录凭据的ClientId 登录凭证

Qoo登录配置

可用状态:根据实际情况选择开关
展示状态:打开

图片1

2.2 应用内登录

使用场景:CP有自己的帐号系统,玩家在用CP的帐号系统登录后,SDK再通过CP的验证接口验证用户的登录信息完成登录流程
1 点击左侧导航栏选择设置中的登录平台
SDK-登录平台
2 平台类型选择“APPSELF”,点击保存
SDK-登录平台appself
3 点击左侧导航栏选择设置中的应用管理,点击C中的“参数设置”,填写“应用内登录验证地址”
SDK-参数设置相关
SDK-登录平台应用内登录验证地址

三 支付功能

使用支付功能,需要完成以下所有配置,包括3.1商品管理 3.2支付平台 3.3参数设置里的发货通知地址,且新增支付平台后,由于默认状态为“测试”,因此需要添加测试设备,才可进行调试,具体见4.1 测试设备管理

3.1 商品管理

3.1.1 新增商品

1 选择左边导航栏的商品管理 ,进入界面后,点击新增
SDK-商品管理
2 在出现的列表中,填写以下的字段
图片14

参数 描述
产品ID 该ID需与游戏里商品列表保持一致,最好为数字及英文字母,长度不超过15。可先在后台自定义生成后,对应配置到游戏;或在游戏中配置好后,同步到WINGSDK后台
商品名称 填写商品名称,长度不超过15,方便使用人员识别即可
游戏币数量 指该商品对应游戏内虚拟货币的价值。如某商品是4.99 美元充值 100 金币,100金币就是游戏币数量
商品价格 用于在充值中心显示,不影响支付价格
商品货币 默认是USD
商品描述 添加对该商品的简单描述-注意,该描述会在某些支付页面出现,因此,添加描述时,最好对应不同语言描述。其中如果用到MOL支付,商品描述需不少于5位字符,且该描述会在MOL界面展示给玩家看,所以最好是填写有意义的信息,比如商品名称

3 添加完字段后,点击保存,在该页面上即会生成新商品
4 添加新商品后,可进行维护
SDK-商品管理

操作 描述
修改 对商品的参数进行修改
删除 删除该商品,此操作不可逆,需谨慎操作

5.设置折扣
点击修改后会出现折扣的修改

图片1

参数 描述
第一笔折扣 玩家首次支付该商品时的折扣,WEB支付生效,GOOGLE,APPLE等应用内支付不支持。
商品折扣 该商品的折扣,WEB支付生效,GOOGLE,APPLE等应用内支付不支持。注:页游和充值中心,商品折扣需要和第一笔折扣保持一致。
折扣适用平台 指该商品的折扣在哪些平台生效。。

3.1.2 批量新增商品

1 选择左边导航栏的商品管理 ,进入界面后,点击新增

图片1

2 在出现的天窗中,选择批量新增

图片2

3.下载模板,填写商品信息。

4.在批量新增页面,上传商品文件。

3.2 支付平台

1 选择左边导航栏的支付平台,进入该页面后,点击新增
SDK-支付平台
2 在出现的添加支付平台的页面中,填写以下字段——由于不同支付平台所需参数不一样,具体在后面详细说明。
SDK-支付平台

参数 描述
平台 选择需要用到的第三方支付渠道
商家ID 对应第三方支付平台里的商家ID
秘钥 对应第三方支付平台里的秘钥
版本 对应第三方支付平台里的版本信息
基准货币 跟对应第三方支付平台的结算货币
游戏币种 对应第三方支付平台里的游戏货币
可用状态 控制该支付方式能否在此应用中使用。可分别控制不同操作系统的可用状态

3 填写完以上信息后,点击保存,即可在该页面新增第三方支付平台,此时生成的支付平台默认为测试状态(支付平台正式/测试模式的使用见4.3支付平台的正式/测试模式
4 可对第三方支付渠道进行相应维护
SDK-支付平台

操作 描述
修改 对第三方支付渠道设置的参数进行修改
国家 根据客户端获取的当前IP地址,控制该支付渠道可展示的国家。默认所有可用国家都展示。
例如Google支付是全球可用,假如Google支付的国家只选择了美国,则当客户端获取的IP地址为美国时,才会显示Google支付,如为其他国家则不显示,如果不配置该选择,则所有Google支持的国家都可显示。
商品 对该支付渠道下可售的商品进行管理
删除 删除该支付渠道,此操作不可逆,需谨慎操作

5 点击商品,进入商品列表界面,点击新增
22111739842308_.pic

6 在出现的“添加商品”列表中,添加以下字段
SDK-支付平台

参数 描述
产品ID 此处可供选择的是在商品管理中添加过的产品
第三方产品ID 该产品在此支付渠道下的ID,不同支付渠道对应不同ID。Google和apple的ID必填,其他支付渠道的ID可与产品ID一样,其中Google的商品ID不能超过15位长度
基准订单金额 此商品在基准货币下的金额,以此方便对不同国的货币进行换算

Facebook的商品信息除了以上内容外,还可控制“定价策略”及“商品图片”
SDK-支付平台Fb商品

参数 描述
定价策略-动态定价 用户支付前Facebook 会到WINGSDK后台查询最新价格进行支付,适合价格变动较大的商品
定价策略-静态定价 当用户第一次购买商品后,商品信息会缓存在Facebook后台,下次用户支付时可以让用户快速购买,提高效率,适合价格稳定商品
商品图片 当前商品图片,会显示在购买窗口,展示给用户

填写完成后,点击保存,即可在界面看到新增的产品
也可对该商品进行维护
SDK-支付平台

操作 描述
修改 对该商品的设置的参数进行修改
删除 删除该商品,此操作不可逆,需谨慎操作

Google & Apple

如果需配置Google和Apple支付平台,需先配置“应用管理”→“应用商店信息”

Google:

图片1111

参数 对应支付渠道值
服务邮箱 创建服务账号生成的邮箱 参考 公共项目创建服务账号
应用名称 即google cloud后台使用的公共项目名称。 参考 公共项目创建服务账号中的项目名称
p12证书 新应用可忽略
json证书 json文件 参考 公共项目创建服务账号中的json证书

注:若google支付掉单严重,可以开启异常订单自动补单功能。
应用管理->参数设置->客户端
自动补单功能

Apple

apple 支付

参数 描述
商家ID appstore后台中的套装 ID,即BundleID,参考下图

图片8

苹果和第三方支付渠道要测试设备,Google不需要(支付平台正式/测试模式的使用见 4.3支付平台的正式/测试模式

提醒:游戏在Google和App Store提审时,会对第三方支付渠道有限制,请提审时先关闭第三方支付渠道,以免游戏被下架。

Boacompra

boacompra

参数 对应支付渠道值
商家ID Boacompra(Store id )
秘钥 Boacompra(Secret key )
项目ID 在Boacompra后台对应项目的Project Id,通常一个游戏/应用对应一个Project Id
系统类型 移动端:指定为移动端页面(只有币种为BRL时可以使用);自动适配:根据当前设备自动适配移动端或电脑端(只有币种为BRL时可以使用);电脑端:指定为电脑端页面(币种不是BRL时只能选择电脑端)

MOL

SDK-MOL
MOL的相关参数由对方直接提供,其测试和正式支付环境是两个不同的账号,需联系客服获取和切换。如一个游戏里同时需要使用普通支付和点卡 短代的支付方式,可使用同一套账号。

参数 对应支付渠道值
商家ID Application Code
秘钥 Secret Key
版本 API Version
基准货币 如是内部项目 ,最好使用USD
渠道 选填项,不填默认使用支付墙方式,如选择指定使用的渠道(下图,图片截取MOL官方文档),这里配置对应ChannelId

SDK-MOL_ChanelID

MOL_VC(点卡,短代)

SDK-MOL_VC
相关参数及要求同上
注意:“1美元兑换的游戏币数量”——此处是点卡和短代的支付方式,处理方式有所不同,因此不仅此处需填写兑换游戏币数量,同时需要CP 服务端兼容根据 SDK 发货通知中的gameAmount (游戏币数量)给玩家发货的方式,具体见下
http://blog.wing-analytics.com/archives/335.html#32_CP
SDK-MOL_VC_default
SDK-MOL_VC_currency
SDK-MOL_VC_product

Paypal

SDK-paypal

参数 对应支付渠道值
版本 204.0
API用户 apiUser
API密码 apiPwd
API签名 apiSign
收款邮箱 申请该配置信息的PayPal账号邮箱
支付页LOGO地址 可选字段,配置后,用户的PayPal支付页会显示配置的商家LOGO

Xsolla

这种形式是商家确认好价格,玩家按定价付款。
SDK-Xsolla
Xsolla,分测试和正式两个阶段,在后台自行切换。

参数 对应支付渠道值
商家ID 商户ID
秘钥 API Key
项目ID Project ID
项目秘钥 Project key

Xsolla_VC(点卡)

这种形式是商家确定一个购买的比例关系,玩家可根据需要任意金额付款,购买的比例关系需同时在SDK后台和Xsolla后台配置
SDK-Xsolla_VC
相关参数及要求同上
服务端兼容处理见MOL_VC

Paymentwall

SDK-paymentwall

参数 对应支付渠道值
商家ID Project Key
秘钥 Secret Key
基准货币 跟对应第三方支付平台的结算货币,公司内部游戏选USD
移动设备视图编码 Widget Code—Paymentwall Mobile
电脑视图编码 Widget Code—Paymentwall Multi New

1 Paymentwall后台需注意的配置:需要将签名版本设置为2
SDK-paymentwall后台
SDK-paymentwall后台

2 Project Key和Secret Key的获取
SDK-paymentwall后台

3 编码的获取
点击进入widgets
SDK-paymentwall后台
SDK-paymentwall后台

Unipin

SDK-Unipin
Unipin相关参数一般是直接联系对方获取,分别是GUID和Secretkey。该支付渠道会分为测试和正式两个阶段,如需切换,要直接联系对方客服切换。

参数 对应支付渠道值
商家ID GUID
秘钥 Secretkey
基准货币 必须选IDR

iPayLink

SDK-iPayLink

参数 对应支付渠道值
商家ID 会员号
版本 1.1
基准货币 商品定价的币种
结算货币 跟对应第三方支付平台的结算货币,可选,默认RMB,公司内部选USD
支付类型 DCC:动态汇率转换,会在付款界面显示两种货币,网站/客户端的交易货币,和持卡人卡本币,持卡人自由选择(公司内部项目选择DCC)
EDC:持卡人支付时仅知道商家标价的本地货币价格,在收到账单后才知道本位币的扣款金额
支付卡种 可选,默认全部支持,否则只支持选择的卡种
网站ID MPS上配置的域名(api.wingsdk.com)
公钥 iPayLink后台获取,需最高权限负责人才可获取

Codapay

需注意:每个不同的币种需要单独配置一个对应的支付平台。
SDK-codapay

参数 对应支付渠道值
秘钥 ApI key
支付类型 默认使用上图选择,泰国及越南VR支付支付时需注意选择对应类型,并配置游戏币兑换关系

Gudang Voucher

SDK-GV

参数 对应支付渠道值
商家ID Merchant Id
秘钥 Merchant Key

Rixty

图片1

Rixty后台例图:

图片1
注意:Rixty后台中Rixty Callback Url和Rixty ReturnURL必须填写以下地址:
Rixty Callback Url:https://api.wingsdk.com/sdkapi/v1/pay/rixty/callback.do
Rixty ReturnURL:https://api.wingsdk.com/sdkapi/v1/pay/rixty/return.do

参数 对应支付渠道值
商家ID Application Code
秘钥 Secret Key
版本 API Version(目前版本:PAYOUT_V1,后台对应配置值为‘v1’)
渠道 目前只支持1和2,默认不填写为2;(1:MOLPoints Wallet,2:Rixty)

Facebook小游戏支付-INSTANTGAMES

instent

参数 对应支付渠道值
秘钥 应用秘钥(App Secret)
基准货币 商品定价的币种

MYCARD

mycard

参数 对应支付渠道值
商家ID FacserviceId
秘钥 key


HUAWEI_HMS

HUAWEI_HMS
mycard

参数 描述
商家ID 项目下某个应用的APP ID
支付私钥 项目下某个应用的 OAuth 2.0客户端ID(凭据)-Client Secret
支付公钥 支付公钥(我的项目–应用内支付服务)
订单信息站点 可不填,默认使用德国站点
中国站点 https://orders-drcn.iap.hicloud.com
德国站点 https://orders-dre.iap.hicloud.com
新加坡站点 https://orders-dra.iap.hicloud.com
俄罗斯站点 https://orders-drru.iap.hicloud.com

PAGSMILE

PAGSMILE

图片1

参数 对应支付渠道值
商家ID APP ID
私钥 security key

LATAMGATEWAY_PICPAY

LATAMGATEWAY_PICPAY
图片2

参数 对应支付渠道值
商家ID User
私钥 Password

LATAMGATEWAY_PIX

LATAMGATEWAY_PIX

图片4

参数 对应支付渠道值
商家ID User
私钥 Password

充值中心

充值中心

1)新增”充值中心”支付平台
图片1

图片1

2)开启充值中心的支付渠道
点击修改

图片2

使用默认,或按需开启支付渠道

图片3

SDK沙盒支付

注:使用沙盒支付需要安卓sdk版本4.5.0以上
添加沙盒支付平台

图片7

参数 对应支付渠道值
IP白名单 公网IP地址

Nowgg

nowgg_pay

参数 对应支付渠道值
秘钥 支付验证API密钥

雷电

leidianpya

参数 对应支付渠道值
商家ID 雷电的APP_ID
秘钥 雷电的ServiceKey

QOOAPP

图片2

参数 对应支付渠道值
商家ID APP ID
公钥 publicKey

Aghanim

图片3

参数 对应支付渠道值
商家ID APP ID
密钥 webhook 中的 Secret Key
API KEY API密钥中的 S2S Key

3.3 支付商品添加

1 在支付平台列表选择具体的支付渠道点击“商品”
图片1

2.选择“新增”

图片2

3.可选择手动新增或者批量导入

图片3

图片4


3.4 参数设置里的发货通知地址

1 点击左侧导航栏选择设置中的应用管理,点击C中的“参数设置”,填写“发货通知地址”
SDK-参数设置相关
SDK-支付平台发货地址

3.6 官网包支付方式配置

配置web方式的支付渠道,例如:paypal,xsolla等,选择具体的支付渠道后,可使用默认配置
配置入口在 WingSDK后台->支付平台->新增

注:使用默认配置后,需要根据游戏修改币种

图片8

四 登录/支付平台测试模式的使用

4.1测试设备管理

测试过程中,如涉及到沙盒支付和debug模式的控制,则需要添加测试设备
注:需对接SDK 3.6及以上的版本才可通过后台控制是否开启debug模式
1 选择左边导航栏的“测试设备”,进入界面后,点击新增
SDK-测试设备管理

2 出现“新增测试设备“列表,添加以下参数
SDK-测试设备管理
A:设备标识:“client id”——添加了的设备为测试设备
B:沙盒环境:是——开启沙盒模式,该设备可以进行沙盒测试
否——关闭沙盒模式,该设备不能进行沙盒测试,只能进行正式购买
备注:支持沙盒模式开关控制的支付渠道包括除Google 外的所有支付渠道

3 点击“搜索”获取设备标识
3

可输入其中一种手机标识,点击“查询”,在出现的设备中,点击“选择”,即可
4

4 点击“保存”即可生成测试设备
SDK-获取clientID

4.2登录平台的正式/测试模式

在游戏正常运作的过程中,如果需要新增登录平台,可通过以下的方式,在SDK后台将新增未通过测试的平台和正式运行的平台隔离开。
该功能需要登录平台和测试设备模块同时使用
登录平台涉及的状态:
1 测试状态:测试设备可以看到该登录平台,并登录; 对其他设备(即正式玩家)不开放。
2 正式状态:对所有玩家正式开放。 其中从测试状态转为正式状态时,系统会检查该登录平台下是否有登录成功的记录,否则不允许转为正式。
3 禁用状态:将登录平台关闭,不对任何玩家开放。

测试模式的使用

1 按照登录平台指引新增一个平台后,该平台默认为测试状态
SDK-登录平台模式切换

2 在测试设备模块进行配置
1)在测试设备页面,点击新增,出现“新增测试设备“列表,添加以下参数,该功能使用说明见“测试设备管理”
SDK-新增测试设备
A:设备标识:“client id”——添加了的设备为测试设备
B:沙盒环境:只与支付平台有关,此处根据支付平台实际情况选择

正式模式的使用

1 登录平台测试通过后,可转换为正式状态
SDK-登录平台模式切换
SDK-登录平台模式切换

2 测试设备页面无需做改动

4.3支付平台的正式/测试模式

在游戏正常运作的过程中,如果需要新增支付平台,可通过以下的方式,在SDK后台将新增未通过测试的平台和正式运行的平台隔离开。
该功能需要支付平台和测试设备模块同时使用
支付平台涉及的状态:
1 测试状态:测试设备可以看到该支付平台,并进行沙盒支付; 对其他设备(即正式玩家)不开放。
2 正式状态:对所有玩家正式开放。 其中从测试状态转为正式状态时,系统会检查该支付平台下是否有支付成功的记录,否则不允许转为正式。
3 禁用状态:将支付平台关闭,不对任何玩家开放。

测试模式的使用

1 按照支付平台指引新增一个平台后,该平台默认为测试状态
SDK-支付平台切换模式

2 在测试设备模块进行配置
1)在测试设备页面,点击新增,出现“新增测试设备“列表,添加以下参数,该功能使用说明见“测试设备管理”
SDK-获取clientID

A:设备标识:“client id”——添加了的设备为测试设备
B:沙盒环境:是——开启沙盒模式,该设备可以进行沙盒测试
否——关闭沙盒模式,该设备不能进行沙盒测试,只能进行正式购买
此处选“是”,进入沙盒模式
备注:支持沙盒模式开关控制的支付渠道包括除Google外的所有支付渠道

正式模式的使用

1 支付平台测试通过后,可转换为正式状态
SDK-支付平台切换模式
2 进入测试设备页面,将沙盒模式转换为“否”
SDK-支付切换正式模式

五 高级设置

5.1 服务器管理——用于分服看数据

1 选择导航栏左边的服务器管理,进入界面后,点击新增
SDK-服务器管理
2 出现“新增服务器“列表,添加以下参数
SDK-服务器管理

参数 描述
游戏区ID 添加游戏后台对应的游戏区ID
游戏区名 添加游戏后台对应的游戏区名
状态 控制该游戏区的使用状态,启用/禁用
备注 对该游戏区进行简要说明

3 填写完以上参数后,点击保存,即可在该界面看到新增的游戏区
4 可对该游戏区进行维护
SDK-服务器管理

操作 描述
修改 对该游戏区的参数进行修改
删除 删除该游戏区,此操作不可逆,需谨慎操作

5 可对“游戏区ID”,“游戏区名”,“状态”进行筛选

筛选类型 作用
游戏区ID 根据游戏区ID,快速筛选出对应的游戏区
游戏区名 根据游戏区名,快速筛选出对应的游戏区
状态 快速筛选出所有处于启用或禁用状态的游戏区

5.2 参数设置

1 点击进入应用管理页面
SDK-参数设置相关
C:点击“参数设置”,如有用到相应功能,请设置对应参数
SDK-参数设置客户端

参数 描述
邀请奖励物品类型 如果使用了SDK的社交(目前有Facebook和VK)邀请事件奖励接口,则需填写奖励的物品。物品可有多项,用“,”分割
客户端FB 安全秘钥 如果需要在Facebook后台进行礼物相关配置,则需填写Facebook的app secret
新建账户 账户管理页面中,SDK3.5.2版本之后可在后台控制是否出现“新建账户”的按钮。默认为开
切换账户 账户管理页面中,SDK3.5.2版本之后可在后台控制是否出现“切换账户”的按钮。默认为开

图片9

参数 描述
发货通知地址 发货通知地址,在支付成功后用来通知CP进行发货
游戏角色类型名称 该参数主要用于“等级分布”模块。由于游戏传回SDK后台的角色类型值的可读性不确定,如传回数字,此时可通过设置该参数,明确角色,详解如下。游戏角色可有多个,用“#”号分割。例如,游戏传回SDK后台的角色类型是1,2,则可以设置“1=骑士#2=法师”
邀请奖励发货通知地址 如果使用了SDK的社交(目前有Facebook和VK)邀请事件奖励接口,则需填写通知奖励发放的地址
应用内登录验证地址 应用内登录的回调地址,用以校验CP 使用应用内登录时的token是否合法,并获取对应的user ID
玩家退款通知地址 SDK后台定时到Google退款通知接口查询最近30天是否有退款订单,如有则会通过该地址通知CP,后续处理则CP自行跟进
用户隐私协议地址 隐私协议地址,如果配置,则SDK 会在玩家登录时弹出提示,要求玩家同意,并展示对应的协议地址链接。 注意:如果修改了该地址并希望玩家强制看到,需点击刷新按钮,并保存。

详解:在未配置“游戏角色类型名称”的情况下,“等级分布”的标识为“_unknown”,如配置“_unknown=骑士”,则此处会显示“骑士”
SDK-参数设置游戏角色

5.3 充值补单

如果游戏在运营过程中出现掉单的情况,需要通过该功能进行补单。该过程需要有财务及运营APM进行审核,具体操作过程如下:
1 根据玩家提供的订单信息,包括UID 所在区服 充值金额等信息,在充值查询页面找一笔该用户相同金额 状态不是成功(支付中 取消购买)的订单
SDK-充值补单
2 根据找到的订单信息,选择左边导航栏的充值补单,进入界面后,点击新增
SDK-充值补单
3 出现“新增补单“列表,添加以下参数
SDK-充值补单
以下信息可在“用户行为分析”的“充值查询”中获取

参数 描述
选择服务器 选择需补单的订单号所在的服务器
订单号 填写需补单的订单号
用户ID 此处会根据服务器和订单号,自动识别生成
商品 此处会根据服务器和订单号,自动识别生成
交易流水号 填写需补单的交易流水号
支付币种 支付时使用的币种
支付金额 支付的金额
支付时间 充值的时间
备注 对该订单信息进行简单说明

4 填写完以上参数后,点击保存,即可在该界面看到新增的订单信息。此时该订单将提交财务做第一次审核,如图可见提示当前审核角色为财务:
SDK-充值补单
SDK-充值补单

5 财务审核完后,如果“通过”,则该订单提交下一审核人“运营APM”,如“拒绝”,则该订单结束。
6 如财务点击“通过”,此时订单提交“运营APM”审核。
SDK-充值补单
SDK-充值补单

7 运营APM操作后,该补单流程结束。
SDK-充值补单
SDK-充值补单

5.4 APP货币汇率管理(可直接使用实时汇率,也可手动维护)

此页面中展示的货币汇率均为雅虎API获取,每日自动更新,也可手动自行维护。该汇率主要用于数据统计。目前SDK后台有关充值数据的展示币种都是美金,但在实际充值中会出现各国的货币,因此需要根据此处的汇率进行转换。
如需手动维护,操作如下:
1 选择左边导航栏的APP货币汇率管理,进入界面后,点击修改
SDK-货币管理
2 将所需要的汇率(最多显示到小数点后8位)填入方框中,点击“保存”
SDK-货币管理
3 主界面中手动维护的货币将会有“修改”,“删除”两种操作
SDK-货币管理
4 如果之后不再希望手动维护汇率,而使用自动更新,点击“删除”即可。

5.5 应用事件管理

该页面主要用于添加自定义事件,并在推广效果展示。
1 选择左边导航栏的“应用事件管理”,进入界面后,点击新增
SDK-应用事件管理
2 出现“新增应用事件“列表,添加以下参数
SDK-应用事件管理

参数 描述
事件名 自定义事件名称
GHW事件 自定义事件应用中埋点的事件名,必须以“ghw_self_”开头,例如ghw_self_lv23
AppsFlyer事件名 根据AF的规则自定义事件名,非必填项
类型 推广统计事件:应用中的自定义事件
Facebook邀请奖励事件:应用中Facebook里的邀请奖励事件
VK邀请奖励事件:应用中VK里的邀请奖励事件
备注 对该自定义事件添加说明

5.6 页游推广渠道管理

该页面主要用于为页游推广添加对应推广渠道 生成推广链接。

5.6.1. 新增推广渠道:(注意:推广平台选择后不可更改)

2

5.6.2. 根据所选择的推广渠道生成对应推广链接:

5

5.7 充值中心管理

5.7.1 充值中心弹窗配置

1)点开充值中心配置
图片17

2)开启用户中心CharacterID 模式, 订单是否统计到手游改成 统计。

图片1

注意:旧的商品需要在商品配置中配置商品价格。

5.7.2 充值中心礼包配置

1)配置 查询可购买礼包(商品)列表接口 和 购买礼包(商品)下单接口

图片2

2)配置 商品 ,设置 > 支付平台 > 充值中心(H5_PLATFORM) > 商品
配置的商品数目需要和谷歌/APPLE一致

5.7.3 平台月卡配置

1)在支付平台 添加 充值中心支付渠道。
2)在充值中心的支付配置项处,开启 平台月卡。
注:月卡开关打开后,充值中心支付渠道会自动增加月卡商品(默认是美元金额),如果
是基准货币是非美元的游戏需要按汇率调整商品价格。

图片3

5.7.4 游戏内使用充值中心支付

在充值中心的支付配置项处,”游戏内使用充值中心” 选择 “仅安卓开启” ,”支付方式”选择 “跳外链方式”

图片5

5.8 SDK推送配置

5.8.1 新建消息

1)“设置”→“消息推送”,点击“新建消息”,出现“添加推送消息”列表,填写以下参数

图片11

具体参数描述如下表

参数 描述
标 题 推送给用户的消息标题
内容 推送给用户的消息内容
消息类型 目前只有文本形式
动作类型 唤醒 召回 推新 备注:唤醒的是本应用,因此需要为本应用进行推送配置
平台 Android或iOS
应用 用于筛选目标受众的应用,同时需为这些用于推送的应用进行推送配置(唤醒操作时无此选项)
受众过滤 国家:推送用户所在国家 充值金额范围:推送用户在该游戏中充值总额,可只填一个输入框,表示大于等于或小于等于(币种:美金)最后登录时间范围:推送用户最后登录该游戏的时间 可只填一个输入框,表示大于等于或小于等于注意:如果是唤醒和召回操作,是以当前应用的用户进行过滤;如果是推新操作,是以所选应用的用户为种子用户进行过滤
营销ID 该消息属于的营销分类,可用数字和字母命名
跳转链接 默认展示Android/iOS对应的官方市场下载链接(即应用商店信息的地址),也可选择“URL”,填写自定义地址跳转官网/其他应用市场等(唤醒操作时无此选项)
提醒类型 目前iOS只有声音提醒。Android机有些没有三色灯,且Android机声音和震动有些会受到系统设置干扰
推送时机 立即推送:保存选项后,在主页面点击“开始推送”,消息推送立即执行指定时间推送:保存选项后,在主页面点击“开始推送”,消息会在指定的时间内推送
推送时间 在所选的指定时间内将消息推送到苹果/Google的服务器

2)点击“保存”,新增一条推送的消息。根据预受众用户数情况,在“操作”一栏“修改”受众的过滤条件,达到筛选目标
3)点击“开始推送”,正式推送消息。如推送时机是“立即推送”,数据处理完成后即开始推送,如推送时机是“指定时间推送”,消息会在指定的时间内推送。

SDK集成的第三方SDK如下表:

参数 描述
状态 草稿:未点击“开始推送”,可修改筛选条件状态 准备计算受众:已点击“开始推送”, 受众计算任务等待执行中 计算受众中:受众计算任务进行中 受众计算完成:受众计算任务已完成并等 推送开始 推送中:推送进行中 推送完成:推送已完成 已废弃:点击“停止该推送”后状态,未完成的消息将停止发送,已经推送的消息不受影响,推送情况在数据表中显示 备注:点击“开始推送”后,即进入“准备计算受众”状态,如要关注目前的推送情况,需刷新该页面,否则状态会维持不变
操作 消息未发送: 修改——在点击“开始推送”前,可修改推送的筛选条件,以满足目标需求 开始推送——开始执行消息推送。需点击该按钮后,消息推送才正式启动 停止该推送——该条消息推送停止 无论是否完成推送 消息发送后:查看——查看消息推送的设置内容。

5.8.2 推送配置

1 选择左边导航栏的“消息推送”,进入界面后,点击 “推送配置”

图片3

图片1

如向iOS用户推送,需配置APNS证书和APNS秘钥,获取方式见:配置APNS证书和APNS秘钥
如向安卓用户推送,需配置FireBase证书,获取方式见:配置FireBase证书


注:如果要使用接口来推送,需要配置CP服务器的IP到白名单中。
注:安卓证书名称示例:xxxx-firebase-adminsdk-ef18j-b47abfdd21.json
注:IOS证书名称示例:push_dev.p12或者push_dis.p12。

5.9 商品手动消耗

目前支持谷歌 IOS
设置->支付平台->消耗
5
输入userId,选择商品后点击保存
5

5.10 FB小游戏广告

配置FB小游戏的广告ID
设置->应用管理->应用参数管理->FB小游戏广告ID

5

5

5.11 账号注销

账号注销入口:设置->应用管理->账号注销参数管理

5

1)客户端配置
可在此处开启账号注销

图片1

2)服务端配置
注:只有ios配置
5

苹果应用私钥:即和苹果服务端验证signinwithapple 的私钥
应该应用私钥标识:即和苹果服务端验证signinwithapple 的私钥文件的Key ID
苹果账号TeamId :即开发者账号的Team ID

配置苹果账号注销接口所需参数(苹果应用私钥 私钥标识 苹果账号TeamId),获取方式参考:Sign in with Apple账号删除参数获取


5.12 配置查询区服角色地址

登录wingsdk应用后台,应用-参数设置-服务端-获取区服角色地址,填写对应的查询区服角色地址。
WechatIMG776


5.13 admob广告功能开启

进入 广告 > AdMob管理

5.13.1 配置激励广告发货地址

1)点击”奖励通知接口配置”
2)填入”奖励通知接口”(此接口由CP提供)
3)点击保存

图片1

5.13.2 配置广告单元

1)点击”新增”
2)选择”广告类型”
3)填入广告所需要的信息

参数 描述
广告名称 广告名称,由运营或市场定义,可定义成具体意义的名称,见文知意,便于CP对接。例如:
1)奖励100金币,可命名成: reward_gold_100
2)死亡复活奖励,可命名成:death_resurrection
广告单元ID 可从Admob管理后台获取(不需要提供给cp)
奖励物品ID 可从Admob管理后台获取
奖励物品数量 可从Admob管理后台获取

4)选择状态为”测试”
5)点击保存

图片2


5.14 官网平台

官网平台参数管理 所在的位置如下:

图片6

5.14.1 账号互通配置

在官网包的”官网平台参数管理”->”服务端”->”GHG/R2官网包应用互通配置”填入谷歌包的sdk appid

图片1

5.14.2 官网礼包配置

1)在”官网平台参数管理”->”服务端”->”CP礼包通知接口”填入游戏研发提供的礼包发货接口
图片2

2)设置官网平台类型

图片3

3)填写官网平台的游戏id,由GHG/R2提供
图片4

4)配置礼包浮窗累计登录多少天弹出。配置1标识直接显示,-1表示关闭

图片5

注:安卓WINGSDK 4.6.0及以上版本,使用’浮窗总开关来控制’

图片6

选择开启后,会提示是否生成默认规则,谷歌包选择’确认’,官网包选择’取消’

图片7

5)浮窗按钮完整展示控制,当对按钮操作后,才会靠边收起并变半透明显示,操作指移动或点击按钮打开浮窗页。
关闭 (默认靠边收起并半透明显示)          
设备首次 (只在设备首次打开时才会完整显示)        
每天首次 (每天首次进入游戏都会完整显示)

图片5

6)浮窗页自动弹出,当浮窗按钮启用时,进入游戏获取到角色信息后,每天自动打开浮窗1次,自动打开的浮窗,5秒无操作则自动关闭
关闭 (不会自动打开)            
启用 (每天自动打开1次)

图片6

7)刷新浮窗页面状态,后台可刷新玩家“下次不再提醒”状态,让自动打开生效,用来强制弹出重要信息
关闭 (不会自动打开)            
启用 (每天自动打开1次)

图片7

8)浮窗方向控制(横屏游戏),只对横屏游戏生效。默认竖屏打开浮窗,可以通过控制来切换横屏打开浮窗
未命名 2

5.15 配置App secret(FB 应用密钥)

登录wingsdk应用后台,应用-参数设置-服务端-FB应用密钥,填写对应的App secret(FB 应用密钥)

facebook应用秘钥

5.16 AIHELP开启

使用AIHELP客服系统需在SDK管理后台开启
位置:应用->客服参数管理->aihelp appid (安卓/iOS) 和 aihelp domain

WEV[(_QT[O(U%K]V$J$)JAD

图片2

1)SDK客服开关–>开启
2)aihelp客服入口id –> 非必填
3)aihelp appId (安卓) –> 必填项,填入安卓的aihelp appid
4)aihelp appId (IOS) –> 必填项,填入IOS的aihelp appid
5)aihelp domain –> 必填项,填入aihelp domain

5.17 Consent开启

登录wingsdk应用后台,应用-参数设置-客户端-Consent开关,选择开启

未命名

5.18 关键等级配置

登录wingsdk应用后台,应用-参数设置-客户端-关键等级(纯数字,多个等级使用英文逗号分隔)

level

5.19 预注册商品添加及配置

1 在WingSDK管理后台,增加预注册商品,像正常的商品那边配置,“商品配置参考”注意:预注册商品在wingsdk后台价格不能配置为0
2 在WingSDK管理后台,配置预注册商品ID。位置:设置-参数配置-服务端-预注册商品ID(参照下图)
注意:通过礼包接口通知发放预注册奖励时, 礼包ID对应预注册商品的 “产品 ID”

{D74D7E10-AFEE-46E0-2D84-23DA9D96795C}

{C3DCB891-9D8A-95A7-D076-AD81334A8494}

5.20 预注册奖励通知方式

登录wingsdk应用后台,应用-参数设置-服务端-预注册奖励通知方式,进行发货通知选择

未命名 2

5.21 iOS 互推广告开关

登录wingsdk应用后台,应用-设置-官网平台参数管理-iOS互推广告开关,设置为打开

未命名 3

图片12

5.22 邀请活动管理

5.22.1 邀请参数配置

配置入口:”邀请活动管理”->”邀请活动”->”邀请参数配置”

图片15

配置项 参数说明
AppsFlyer模板ID 此项为空则表示关闭邀请功能。模板ID获取参考 https://blog.wing-analytics.com/archives/2783.html#aftempId
渠道 被邀请者的归因渠道(wing_invite)
活动名称 被邀请者的归因活动
被邀请者上报时机 根据事件名称触发,目前支持”完成新手任务”时触发上报
系统邀请活动标题 系统邀请时,可根据此项生成标题
邀请活动文案 邀请时,根据此项生成默认文案(建议末尾加两个空格)
邀请奖励服务端通知链接 使用服务端发奖时填写,需CP提供地址
触发邀请奖励服务端通知人数 使用服务端发奖时填写,每分享X人通知一次。填0则关闭此功能

5.23 FB特殊权限配置

配置项在”应用管理”->”参数设置”->”客户端”,可根据此配置觉得是否申请获取玩家的FB邮箱的权限。

6a83aec386e268c940160eacd5e9e682

图片16

5.24 子母包创建

5.24.1 创建母包

新建应用时,”选择母包”处选择’创建母包’

图片1

5.24.2 创建子包

新建应用时,”选择母包”处选择对应的母包

图片2

服务端接口文档bak(20260313)

wapublisher No Comments

一、简介

此文档描述了使用SDK的CP(内容提供商)用到的与WINGSDK后台交付的所有接口的详细定义。
接口分两种:
1、WINGSDK后台实现,CP后台调用。
2、CP后台实现,WINGSDK后台调用。

名词说明:

名词 说明
CP 内容提供商(Content Provider)游戏、应用等
第三方平台登录 通过第三方社交平台的OAuth authentication登录第三方帐号,并绑定WINGSDK帐号
游客登录 通过设备信息登录帐号,设备信息与WINGSDK帐号绑定
应用内登录 用户通过CP提供的帐号系统登录,然后CP通过WINGSDK提供的接口将用户绑定WINGSDK的帐号,以便CP使用SDK提供的服务

二、登录

后台-登录
注:实线表示请求的发起,虚线表示请求的返回

登录流程说明:
1)SDK客户端封装了其它不同第三方登录平台,用户登录后,SDK会返回后台验证的参数
2)客户端去WINGSDK服务端获取在线token,服务端先去第三方登录平台验证accessToken,获取第三方用户信息,并返回对应的WINGSDK用户ID和token给客户端
3)客户端通过SDK API 获取token,userId,puserId,platform等用户信息,然后向游戏后台发送登录请求
4)游戏后台调用WINGSDK提供的接口验证用户登录,请求参数见下
5)如果是应用内登录,以上登录流程图可以将第三方登录平台当成CP服务端,CP需要提供验证用户帐号的接口供WINGSDK后台调用。

2.1 CP验证用户登录接口

接口说明:

接口相关 说明
接口提供方 WINGSDK平台
接口调用方 CP
接口实现方式 HTTP/POST
接口描述 登录流程图第8步,CP验证WINGSDK token是否合法,是否与ghwUserId匹配
生产环境 https://api.wingsdk.com/cpapi/v2/user/authorize.do
支持Http Method POST (需要以表单的形式提交 content-type=application/x-www-form-urlencoded)
返回信息格式 JSON

输入参数说明:

参数名 类型 是否必须 参数说明
token String(100) Y WINGSDK验证token,从客户端获取
appId String(100) Y WINGSDK应用ID
osign Stirng(100) Y MD5(
appId+
token +
secureKey
),如果有参数为空,用空字符串””替代,secureKey (登录验证key,即SDK后台对应的登录秘钥)由运营人员在SDK后台获取

返回格式

参数名 类型 是否必须 参数说明
code Int Y 状态码,请参照状态码说明表
msg String(32) Y 结果描述
error String(32) N 验证错误描述信息
ghwUserId Long N 验证成功后返回ghwUserId,CP通过检验客户端的userId与此字段是否相等防止客户端冒充其它用户

请求示例:

三、支付

3.1 CP发货通知接口

该接口由移动平台定义,CP负责实现
发货接口调用说明
1.WINGSDK服务端系统订单在支付完成之后将实时通知到 CP 发货接口。

2.WINGSDK服务端系统通知 CP 发货时,若未接收到 CP 接口成功回复,该笔订单将重复通知 3次。

3.WINGSDK服务端系统在重复 3 次通知 CP 发货的过程中,若都未收到 CP 的成功回复,订单将进入后台轮询通知发货。每次轮询将有 3 次的通知;第一次轮询为订单新建之后的 15 分钟;之后每小时轮询通知一次; 24 小时之后隔日通知一次。

4.WINGSDK服务端系统收到 CP 接口返回 code=200 时将不再对该笔订单做重复通知。

5.WINGSDK服务端系统若对某笔订单重复通知,则 CP 需自行判断是否已经发货,若已发货则接
口直接返回 code=200,当作成功处理。

6.WINGSDK回调服务器的 IP 地址为 xx.xx.xx.xx,CP 可以考虑在回调接口中做该 IP 的白名单匹
配(可选)。不过 IP 地址可能存在变更,如有变更,将在SDK管理后台上另行通知

注1:接口开发完后可以使用调试工具进行测试,前往调试工具

注2:接口的URL ,必须支持HTTPS请求,且使用正规CA机构颁发的证书,不支持自签证书

URL:https://****/deliver.do
支持Http Method:POST
请求信息格式:application/x-www-form-urlencoded
返回信息格式:Json

输入参数说明:

参数名 类型 是否必须 参数说明
appId String(32) Y WINGSDK 应用 ID
orderId String Y WINGSDK订单号
defaultAmount Double Y 第三方支付后台配置的商品基准货币价格,单位(元);
如果非商品购买(如预点卡支付,短信充值、充值金额由玩家定义),此字段为0
defaultCurrency String(32) Y 第三方支付后台配置的商品价格使用的基准货币
gameAmount Int Y 游戏币数量,如钻石数,金币数
gameCurrency String(32) Y 游戏币种,如钻石,金币,元宝
productId String(32) N WINGSDK后台定义商品Id
如果非商品购买(如点卡支付,充值金额由玩家定义),此字段为
具体值:customAmountProduct,这类购买CP可以通过gameAmount给玩家发相应的游戏币
payChannel String Y 支付渠道:APPLE 、GOOGLE
userId Long Y 用户ID,WINGSDK游戏平台userId
serverId String Y 服务器ID
gameUserId String N 游戏角色ID
orderStatus Int Y 订单状态:
1:成功
2:失败
5:退款
6:争议
statusMsg String Y 订单状态说明
ots Int Y 订单创建时间戳(秒)
payDoneTime String N 支付完成时间(秒),已转成字符串,支付失败为空
extInfo String N CP 扩展信息字段,限长512,创建订单时通过客户端SDK传入,发货通知原样返回给CP。CP可以添加任意自定义的字段(JSON格式),用于检验订单信息或扩展其它功能,不超过长度限制即可。
如果CP的通知发货地址是动态变化的(比如每个服务区的地址都不一致),可以添加参数deliverUrl;
添加merId字段(选填),收款商户ID,使用场景:同一个支付渠道下有多个不同的收款验证信息(或收款帐号)。如果是APPLE支付渠道,merId使用客户端bundleId。
参考格式
{
“deliverUrl”:” http://game.com/deliver.do”,
“merId”:”payChanelMerId”
}
osign String Y 签名,MD5(
appId+
orderId+
defaultAmount+
defaultCurrency+
gameAmount+
gameCurrency+
productId+
userId+
serverId+
gameUserId +
orderStatus+
ots +
payDoneTime +
extInfo +
paySecretKey
)
payDoneTime、extInfo参数无值则使用””(空字符串)代替参与签名
paySecretKey(支付验证key,即SDK后台对应的支付秘钥)由运营人员在SDK后台获取

返回结果说明:

参数名 类型 是否必须 参数说明
appId String(32) N 应用 ID
code Int Y 通知结果状态码,200表示通知成功
msg String(32) Y 结果描述
userId Long N 用户ID
deliverStatus Int N 订单发货状态
0:未知
1:发货成功
2:发货失败
CP在接受到发货通知后,如果能同步确定发货状态,可以返回此状态,如果不能确定发货状态,可以忽略此字段。CP也可以通过发货结果异步回调接口通知SDK发货结果

3.2 发货结果异步回调接口(可选)

接口说明:

接口相关 说明
接口提供方 WINGSDK平台
接口调用方 CP
接口实现方式 HTTP/POST
接口描述 1.CP在向用户发货成功后,将发货结果反馈给WINGSDK平台
2.CP在通知失败情况下(通知结果返回code值非200),需要重试通知
3.WINGSDK对发货成功的订单不再做修改发货状态(发货成功/发货失败),但发货失败的订单可以再修改发货状态。
4.CP对通知结果状态码code=200的订单不需要再重复通知。
生产环境 https://api.wingsdk.com/cpapi/v1/deliver_callback.do
支持Http Method POST
返回信息格式 JSON

输入参数说明:

参数名 类型 是否必须 参数说明
appId String(32) Y 应用 ID
orderId String Y WINGSDK订单号
productId String(32) Y 商品Id
如果非商品购买(如点卡支付,充值金额由玩家定义),此字段为
具体值:customAmountProduct
userId Long Y 用户ID,WINGSDK游戏平台userId
serverId String N 服务器ID
deliverStatus Int Y 订单发货状态
1:发货成功
2:发货失败
statusMsg String N 订单状态说明
osign String Y 签名,MD5(
appId+
orderId+
productId+
userId+
serverId+
deliverStatus +
paySecretKey
)
serverId等参数无值则使用””(空字符串)代替参与签名
paySecretKey(订单验证key,即SDK后台对应的支付秘钥)由运营人员在SDK后台获取

返回结果说明:

参数名 类型 是否必须 参数说明
code Int Y 通知结果状态码,200表示通知成功
msg String(32) Y 结果描述

四、奖励通知

4.1 admob激励广告奖励通知接口定义

接口说明:

接口相关 说明
接口提供方 CP后台
接口调用方 WA平台
接口实现方式 HTTP/POST
接口描述 玩家观看完激励广告后,WA平台通知CP对玩家进行奖励
生产环境 CP自定义,配置到SDK后台即可。
支持Http Method POST
请求信息格式 application/x-www-form-urlencoded
返回信息格式 JSON

接口调用说明
连续通知3次,都失败则不再通知。
注1:接口开发完后可以使用调试工具进行测试,前往调试工具
注2:接口的URL ,必须支持HTTPS请求,且使用正规CA机构颁发的证书,不支持自签证书

输入参数说明:

参数名 类型 是否必须 参数说明
appId String(32) Y 应用 ID
transactionId String Y 广告奖励订单流水号
adName String Y 广告名称
rewardItem String Y 奖励物品标识:礼包ID,钻石,元宝等
rewardAmount Int Y 奖励物品数
userId Long Y 玩家的WA平台用户ID
serverId String N 玩家所在的游戏服
gameUserId String N 游戏角色ID
extInfo String N 扩展字段,游戏在客户端观看视频前通过API传给SDK,原样返回给CP后台
osign String Y 签名,MD5(
appId +
transactionId +
adName+
rewardItem +
rewardAmount +
userId +
serverId+
gameUserId+
extInfo+
secureKey )
参数无值则使用””(空字符串)代替参与签名,secureKey 服务端验证key,在SDK后台配置

返回结果说明(JSON格式):
失败返回错误码,请参照附录1的状态码说明表;

参数名 类型 是否必须 参数说明
code Int Y 状态码,请参照状态码说明表
msg String Y 结果描述
deliverStatus int N 奖励发货状态
0:未知
1:发货成功
2:发货失败
CP在接受到发货通知后,如果能同步确定发货状态,可以返回此状态,如果不能确定发货状态,可以忽略此字段。


4.2 礼包通知接口定义

接口说明:

接口相关 说明
接口提供方 CP后台
接口调用方 WingSDK平台
接口实现方式 HTTP/POST
接口描述 给玩家发放礼包
生产环境 CP自定义,配置到WingSDK后台即可。
支持Http Method POST
请求信息格式 application/x-www-form-urlencoded
返回信息格式 JSON

接口调用说明
连续通知3次,都失败则不再通知。
注1:接口开发完后可以使用调试工具进行测试,前往调试工具
注2:接口的URL ,必须支持HTTPS请求,且使用正规CA机构颁发的证书,不支持自签证书
注3:该接口在预注册奖励发放时并发请求数比较大,建议使用异步或队列的形式处理,避免影响游戏功能.

输入参数说明:

参数名 类型 是否必须 参数说明
appId String(32) Y 应用 ID
giftId String Y 礼包id
transactionId String Y 唯一流水号,可根据此字段来判断是否是重复通知。
userId Long Y 玩家的WingSDK平台用户ID
serverId String Y 玩家所在的游戏服
gameUserId String N 游戏角色ID
osign String Y 签名,MD5(
appId +
giftId +
transactionId+
userId +
serverId+
gameUserId+
secureKey )
参数无值则使用 “”(空字符串)代替参与签名,secureKey 服务端验证key,由运营提供

返回结果说明(JSON格式):
失败返回错误码,请参照附录1的状态码说明表;

参数名 类型 是否必须 参数说明
code Int Y 状态码,200表示通知成功;400表示通知失败
msg String Y 结果描述

五、数据查询接口

5.1 通过第三方OPEN_ID获取WINGSDK平台用户ID

接口说明:

接口相关 说明
接口提供方 WINGSDK平台
接口调用方 CP后端
接口实现方式 HTTP/POST
接口描述 通过第三方平台openId获取WINGSDK平台的userId
生产环境 https://api.wingsdk.com/cpapi/v1/get_user_info.do
支持Http Method POST
返回信息格式 JSON

输入参数说明:

参数名 类型 是否必须 参数说明
appId String Y WINGSDK平台分配的应用id
platform String Y 第三方平台标识: FACEBOOK、APPLE、GOOGLE、GUEST等
openId String Y 第三方平台openId
osign String Y 验证用的加密串
Md5(
appId+
appKey+ //登录验证key,注意保密
platform+
openId
)

返回结果说明(JSON格式):
失败返回错误码,请参照状态码说明表

参数名 类型 是否必须 参数说明
code Int Y 状态码,请参照状态码说明表
msg String Y 结果描述
userId Long N SDK平台用户Id

5.2 查询区服角色信息

该接口由移动平台定义,CP负责实现
查询区服信息接口调用说明
1、WA服务端系统通过WA的userId来查询用户已经玩过的区服角色以及最近玩过的区服角色。
2、Url:https://****/serverinfo.do

注1:接口开发完后可以使用调试工具进行测试,前往调试工具
注2:接口的URL ,必须支持HTTPS请求,且使用正规CA机构颁发的证书,不支持自签证书

接口说明:

接口相关 说明
接口提供方 CP后端
接口调用方 WINGSDK平台
接口实现方式 HTTP/POST
接口描述 通过WA的userId来查询用户已经玩过的区服角色
生产环境 https://****/serverinfo.do
支持Http Method POST
返回信息格式 JSON

输入参数说明:

参数名 类型 是否必须 参数说明
appId String Y WINGSDK平台分配的应用id
userId Long Y 用户ID,WA游戏平台userId
osign String Y 验证用的加密串Md5(appId+userId+secureKey) //secureKey即SDK后台对应的登录密钥, 需运营人员在SDK后台获取

返回结果说明(JSON格式):
失败返回错误码,请参照状态码说明表

参数名 类型 是否必须 参数说明
code Int Y 状态码,请参照状态码说明表
msg String Y 结果描述
currentServerId String Y 当前服务器Id,没有则是最近登录的服务器Id.(游戏没有区服概念时可以传”1”)
currentRoleId String Y 当前角色Id,没有则是最近使用的角色Id
serverList object Y 数组对象
serverList为数组对象,包含数据如下,见示例
serverId String Y 服务器Id。(游戏没有区服概念时可以传”1”)
serverName String Y 服务器名称。(游戏没有区服概念时可以传”server1”)
roleList object Y 数组对象
roleList为数组对象,包含数据如下,见示例
roleId String Y 角色Id
roleName String Y 角色名称

示例:

六、消息推送

6.1 消息推送接口

接口说明:

接口相关 说明
接口提供方 WA平台
接口调用方 CP
接口实现方式 HTTP/POST
接口描述 可通过该接口发起推送任务,需要在sdk后台配置IP白名单后,才能正常访问此接口
生产环境 https://api.wingsdk.com/cpapi/v1/user/push.do
支持Http Method POST
报文类型 application/json; charset=utf-8
返回信息格式 JSON

请求报文头:

字段 类型 必须 参数说明
appId String Y WA应用ID
sign String Y 接口调用签名, 小写MD5(appId + body + secureKey), secureKey (登录验证key)由运营人员在SDK后台生成

body说明:

参数名 类型 是否必须 参数说明
message Object Y 消息对象
message.id String N 自定义ID,当一次推送任务需要多次请求接口时,可以设置相同的ID,标识为同一任务,便于回溯推送情况(不超过64字符)
message.title String Y 消息题目(不超过64字符)
message.body String Y 消息内容(不超过200字符)
message.platform Int Y 推送平台;0-安卓 1-IOS
message.priority String Y 推送优先级;1-低;2-中;3-高;
message.pushType Int Y 推送类型;0-自定义uid推送;1-全服推送;
message.uids List N Uid列表(最多支持1000个),当pushType为”自定义uid推送”时,该参数必须要传值。[123,456,789]

返回格式:

参数名 类型 是否必须 参数说明
code Int Y 状态码,请参照附录1
msg String(32) Y 结果描述

调用实例:

七 充值中心

7.1 查询可购买礼包(商品)列表接口

该接口由移动平台定义,CP负责实现
查询区服信息接口调用说明
1、WingSDK服务端系统通过WingSDK的userId,区服id,角色id来查询玩家可购买的礼包(商品)列表。
2、Url:https://****/gameproductlist.do

注1:接口开发完后可以使用调试工具进行测试,前往调试工具
注2:接口的URL ,必须支持HTTPS请求,且使用正规CA机构颁发的证书,不支持自签证书

接口说明:

接口相关 说明
接口提供方 CP后端
接口调用方 WINGSDK平台
接口实现方式 HTTP/POST
接口描述 查询玩家可购买的礼包(商品)列表
生产环境 https://****/gameproductlist.do
支持Http Method POST
请求信息格式 application/x-www-form-urlencoded
返回信息格式 JSON

输入参数说明:

参数名 类型 是否必须 参数说明
appId String Y WINGSDK平台分配的应用id
userId Long Y 用户ID,WA游戏平台userId
serverId String Y 服务器ID
gameUserId String Y 游戏角色ID
osign String Y 验证用的加密串Md5(appId+userId+serverId+gameUserId+secureKey ) //secureKey即SDK后台对应的登录密钥, 需运营人员在SDK后台获取

返回结果说明(JSON格式):
失败返回错误码,请参照状态码说明表

参数名 类型 是否必须 参数说明
code Int Y 状态码,请参照状态码说明表
msg String Y 结果描述
gameProductList object Y 数组对象
gameProductList为数组对象,包含数据如下,见示例
gameProductType String Y 礼包(商品)类型,游戏本地语言或英语 ,长度限制32字符长度。如:每日礼包,每周礼包
gameProductId String Y 礼包(商品)ID
gameProductName String Y 礼包(商品)名称(游戏本地语言或英语) ,长度限制32字符长度
gameProductDesc String Y 礼包(商品)描述(游戏本地语言或英语)。描述中需要说明限购规则,长度限制250字符长度
waProductId String Y sdk商品ID

示例:

7.2 购买礼包(商品)下单接口

该接口由移动平台定义,CP负责实现
查询区服信息接口调用说明
1、WingSDK服务端系统通过WingSDK的userId,区服id,角色id来查询玩家可购买的礼包(商品)列表。
2、Url:https://****/order.do

注1:接口开发完后可以使用调试工具进行测试,前往调试工具
注2:接口的URL ,必须支持HTTPS请求,且使用正规CA机构颁发的证书,不支持自签证书

接口说明:

接口相关 说明
接口提供方 CP后端
接口调用方 WINGSDK平台
接口实现方式 HTTP/POST
接口描述 查询玩家可购买的礼包(商品)列表
生产环境 https://****/order.do
支持Http Method POST
请求信息格式 application/x-www-form-urlencoded
返回信息格式 JSON

输入参数说明:

参数名 类型 是否必须 参数说明
appId String Y WINGSDK平台分配的应用id
userId Long Y 用户ID,WA游戏平台userId
serverId String Y 服务器ID
gameUserId String Y 游戏角色ID
gameProductId String Y 游戏礼包(商品)ID (需判断gameProductId和waProductId是否对应正确)
waProductId String Y sdk商品ID (需判断gameProductId和waProductId是否对应正确)
osign String Y 验证用的加密串Md5(appId+userId+serverId+gameUserId+gameProductId +waProductId+secureKey ) //secureKey即SDK后台对应的登录密钥, 需运营人员在SDK后台获取

返回结果说明(JSON格式):
失败返回错误码,请参照状态码说明表

参数名 类型 是否必须 参数说明
code Int Y 状态码,请参照状态码说明表
msg String Y 结果描述
extInfo String N CP 扩展信息字段,限长512, 发货通知原样返回给CP。CP可以添加任意自定义的字段(JSON格式),用于检验订单信息或扩展其它功能,不超过长度限制即可。

7.3 查询玩家月卡信息

接口说明:

接口相关 说明
接口提供方 WA平台
接口调用方 CP
接口实现方式 HTTP/POST
接口描述 通过此接口查询玩家月卡信息。
生产环境 https://api.wingsdk.com/cpapi/v1/user/pass_info.do
支持Http Method POST
请求信息格式 content-type=application/x-www-form-urlencoded
返回信息格式 JSON

输入参数说明:

参数名 类型 是否必须 参数说明
appId String(100) Y WA应用ID
userId Long Y SDK 用户id
osign Stirng(100) Y Md5(appId+userId+secureKey) 如果有参数为空,用空字符串””替代,secureKey (登录验证key)由运营人员在SDK后台生成

返回格式:

参数名 类型 是否必须 参数说明
code Int Y 状态码,请参照状态码说明表
msg String(32) Y 结果描述
passStatus Int Y 月卡状态:0-未激活;1-已激活
subscribeStatus Int N 订阅状态:0-非连续订阅;1-连续订阅
passExpireTimestamp Long N 月卡过期时间戳,单位毫秒
passExpireDays Int N 剩余多少天过期

附录1:返回状态码说明

通用返回状态码说明(参考了Http状态码设计):

状态码code 说明
200 成功
400 错误请求:请求参数有错,头信息有误等,导致请求无法被正确理解
401 请求未认证:访问受限资源是缺少认证信息,或者认证未通过
403 禁止访问:由于应用上下文原因或请求端上下文的原因被禁止访问资源,例如IP限制等;
404 找不到被访问资源:接口不存在、页面不存在或对应的业务实体找不到
500 服务器内部故障
501 所请求接口或页面未实现

平台自定义状态码说明

状态码code 说明
4010 无效appId: appId不存在或未开启
4011 无效osign:osign校验失败
4079 推送配置无效,APNS证书及密码(IOS推送)或Firebase(Android推送)认证 Key未配置

WingSDK_iOS使用指南(v4.10.0)

wapublisher No Comments

1 简介

1.0.1 用户模块

提供 UI界面 和 接口调用 两种方式,满足用户不同需求。

1.0.1.1 登录弹窗

内置登录UI弹窗,内含所有已经集成的登录方式,无需编写界面,一键集成登录功能

1.0.1.2 匿名登录

WINGSDK匿名登录无需账户密码,根据设备信息新建用户或登录已存在的用户,可以快速登录游戏。

1.0.1.3 第三方平台登录

第三方平台登录接口可以通过第三方平台账户登录,返回WINGSDK账号信息,使用没有绑定任何WINGSDK账号的第三方平台账号登录,会自动新建一个WINGSDK账号,并且与该平台账号绑定。支持Facebook登录、Google登录、VK登录。

1.0.1.4 内置账户管理界面

内置账户管理UI界面,无需编写界面和逻辑,即可对账户进行管理,平台账户绑定情况一目了然,绑定、解绑平台账户,新建账号,切换账号,轻松搞定。

1.0.1.5 账号绑定与解绑

  • 账号绑定接口,可以将WINGSDK账号跟第三方平台的账号绑定,绑定成功后可以使用绑定的平台账号登录,在同一应用中一个平台账号只能绑定一个WINGSDK账号。

  • 账号解绑接口,可以将第三方平台账号与其绑定的WINGSDK账号解绑,解绑成功后,平台账号可以与WINGSDK账号再次绑定。

  • 绑定账号查询接口,能够查询此时登录的账号(WINGSDK)已经绑定的第三方平台账号列表。

1.0.1.6 账号切换

一键切换账号,迅速切换WINGSDK账号或者第三方账号。

1.0.1.7 支付模块

支付模块提供支付充值接口,集成简单,无需理会复杂的支付流程,轻松完成商品的购买(充值)。

1.0.1.8 数据收集模块

数据收集模块提供了数据收集的接口,多渠道灵活调用。数据收集包含了丰富的应用内的事件类型,还支持用户自定义事件类型。

2 快速集成

2.1 环境配置要求

1、系统:Mac OS
2、开发工具:Xcode(16.0及以上)
3、Deployment Target:iOS15.0及以上版本

2.2 集成SDK到项目


集成步骤:

1、下载,把下载的两个plist放到工程Info.plist同级目录,并添加到项目中
a、使用cocopods方式或者手动加载方式,配置文件下载(wa_sdk_track_config.plist&&wa_sdk.plist)

b、使用Swift Package Manager 依赖方式

重要:接入sdk版本以及升级sdk版本时,需要同步更新对应sdk版本的资源文件(升级sdk时,注意带参数文件wa_sdk.plist、wa_sdk_track_config.plist被覆盖问题)

Swift Package Manager依赖各版本对应资源

版本 下载地址 备注
4.10.0 下载
4.9.2 下载
4.9.1 下载
4.9.0 下载
4.8.1 下载

2、集成相应库到项目中 参考: 库的引用
3、添加依赖库,以及配置 参考: 工程构建配置
4、修改配置文件 参考: WINGSDK基本配置
5、编译正常,可继续sdk代码集成 参考: SDK初始化

建议:cp可先运行demo,看下配置以及需要引用的第三方库,再接入
cocopods集成参考demo: cocopods集成demo代码下载地址
spm集成参考demo: spm集成demo代码下载地址

2.2.1 库的引用

SDK的抽象层和实现层以framework的形式提供,CP可以使用cocoapods的方式或者自行下载framework拖进xcode项目的方式进行引用。

2.2.1.1 方式一:使用cocoapods进行引用(推荐)

CP可以使用Cocospods进行引用更新。

这部分脚本请使用WINGSDK打包配置页面生成,CP可以将生成的脚本代码复制到自己的Podfile中。
WINGSDK打包配置页面地址:https://admin.wingsdk.com/developers/pack_config.do

目前SDK提供的库包括:

  • WASdkIntf——必接
  • WASdkImpl(WingSdk)——必接
  • WAFirebaseImpl(Firebase) ——必接
  • WAApImpl(Apple)苹果支付 ——必接

其它可选:

  • WAAfImpl(Appsflyer)——AppsFlyer数据采集 可选
  • WAFbImpl(Facebook) ——可选
  • WAPushImpl(Push)——可选
  • WAAiHelpImpl(AiHelp) ——可选

提示:使用CocoaPod引用的项目打开项目时需要点击’xcworkspace’而不是’ xcodeproj’

2.2.1.2 方式二:使用Swift Package Manager依赖(SPM)

选择项目,选择包依赖,点击+按钮

未命名 1

输入仓库地址 http://repo.wingsdk.cn:8082/r/wingsdkios_spm.git ,enter然后选择wingsdkios_spm,可以选择确切的版本,Exact Version,然后点击Add package

未命名 8

然后选择对应的Target

未命名 3

点击Add Package,等库加载完成即可,效果如下

未命名 4

使用SwiftPackageManager中的配置文件wingsdkResources_x.x.x.zip加载到项目工程中

未命名 5

2.2.1.3 方式三:手动引用

如果手动引用,可以使用WINGSDK打包配置页面https://admin.wingsdk.com/developers/pack_config.do进行各个包的下载,并添加到xcode项目中。

未命名

下载完成后解压,把解压后的文件拖入xcode工程,其中WASdkIntf和WASdkImpl是必接库,其它可选。
注意:需要加入系统库libsqlite3.tbd(libsqlite3.dylib)、libz.tbd(libz.dylib)


2.2.2 工程构建配置

在项目Build Settings中搜索Other Linker Flags 修改值为-ObjC
如下图
iOS-工程构建配置

需要引用的库:
PhotosUI.framework
AppTrackingTransparency.framework
libz.1.dylib
Accelerate.framework
libc++.tbd
libresolv.tbd
WebKit.framework
sqlite3

2.2.3 WINGSDK基本配置(wa_sdk.plist)

配置文件wa_sdk_track_config.plistwa_sdk.plist,如没有这两个文件,则可 配置文件(wa_sdk_track_config.plist&&wa_sdk.plist)下载
下载完成后,需要把wa_sdk_track_config.plist和wa_sdk.plist放到和Info.plist同级目录,并引用到项目中

未命名9

2.2.5.1、 wa_sdk.plist文件配置:

未命名 2

参数说明:
WaSdkServerUrl:WINGSDK后台url(生产环境:https://api.wingsdk.com/sdkapi/)
appKey:WINGSDK后台appKey
appId:WINGSDK后台appId
os:手机操作系统
channel:发布渠道

2.2.5.2、wa_sdk_track_config文件配置:

关于wa_sdk_track_config.plist详见 配置 (wa_sdk_track_config.plist)

2.3 SDK初始化

1、在项目target,Signing&Capabilities,选择All,添加Capability,选择Keychain Sharing

图片1
2、点击+号,输入gamehollywood.wingsdk.clientid.group

图片1

导入头文件
#import <WASdkIntf/WASdkIntf.h>

1、请在AppDelegate的didFinishLaunchingWithOptions 调用下面代码:

2、在AppDelegate的applicationDidEnterBackground调用下面代码:

3、在AppDelegate的applicationWillEnterForeground调用下面代码:

4、在AppDelegate的applicationDidBecomeActive调用下面代码:


注:如新建Xcode项目,会默认创建SceneDelegate文件,则需要以下适配(如无SceneDelegate文件则忽略):

2.4 登录

登录过程中如果涉及到应用间跳转,需要在AppDelegate中实现以下方法

2.4.1 登录窗口

SDK内置了一个包含所有支持的登录方式的一个窗口,通过调用以下接口打开对话框:

注意:测试时,需要联系运营添加测试设备,才能出现登录方式。

2.4.1.1 实现协议 WALoginViewDelegate

登录结果说明 WALoginResult

字段名 类型 说明 备注
message String 登录结果消息
userId String WINGSDK用户id
token String WINGSDK用户token
platform String 平台类型 当前登录的平台名称
isGuestAccount int 是否游客登录 0 不是游客账号 1是游客账号

2.4.1.2 调用方法

+(void)login:(id<WALoginViewDelegate>)delegate cacheEnabled:(BOOL)cacheEnabled;
cacheEnabled是否缓存登录方式。如果缓存登录方式,第二次调用的时候直接按照上次的登录方式进行登录,不会弹出登录选择框。如果想弹出登录选择框,请调用clearLoginCache方法,清除缓存
代码示例:

2.4.1.3 清除登录方式的缓存(重新弹出登录选择框)

+(void)clearLoginCache;
代码示例:

2.4.1.4 隐藏登录选择框

+(void)hide;
代码示例:

2.4.2 用户登录接口

如果CP有自己的登录窗口,可以使用WINGSDK登录接口:

2.4.2.1登录接口

2.4.2.2)选择登录方式

+(void)loginWithPlatform:(NSString *const)platform extInfo:(NSString*)extInfo delegate:(id<WALoginDelegate>)delegate;
注:extInfo目前主要用于应用内登录等高级登录设置,请参考 应用内登录相关章节
代码示例:facebook登录

登录平台请参考5.0.1 平台取值

2.4.2.3 实现协议WALoginDelegate中定义的方法

说明:关于APPLE登录,用户每次进入APP进行登录操作,Game Center只进行一次授权。假如用户在第一次登录的时候取消了,以后每次进行登录,程序都会执行登录取消的协议方法,除非用户结束应用重新打开。同样的,第一次登录的时候,出现Game Center授权错误,之后程序都会执行登录失败的协议方法,除非用户结束应用重新打开。

2.4.3 用户登出

需要在游戏中添加该功能入口,一般是在游戏登录页和设置页中,具体入口位置和图标由运营决定。效果参考下图:

账号登出

退出游戏的时候,必须登出操作。用户登出调用以下接口:
[WAUserProxy logout];

2.5 支付

WINGSDK支付流程如下:
支付流程

2.5.1 初始化

使用对应平台的支付服务前必须对其进行初始化,请在AppDelegate的didFinishLaunchingWithOptions方法调用以下方法。
+(void)init4Iap;
代码示例:

2.5.2 查询商品

2.5.2.1 实现协议 WAInventoryDelegate

2.5.2.2 调用方法

查寻库存商品,调用以下接口:
+(void)queryInventoryWithDelegate:(id<WAInventoryDelegate>)delegate;
代码示例:

2.5.3 购买商品

2.5.3.1 实现协议 WAPaymentDelegate

支付结果说明 WAIapResult

字段名 类型 说明 备注
productIdentifier NSString 商品id
resultCode long 支付结果代码 1.支付成功
2.支付失败
3.用户取消
4.支付成功,上报失败
5.商品消耗中
6.创建订单失败

2.5.3.2 调用方法

购买指定平台的商品,调用以下接口:
+(void)payWithProductId:(NSString*)productId extInfo:(NSString*)extInfo delegate:(id<WAPaymentDelegate>)delegate;
代码示例:

参数说明:

参数名 类型 必填 说明 备注
productId String Y 库存商品的id wingsdk平台的商品id
extInfo String N 额外信息,该信息会在支付成功后原样通知到CP服务器,CP用于检验 CP 扩展信息字段,限长512(JSON格式),WING服务器到CP服务器发货通知时原样返回给CP。如果CP的通知发货地址是动态变化的(比如每个服务区的地址都不一致),可以通过此字段设置:参数格式为JSON,参数名为 deliverUrl,参考格式
{
“deliverUrl”:” http://game.com/deliver.do”,
“otherInfo”:”otherInfo”,
“merId”:””
}
merId字段(选填),收款商户ID,使用场景:同一个支付渠道下有多个不同的收款验证信息(或收款帐号)。如果是 APPLE支付渠道,merId使用客户端bundleId

2.6 数据收集

使用WINGSDK数据收集接口配合大数据平台,可以轻松统计玩家习惯以及充值等行为,为游戏的市场营销提供数据依据。
下面流程涉及到后台统计中非常关键的进服和创角事件,请严格按照指定时机顺序发送,具体流程如图所示:

进服创角事件顺序流程v2_内部设置首次进服.drawio

2.5.0.常用事件对象对照表

参数名 对象类 说明
ghw_user_import WAUserImportEventV2 用户进服事件。
调用时机:玩家登录游戏服务器成功后 备注:WingSDK后台会根据该事件统计导入数、登录数、导入留存等数据
ghw_user_create WAUserCreateEvent 用户创角事件。
调用时机:玩家创建角色成功后调用
备注:WingSDK后台会根据该事件统计创角数
ghw_user_info_update WAUserInfoUpdateEvent 更新用户信息。
调用时机:玩家更改角色昵称时(必须),或信息更新时(可选)
备注:WingSDK后台根据此字段更新玩家昵称等信息,影响WingSDK后台查看角色昵称
ghw_level_achieved WALevelAchievedEvent 等级增长事件。
调用时机:玩家达到新的等级时调用)
ghw_initiated_purchase WAInitiatedPurchaseEvent 点击购买事件 。
调用时机:用户点击购买时调用
ghw_self_tutorial_completed WATutorialCompletedEvent 完成新手任务。具体等级由运营确定
触发时机:完成新手任务时调用

2.6.1 配置 (wa_sdk_track_config.plist)

对各个平台进行相应的配置(修改wa_sdk_track_config.plist)。注:文件名以及key值不可修改。

appleapple

其中,AppleAppID可以在iTunes Connect(https://itunesconnect.apple.com)中新建应用之后获取,具体可以参考iOS-第三方后台配置文档“Apple基础配置”章节

每个数据收集平台都有相应的开关,可以进行配置。下图的Enable就是开关,Enable: YES-开,NO-关。

af_enable

WINGSDK URL正式环境的地址: https://api.wingsdk.com/data/

2.6.2 数据收集初始化

2.6.2.1 导入头文件

#import <WASdkIntf/WASdkIntf.h>

2.6.2.2 工程启动时初始化

您需要在第一次启动在应用程序上进行SDK初始化。请保证在发送下面的跟踪事件之前进行SDK初始化。请在AppDelegate中的didFinishLaunchingWithOptions方法中添加以下代码:
[WACoreProxy initAppEventTracker];

2.6.3 预定义事件

建议参数属性:(参数对应的静态变量名请看 SDK 预定义参数名

2.6.3.1 ghw_user_import用户进服

事件说明:用户进服事件
调用时机:玩家登录游戏服务器成功后

参数名 类型 说明 必填 备注
serverId String 服务器ID Y
gameUserId String 游戏角色ID Y 如果未创角,可以设置为“-1”
nickname String 游戏角色名(昵称) Y 如果未创角,可以设置为空
level int 游戏角色等级 Y 首次进服时,设置默认为1,有角色信息后,要传递真实的角色等级
serverId String 服务器ID Y

代码示例:

2.6.3.2 ghw_initiated_purchase 点击购买

事件说明:点击购买事件 。
调用时机:用户点击购买时调用

无参数
代码示例:

2.6.3.3 ghw_level_achieved 等级增长事件

事件说明:等级增长事件。
调用时机:玩家达到新的等级时调用

参数名 类型 说明 必填 备注
currentLevel int 当前等级 Y
score int 账户分数 N
fighting int 战斗力 N

代码示例:

2.6.3.4 ghw_user_create用户创角

事件说明:用户创角事件
调用时机:玩家创建角色成功后调用
事件参数

参数名 类型 说明 必填 备注
serverId String 服务器ID Y
gameUserId String 游戏角色ID Y
nickname String 游戏角色名(昵称) Y
registerTime long 创角时的时间戳 Y 单位为毫秒(1970以后),长度13位
roleType String 角色类型 N
gender int 角色性别 N 0 女
1 男
2 未知
vip int 等级 N
bindGameGold int 绑定钻石数 N
gameGold int 用户钻石数 N
fighting int 战斗力 N
status int 状态 N 状态标识
-1: 锁定,
1:未锁定

代码示例:

2.6.3.5 ghw_self_tutorial_completed 完成新手任务

事件说明:完成新手任务。
触发时机:完成新手任务时调用
无参数
代码示例:

2.6.3.6. ghw_user_info_update 更新用户信息

参数名 类型 说明 必填 备注
roleType String 角色类型 N
nickname String 昵称 Y 无昵称时,可填写空字符串
vip int 等级 N
status int 状态 N 状态标识,-1:锁定,1:未锁定

代码示例:

2.6.4 自定义事件

事件描述:自定义事件
事件名称:自定义
参数:自定义
有无累计值:自定义

说明:支持自定义事件的统计
自定义

自定义事件目前只支持事件名和累加值,见示例。
例如:

2.6.4.1 货币标识

名称 标识
人民币 CNY
美元 USD
港币 HKD
欧元 EUR
英镑 GBP
日元 JPY
加元 CAD

详见:https://en.wikipedia.org/wiki/ISO_4217

2.6.4.2 渠道名称表

常量 代表渠道
WA_PLATFORM_APPSFLYER Appsflyer
WA_PLATFORM_FACEBOOK Facebook
WA_PLATFORM_WINGA WINGSDK
WA_PLATFORM_FIREBASE Firebase


2.6.5 获取 IDFA 弹出“询问用户是否授权”适配

应苹果要求,iOS14后,获取IDFA需要授权弹框。目前sdk默认为不弹框获取用户授权。如需弹框授权,需要以下步骤
1、xcode升级到12或者以后版本
2、接入sdk3.9.1或以后版本
3、Info.plist 中新增 key Privacy – Tracking Usage Description ,value 填写使用 IDFA 原因。其中原因将展示给用户。参考文案:Your info will be used for personalized ads.

效果如图:

WechatIMG859

3 高级功能

3.1 调试模式

3.1.1 开启、关闭调试模式

WINGSDK具备调试模式并提供了Log悬浮按钮调试工具,打开调试模式就会显示Log悬浮按钮,使用这个工具测试人员不需要IDE环境就可以在工具窗口中查看调试信息。开启/关闭调试模式调用以下接口(WINGSDK默认是关闭调试模式的)。

关闭调试模式:

3.1.2 如何获取 client_id

打开调试模式后,显示Logcat工具,点击-设备信息-clientid,点击获取

F757A84C441ED6EC3E50CE12F7A8F87F

3.2 账户管理

v4.6.0开始请忽略该章节,改为接入“客服中心”功能。

3.2.1 使用账户管理页面

需要在游戏中添加该功能入口,一般是在游戏设置页中,具体入口位置和图标由运营决定。效果参考下图:

账号管理

SDK内置了账户管理页面,打开这个内置的页面之前必须先登录,通过这个页面可以对账户进行管理操作,包括账号绑定、解绑、切换账户、新建账户。

3.2.1.1 实现协议 WAAcctManagerDelegate

3.2.1.2 调用方法

+(void)openAccountManager:(id<WAAcctManagerDelegate>)delegate;

代码示例:

3.3消息推送


WINGSDK推送功能是基于苹果APNS,可以给客户端发送推送通知,通过简单几步配置即可使用。

3.3.1苹果相关配置

导出App推送证书为p12,并上传到WINGSDK后台。
注意:
1、苹果消息推送证书配置请参考Apple官方文档
http://help.apple.com/xcode/mac/current/#/dev11b059073

3.3.2推送集成配置

添加推送模块依赖方法参考 集成SDK到项目
注:Appsflyer卸载检测某些配置与消息推送一样,但如果是用于Appsflyer,此步骤可忽略

3.3.3 Xcode配置

3.3.3.1)开启推送功能

在 Xcode 8.x 以上,必须开启Push Notification能力。找到应用Target设置中的Capabilities -> Push Notifications。

未命名 3

3.3.3.2)APNs静默推送权限设置

为了更好支持消息推送,提高消息到达率,需要配置APNs静默推送权限

未命名34

3.3.4 编写集成代码

1、导入文件头,在AppDelegate中导入:
#import <UserNotifications/UserNotifications.h>

2、初始化消息推送,在AppDelegate的application:initPushWithDelegate:调用下面代码:

注:Appsflyer卸载检测某些配置与消息推送一样,但如果是用于Appsflyer,此步骤可忽略

3、监控用户对推送消息的设置

4、注册DeviceToken
在AppDelegate的application:didRegisterForRemoteNotificationsWithDeviceToken:调用下面代码:

5、监控APNs推送错误
在AppDelegate的application:didFailToRegisterForRemoteNotificationsWithError:调用下面代码:

6、为更好统计用户在不同场景下和不同iOS系统中收到的消息,需在AppDelegate的userNotificationCenter: willPresentNotification:调用下面代码:

7、在AppDelegate里的application:didReceiveRemoteNotification:fetchCompletionHandler:回调方法中调用以下接口

AppDelegate实现协议 UNUserNotificationCenterDelegate,然后在AppDelegate的 userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:回调方法中调用以下接口:

8、在AppDelegate的userNotificationCenter:willPresentNotification:withCompletionHandler:调用下面代码:

3.4 智能客服 AIHelp

需要在游戏的登录页中添加该功能入口,入口名称可以参考使用SDK内置的多语言文件localizable/xx.plist中的wa_sdk_settings_customer_services, 文案内容为已国际化处理”客服”文本。图标效果如下:

图片aihelp

3.4.1. 判断是否开启AiHelp

说明:该接口返回布尔值,true表示已开启,false表示未开启。在使用其他AIHELP接口前请先判断这个接口,在返回true的情况下使用。示例如下:

3.4.2.展示WING后台配置界面

说明:该接口受WING后台中”SDK客服开关V2”控制。如果后台未开启开关,此接口不生效。

3.4.3.获取未读消息数

调用下面接口获取未读消息数


AiHelp客服红点处理建议:
1.为了确保红点状态准确性每次进入AiHelp客服入口所在页面都调用一次该接口,更新AiHelp客服入口的红点状态。比如每次进入游戏登录页,每次进入设置页,都需要调用该接口更新红点状态。
2.当用户点击AiHelp打开客服时,需要移除红点

关于客服入口不同用户说明:
目前游戏放置的AiHelp入口一般有两个,分别在游戏登录页(未进入游戏),和游戏内(一般是设置页),比如下图。

由于AiHelp客服机制限制,在进服前,和进服后的AiHelp客服用户是不一样的,所以他们获取到的未读消息数也是不一样的。
如果研发接入时,在两个位置都有放置AiHelp入口,则两个地方都要分别去获取各自的未读消息数。

图片4

图片5

3.5 用户中心(充值中心账号信息)

v4.6.0开始请忽略该章节,改为接入“客服中心”功能。

需要在游戏中添加该功能入口,一般是在游戏登录页和设置页中,具体入口位置和图标由运营决定。效果参考下图:

账号中心

游戏后台、运营需要如何操作, 参考

3.5.1 判断是否已经开启用户中心

3.5.2 获取用户中心数据接口

3.5.2.1实现协议WAUserCenterNoticeDelegate

WAUserCenterResult说明

字段名 类型 说明 备注
code int 状态码 参照5.1.1 状态码说明
msg string 错误信息
userCenterInfo string 用户中心文字内容
uid string 用户ID
characterId string 充值中心Character ID

3.5.2.2 调用方法

3.5.3 显示用户中心弹窗

3.5.3.1实现协议WAUserCenterNoticeUIDelegate

1)用户中心界面关闭回调接口

2)用户中心界面错误回调接口

3.5.3.2调用方法

3.6 调用评分模块

3.6.1 调用游戏评价窗口

游戏评价窗口用于向用户展示评分提示窗口,弹出后用户可以选择提交好评(即拉起Apple评分),或我要提意见(即打开AiHelp),或不谢谢(即关闭窗口,手势返回关闭同这个操作一样),具体UI可以查看后面的效果图。

 [WAUserProxy openGameReview:block]

注意:
1.如果需要评价完成给用户发放奖励,可以在OpenGameReviewStateOpentReview回调中进行处理
2.该功能受WingSDK后台开关控制,需要打开游戏评价开关
3.评分功能是无法获得用户是否进行评分以及具体评分内容和分值的
4.由于apple评分没有任何回调,无法感知用户操作,目前的OpenGameReviewStateOpentReview回调为点击提交好评按钮后5秒进行回调返回。

示例代码:

Simulator Screenshot - iPhone 14 - 2023-06-03 at 14.50.43


3.7 账号注销

v4.6.0开始请忽略该章节,改为接入“客服中心”功能。

需需要在游戏中添加该功能入口,一般是在游戏设置页中,具体入口位置和图标由运营决定。效果参考下图:

账号注销

3.7.1 判断是否已经开启账号注销

3.7.2 UI 版本

sdk内部已经完成了UI展示,以及请求接口操作,CP只需要调用即可。

类名:WAUserProxy
方法名:requestDeleteAccoutUI
返回值:callback
调用方法:WAUserProxy.requestDeleteAccoutUI

调用示例:

3.8 Consent同意相关

3.8.1 同意通知ID配置

Info.plist的配置如下:
GOOGLE_ANALYTICS_DEFAULT_ALLOW_ANALYTICS_STORAGE NO
GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS NO
GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_STORAGE NO
GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_USER_DATA NO
FacebookAutoLogAppEventsEnabled NO
ConsentNoticeId (运营提供)sdk4.5.0开始, ConsentNoticeId项cp不需要配置

WechatIMG1573

ConsentNoticeId 为Consent后台创建的应用id,具体内容咨询运营人员。

3.8.2 同意界面显示

用户同意界面弹出是内置在SDK初始化逻辑中,当SDK正常初始化完成后,如果需要符合弹出条件,就会展示用户同意界面。

以下情况不会弹出:
1.不在Consent生效地区(一般指欧盟)
2.苹果TTA弹框,用户选择了拒绝
3.用户已经在同意界面操作过同意或拒绝
弹出效果图如下

IMG_3639

3.8.3 打开同意设置

v4.6.0开始请忽略该章节,改为接入“客服中心”功能。

1、需要在游戏中添加该功能入口,一般是在游戏登录页和设置页中,具体入口位置和图标由运营决定。效果参考下图:

打开Consent同意屏幕

2、为了允许用户修改同意状态,需要游戏在添加一个按钮入口,并在用户点击按钮入口时调用下面接口打开同意设置界面。使用WACmpProxy.checkConsentPreferences(WACallback callback)方法来控制同意设置按钮的显示和隐藏。如果不在生效地区(一般指欧盟),回调结果会返回false,此时应该隐藏按钮,否则返回true则需要显示

3.用户点击入口按钮时调用下面接口打开同意设置界面

注意:如果不在生效地区(一般指欧盟),调用该接口不会有任何反应。

弹出效果图如下:

IMG_3640


3.9 AdMob功能

3.9.1 配置

iShot_2024-06-25_14.10.41

a、在Info.plist文件中,添加key为GADApplicationIdentifier,value为对应AdMob的应用ID,具体值从运营处获取
b、在Info.plist文件中添加key为SKAdNetworkItems ,Array类型,具体值为

3.9.2 激励广告

3.9.2.1 判断激励广告是否开启

如放激励广告,需要先判断是否开启,如未开启,则需要隐藏激励广告入口

参数说明:

参数名 类型 必填 说明 备注
adName NSString N 广告名称,从运营处获取,SDK会根据ad名称展示对应的广告

3.9.2.2 展示激励广告

在页面中展示激励广告,用户看完广告后会通过后台进行奖励发放。
如果广告还未准备好,会立即开始请求广告并显示loading转圈,等广告加载完成后会立即展示,或者加载失败直接返回回调。

参数说明:

参数名 类型 必填 说明 备注
viewContoller UIViewController Y 显示广告的UIViewController
adName NSString N 广告名称,从运营处获取,SDK会根据ad名称展示对应的广告
extInfo NSString N 透传参数,该参数内容会在通知游戏发货时一起给到游戏服务器,长度限制为100个字符
delegate GADFullScreenContentDelegate N 广告结果回调
1.显示广告失败:didFailToPresentFullScreenContentWithError
2.显示广告成功:adWillPresentFullScreenContent
3.广告关闭:adDidDismissFullScreenContent

示例代码:

失败处理建议:可以在广告显示的didFailToPresentFullScreenContentWithError回调失败中提示用户,广告暂不可用,稍后再试

3.10 客服中心

客服中心已经包含账号管理、账号注销、AiHelp客服、用户中心、Consent设置功能入口,可以通过SDK后台配置进行显示控制。
效果如图:

b45b8c872b482c829b78e4d678272511

需要在游戏的设置页中添加该功能入口,入口图标和名称可以参考代码获取。

文案内容为已国际化处理”客服中心”文本,图标效果如下:

图片13

调用下面接口弹出客服中心弹窗

WACustomerResult说明:

参数名 类型 必填 说明 备注
operationType WACustomerOperationType N 操作类型(标记当前回调对应的业务)
WACustomerOperationTypeDeleteAccount,  // 删除账号申请
WACustomerOperationTypeNewAccount,     // 新建账户
WACustomerOperationTypeSwitchAccount,  // 切换账户
WACustomerOperationTypeBindAccount     // 绑定账号
error NSError N 错误信息(非空表示操作失败
deleteStatus NSUInteger N 账号删除状态(仅 operationType 为 WACustomerOperationTypeDeleteAccount 时有效
loginResult WALoginResult N 登录结果(仅 operationType 为 WACustomerOperationTypeNewAccount/WACustomerOperationTypeSwitchAccount 时有效)
bindingResult WABindingResult N 绑定结果(仅 operationType 为 WACustomerOperationTypeBindAccount 时有效

接口调用示例:

3.11 社交功能

3.11.1 获取三方平台账号信息

获取第三方平台的账号信息,包括头像,昵称,平台信息。
注意:当前只有Facebook登录后才返回信息,其他平台返回error

调用方法:

返回对象WAPlatformAccountInfo说明:

字段名 类型 说明 备注
nickname NSString 三方平台昵称 无该信息时返回空字符串
picture NSString 三方平台头像地址 无该信息时返回空字符串
platform NSString 平台名称

示例代码:

3.11.2邀请活动功能

3.11.2.1 配置

1、添加Associated Domains

图片1

添加Domains,格式为applinks:subdomain.onelink.me,子域名从运营出获取,如子域名为sdk2.onelink.me,则填写applinks:sdk2.onelink.me

图片2

2、URL types 配置

在URL Schemes中,增加waol(固定4个英文字母)+SdkAppId,比如SdkAppId为f7f9a9d18da611e5a0be000d3a906774,则scheme应该是waolf7f9a9d18da611e5a0be000d3a906774

图片3

3.11.2.2 分享邀请链接

调用方法:

参数说明:

字段名 类型 必填 说明 备注
shareType int Y 分享方式:0-系统分享;1-Facebook分享
block (void (^)(NSError* error)) completeBlock Y 结果回调

示例代码:

3.11.2.3 获取已邀请人数

邀请链接分享给目标用户后,目标用户需要达到设定的条件(一般是触发完成新手任务事件)才会被统计到已邀请人数中。

调用方法:

示例代码:

3.12 月卡功能

3.12.1.获取月卡信息

调用方法:

月卡信息WAPassPlatformInfo说明:

字段名 类型 说明 备注
passStatus int 月卡状态:0-未激活;1-已激活
subscribeStatus int 订阅状态:0-非连续订阅;1-连续订阅
passExpireTimestamp long 月卡过期时间戳,单位毫秒
passExpireDays int 剩余多少天过期

示例代码:

3.12.2. 月卡用户指引弹框

调用方法:

示例代码:

4 第三方配置


4.1 Facebook相关配置

4.1.1 Facebook基本配置

游戏如需使用Facebook相关登录、社交、数据收集功能,需要进行以下配置。如果不需要相关功能,请忽略此章节
具体配置请参考第三方后台配置—iOS版 二、Facebook第三方登录后台配置
1、在facebook开发者平台创建一个Facebook应用,创建完之后会生成App ID和App Secret
这里的App ID要配置在项目当中,作为客户端与后台服务器连接的标识
iOS-Facebook基本配置

WechatIMG2238

注:需要配置FacebookClientToken,运营获取方式:设置-高级-客户端口令。

2、在Xcode中配置相应的信息,主要是在info.plist文件中配置URL Schemes(格式为fb+FacebookAppID,如FacebookAppID为1281771621973222,则需要配置为fb1281771621973222)、FacebookAppID、FacebookDisplayName、FacebookClientToken。注意一定要对应到facebook后台该App的App ID和Display Name、FacebookClientToken。参考步骤1的截图。

3、其他配置
(1)Whitelist Facebook Servers for Network Requests
在info.plist增加下面配置

(2)Whitelist Facebook Apps

4.2 APPLE相关配置

4.2.1 Game Center登录有关

如需Apple登录(Game Center),则需要配置:
打开 Xcode 项目,选择项目的 Target,在 Signing & Capabilities 选项卡中,点击 “+” 添加 Game Center 功能
未命名 8

4.2.2 Sign in with Apple登录有关

开发打开xcode工程,选择TARGETS–Signing&Capabilites-+Capability,弹出列表中,选择Sign in with Apple即可

未命名 8

未命名 8

4.2.2 Apple后台配置

游戏如需使用APPLE账号进行登录、APPLE商店进行支付,需要进行以下配置。 如果不需要使用APPLE相关功能,请忽略此章节

具体配置请参考第三方后台配置—iOS版 一、Apple后台应用配置

4.3 Appsflyers 相关配置

游戏如需使用Appsflyer相关数据收集功能,需要进行以下配置。如果不需要相关功能,请忽略此章节

4.3.1 数据收集配置(研发)

详见 配置 (wa_sdk_track_config.plist)
appsflyer 的DevKey获取方式参考:获取AppsFlyer的DevKey

4.3.2 Info.plist(研发)

在Info.plist文件中,增加key为NSAdvertisingAttributionReportEndpoint,value为https://appsflyer-skadnetwork.com/

效果如下图:

未命名 7

4.3.3 Appsflyers卸载检测(市场人员)

导出App推送证书p12文件,进入appsflyer后台–配置-应用配置-卸载模块
上传p12证书与密码,点击验证。开启卸载衡量开关
图片1

4.4 智能客服 AIHelp 相关配置

如果不需要AiHelp 功能,请忽略此章节
具体配置请参考WINGSDK第三方后台配置-智能客服 AIHelp 相关章节

4.4.1 info.plist 配置

在AiHelp开发者平台创建一个AiHelp应用,创建完之后会生成appId、domain

未命名

1、info.plist中在添加为对应appId、domain
注意:4.8.0以及以后版本,此项可不用配置

2、info.plist 中添加 PHPhotoLibraryPreventAutomaticLimitedAccessAlert 配置,并将其设置为 YES

未命名 5

3、 PhotosUI.framework添加
在 Xcode 的 TARGETS > Build Phrases > Link Binary with libraries 下添加 PhotosUI.framework 系统库

未命名 6

4.4.2 配置使用相册权限

Info.plist 中新增 key: Privacy – Photo Library Usage Description ,value 填写使用 相册的 原因。其中原因将展示给用户。参考文案:Would Like to Access Your Photos

未命名

4.5 Firebase相关配置

如果不需要Firebase 功能,请忽略此章节
具体配置请参考WINGSDK第三方后台配置-Firebase相关章节

4.5.1 Info.plist配置

在Info.plist文件中,增加FIREBASE_ANALYTICS_COLLECTION_ENABLED配置项,值设置为NO

未命名 7

4.5.2 接入

1、引入WAFirebaseImpl库到项目
2、引用GoogleService-Info.plist配置文件到项目中
图片27

Firebase SDK会自动收集事件,详情请参考:Firebase自动收集事件
完成以上两个步骤,即完成Firebase 模块的接入工作

4.5.3 调试

firebase analytics调试方法
1、在xcode中,选择Product > Scheme > Edit scheme…
2、在左侧菜单选择Run
3、选择Arguments 项
4、在Arguments Passed On Launch区域,添加-FIRAnalyticsDebugEnabled -FIRAnalyticsVerboseLoggingEnabled

未命名 2

5、运行项目后,登录firebase 管理后台,项目—分析—DebugView模块,可查看到调试设备上传事件
图片27

5 不常用功能

不常用功能

6 附录

6.1 代码说明

6.1.1 状态码说明

SDK所有的状态码都定义在枚举WACode中,详见下表:

枚举名称 取值 说明
WACodeSuccess 200 成功
WACodeError 400 错误
WACodeUnautherized 401 请求未认证:访问受限资源是缺少认证信息,或者认证未通过
WACodeForbiden 403 禁止访问:由于应用上下文原因或请求端上下文的原因被禁止访问资源,例如IP限制等
WACodeNotFound 404 找不到被访问资源:接口不存在、页面不存在或对应的业务实体找不到
WACodeServerError 500 服务器内部故障
WACodeApiInvalid 501 所请求接口或页面未实现
WACodeSdkAppIdInvalid 4010 无效appId: appId不存在或未开启
WACodeSignError 4011 无效osign:osign校验失败
WACodeRequestTimeOut 4012 请求已过期:ots校验失败
WACodeAccountVerifyError 4013 第三方平台验证失败
WACodeAccountVerifyError 4014 访客登录验证失败,登录验证失败
WACodePlatformBoundAlready 4015 用户已经绑定了这个平台的其他账户
WACodePrePlatformVerifyError 4016 prePlatform验证失败
WACodeUserNotFound 4017 用户不存在(没有找到)
WACodeAccountBoundByOthers 4018 账户已经被其他用户绑定
WACodeOrderIdInvalid 4019 无效orderId
WACodeOrderVerifyError 4020 订单验证失败
WACodeRewardNotFound 4021 FB邀请奖励事件未找到奖励政策
WACodeRepeatCrashReport 4022 闪退发送报告重复
WACodeChannelNotFound 4023 未找到渠道信息
WACodeCanNotUnbind 4024 不可以执行解绑操作
WACodeExchangeRateConversionFailure 4025 汇率转换失败
WACodePayPlatformClosed 4026 支付渠道已关闭
WACodeLoginPlatformClosed 4029 登录渠道已关闭
WACodeBindAccountClosed 4048 账号绑定关闭
WACodeUnBindAccountClosed 4049 账号解绑关闭
WACodeUserCenterClosed 4059 用户中心未开启
WACodeCanNotSwitchToAnonymous 5001 切换到匿名
WACodeFbObjectType 5002 facebook的objectType不能为空
WACodeFbGiftListRequestPrameterLack 5003 请求gift列表缺少appid,appSecret,objectType参数
WACodeFbTokenNull 5004 facebook token为空
WACodeCanNotMakePayment 5005 该设备不能支付或者不允许支付
WACodePaymentError 5006 支付过程中出错
WACodeCancelled -100 取消操作
WACodeSdkUninitialized -200 SDK没有初始化
WACodeContentCanNotBeShared -201 内容不可分享,一般是传入的内容为空,或者其他
WACodeNotLogin -202 没有登录
WACodeLoginFailure -203 登录失败
WACodeNoPermission -204 登录没有获取到相应的权限
WACodeFileSizeLimit -206 文件大小超出限制
WACodeCurrentIDNotMatch -211 登录的平台账户和当前用户不匹配
WACodeDeviceNotSupported -401 设备不支持
WACodeNetworkUnavailable -402 网络不可用
WACodePayReOrderTimeLimit -509 支付:订单时间间隔限制(在特定的时间内重复下订单)

6.1.2 平台取值

常量 取值 备注
WA_PLATFORM_WINGA WINGA WA平台,手机和邮箱登录
WA_CONSTANT_GUEST GUEST 游客登录
WA_PLATFORM_APPLE APPLE APPLE平台
WA_PLATFORM_FACEBOOK FACEBOOK Facebook平台
WA_PLATFORM_VK VK VK平台
WA_PLATFORM_GHG GHG_INTEGRATION Game Hollywood Games平台
WA_PLATFORM_R2 R2_INTEGRATION R2Games平台
WA_PLATFORM_APPSELFLOGIN APPSELF 应用内登录

6.2 事件说明

6.2.1 SDK 预定义事件名

静态变量名称 事件名称 说明
WAEventInitiatedPurchase ghw_initiated_purchase 点击购买
WAEventPurchase ghw_purchase 购买完成
WAEventUserCreate ghw_user_create 创建角色
WAEventUserInfoUpdate ghw_user_info_update 更新用户信息
WAEventUserImport ghw_user_import 导入用户
WAEventTaskUpdate ghw_task_update 玩家任务统计
WAEventLevelAchieved ghw_level_achieved 等级或分数

6.2.2 SDK 预定义参数名

参数意义 类型 备注
货币类型 currencyType Stirng 货币类型:如美元USD,人民币CNY详见货币表
现金额 currencyAmount Int
价钱 price Double
道具类型 ContentType String
道具ID contentId Stirng
搜索内容 searchString Stirng
成功失败 success Bool 0表示失败
1表示成功
是否可获得 ghw_payment_info_available Bool 1表示可获得,
0表示不可获得
物品数量 itemAmount Int
物品id itemId Stirng 道具id
物品名称 itemName Stirng 道具名称
是否为第一次导入 isFirstEnter Int
得分 score Int
描述 description Stirng
性别 gender int 性别(int):
0表示女,
1表示男,
2表示未知
年龄 age Int
账户类型 accountType Stirng
设备id deviceId Stirng
渠道id channelId Stirng
广告标识 idfa Stirng
交易流水号 transactionId Stirng
支付类型 paymentType Int 0表示google支付,
1表示apple支付,
2表示赠送
虚拟游戏币 virtualCoinAmount Int
道具名称 iapName Stirng
道具数量 iapAmount Stirng
道具id iapId Stirng
注册时间 registerTime String 时间戳(从1970年开始)
任务id taskId String
任务名称 taskName String
任务类型 taskType String
任务状态 taskStatus String 状态标识:
1->领取任务,
2->开始任务,
3->待领奖(任务完成),
4->已领奖
角色名称 nickName String
vip等级 vip Int
状态 status Int 状态标识,-1: 锁定,1:未锁定
游戏角色Id gameUserId String
角色类型 roleType String
绑定钻石 bindGameGold Int
用户钻石数 gameGold Int
战斗力 fighting Int
货币类型 goldType String 货币类型(string) 钻石,绑定钻石,金币,军魂等。预定义有1和2:
1:游戏货币;
2:游戏绑定货币
变更途径 approach String
当前货币数量 currentAmount Int 用户变更以后该种货币的数量
变更货币数 amount Int

UWingSDK(Android)不常用功能

wapublisher No Comments

1 AdMob广告

1.1 判断是否开启奖励广告

调用方法:

参数说明:

参数名 类型 说明 备注
adName String 广告名称,SDK后台配置的广告名称 具体值从运营处获取

1.2 展示激励广告

接口效果:
点击“通知发货”,输入奖励物品ID后点击确定,游戏提供的激励广告奖励通知接口将收到通知发货信息,游戏服务端需要按照接入文档要求完成发货

图片6

调用方法:

参数说明:

参数名 类型 说明 备注
activity Activity 当前 Activity
adName String 广告名称,SDK后台配置的广告名称 具体值从运营处获取
extInfo String 额外信息,可用作透传,比如透传礼包ID 该参数随广告奖励通知接口传递给游戏服务端,长度限制为100个字符
callback UWAdMobAdsCallback 广告回调

UWAdMobAdsCallback广告回调说明:

方法 说明
onAdShowed() 广告页面成功显示
onAdDismissed() 广告页面关闭
onAdFailed(String error_message) 广告加载失败

示例如下:

测试发货:具体查看《CP接口测试》章节中的 《AdMob激励广告通知接口》