sdk前置服务器 设备和商户信息不匹配,豌豆荚融合SDK接入常见问题

豌豆荚融合SDK接入常见问题

注意:

1、如您的游戏在豌豆荚平台上过线,则需要接入豌豆荚融合SDK提审豌豆荚包;新游无需接入豌豆荚融合SDK。具体可直接从游戏提包页面查看是否有提豌豆荚包入口,有则需要接豌豆荚SDK。

2、豌豆荚融合SDK下载地址:https://game.open.uc.cn/document/doc/detail/15

一.客户端

1.初始化相关

1.1 调用初始化接口后没有报错,但收不到任何回调

①需确保在调用初始化接口的activity内设置registeSDKEventReceiver

②需确保初始化接口以及回调事件在UI线程执行

③请检查manifest组件:cn.gundam.sdk.shell.activity.ProxyActivity 是否未配置,若无,请补齐

④请自行反编译apk对比SDK包内的此SDK资源目录是否完整无缺漏:assets/ucgamesdk/lib ,如有缺漏,请完整地重新拷贝SDK资源

⑤请反编译检查manifest是否有空的android:taskAffinity="",如有,请删除

⑥如游戏接入的SDK版本为6.0.9.5,请确保targetSDKverison不要超过26,SDK最高仅支持到26

⑦请确保没有重复写入同一个回调事件

⑧请检查游戏设置的监控回调是否存在问题而无法正常执行

⑨需确保游戏代码是否有做混淆,如有请根据文档加入keep代码保持SDK相关不被混淆

1.2 调用初始化接口,同一设备偶现无法收到初始化成功回调,游戏运行过程中手机调出后台看到同一个游戏有2个后台应用

请检查游戏manifest内是否有个空的android:taskAffinity="",直接删掉即可

1.3 调用初始化接口失败,log报错“公钥更新失败”

①检查初始化是否使用debugMode=true测试环境,如是,请修改为false生产环境,测试环境已经下线后续无法使用

②切换稳定的网络环境

2.登录相关

2.1 初始化成功后,调用登录接口无响应

①请确认已收到初始化成功回调,初始化失败情况下不可调用登录接口,请处理 ②如果接的是6.0.9.5版本SDK,请确保targetsdkversion不可超过26

③请确认登录接口在UI线程上执行

3.支付相关

3.1 豌豆荚融合SDK支付接口是否有取消支付回调、充值成功回调?

①豌豆荚融合SDK客户端支付接口没有支付取消回调、也没有充值成功回调。请游戏不要设置提示用户支付已取消、或已支付成功的逻辑。

②豌豆荚融合SDK客户端支付回调仅有下单成功回调(SDKEventKey.ON_CREATE_ORDER_SUCC) 和 支付界面关闭回调(SDKEventKey.ON_PAY_USER_EXIT),在充值界面跳转支付方式界面后就接收到下单成功回调。 但并非支付成功。用户可能继续支付,或取消订单。当同时接收到这两个回调后,客户端主动请求服务端,查询服务端支付回调结果来控制发奖。

3.2 调用支付接口无法调起支付界面,log报错:invalid_payinfo

此报错为支付接口下单sign参数有误。SDK会自动将支付接口传递的参数加签生成一个sign,然后和支付接口传递的sign值进行比对,比对结果不一致,就会报错。

具体排查方法如下:

①.把客户端传递的参数打印出来

SDKParams sdkParams = new SDKParams();

System.out.println("支付参数============="+sdkParams.toString());

②.把服务端加签生成sign的原始串打印出来

③.对比客户端日志和服务端原始串,加签的参数和值必须一一对应,不可多或少字段,不可缺漏,以及检查加签是否符合以下要求:

(1)sign签名的规则要求:MD5(签名内容+apiKey)是否正确

(2)apikey为游戏在开放平台-SDK接入参数那里获取的apikey,不要使用豌豆荚的参数,对应好每一款游戏

(3)签名内容要求将所有传递的参数参数名称key按照字典顺序排列(a-z),值为空串需参与签名,值为null的参数不需要参与签名, sign和signType也不参数签名

(4)签名内容不应包含“&”符号,拼接签名内容时需把“&”符号剔除

(5)accountId需传递当前进入账号进入游戏后服务端验证会话verifySession返回的accountId,此为用户唯一标识,不可传sid或其它

(6)签名示例:accountId=123452132amount=100.00callbackInfo=xxxxxcpOrderId=XXXXXXgrade=12notifyUrl=http://192.168.1.1/notifypage.do123456

(如apikey:123456,客户端支付接口传递的参数,均需要加签拼接进去。如游戏没有必要传递的参数,可不必在客户端传递,减少加签拼接难度)

④.请不要对rolename字段进行加签,因考虑到游戏支持特殊字符的昵称,两边加签结果会不一致,可直接不对这个字段进行加签,九游兼容客户端传递roleName但加签时rolename参与和不参与加签的2种结果情况。

3.3 调用支付接口无法调起支付界面,log报错:cn.uc.gamesdk.wdj.pay.uc.util.SDKError: Signature occur error!

豌豆荚支付需要用到pay.png支付秘钥图片,请确保有配置且未被修改格式和大小,或图片未使用其他游戏的图片。请重新到开发者后台-接入参数重新获取,放置在assets/UCPaySDK/pay.png目录下。

4.退出相关

4.1 游戏必须要调用SDK退出接口吗?有什么要求吗?

①游戏必须要调用SDK退出接口:exit(activity,params)

②需要在物理返回键调用,以及如果游戏内设置等功能内有设置退出游戏按钮,也需要调用SDK退出接口来退出

③SDK退出仅退出SDK,游戏资源需要自行在收到SDK退出成功回调内进行清除,否则二次启动游戏可能会闪退等:

@Subscribe(event = SDKEventKey.ON_EXIT_SUCC)

private void onExit(String desc) {

Toast.makeText(GameActivity.this, desc, Toast.LENGTH_SHORT).show();

GameActivity.this.finish();// 退出程序Intent intent = new Intent(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_HOME);

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(intent);

android.os.Process.killProcess(android.os.Process.myPid());

}

4.2 游戏在新手阶段或者游戏过程中,游戏的设计上就不允许操作返回键退出游戏,还需要调用退出SDK接口吗?

这种情况不需要调用SDK退出接口。 SDK退出接口是在返回可以大退到桌面的任何情况下,都需要调用SDK退出接口(除强制kill外)。

5.强更相关

5.1 游戏需要更新版本并做强更,请问需要如何操作

①豌豆荚融合SDK有强更功能,如需要使用SDK强更,请提升游戏版本号后在提审界面选择SDK强更,过审后根据填写的强更时间自动生效,无需游戏处理,且请确保游戏不在SDK初始化执行前弹出任何提示拦截,避免无法正常SDK强更

②如游戏想自己走内置强更,请在游戏过审后,于提审页面获取过审新包回链提供给游戏技术配置游戏内置强更并做验证

6.Manifest相关

6.1 Manifest上的全部权限是否均需要添加?

是的。文档上提到的均为SDK需要用到,请全部正确地添加。

二.服务端

1.登录相关

1.1 服务端接口-用户会话验证sid接口,报错返回:{"state":{"code":10,"msg":"请求校验的gameId与客户端的gameId,权限受限"},"id":1575968856,"data":{}}

客户端SDK初始化接口传递的gameId参数和sid校验接口传递的gameId不一致,请把参数日志打印出来自行检查

2.支付相关

2.1 支付成功后,游戏服务器没有收到豌豆荚融合SDK的回调通知

①请检查是否在客户端支付接口写入了回调地址notifyurl ,如有,优先回调到客户端写入的回调地址,而不会回调到后台配置的回调地址。 如不需要客户端回调,请直接删除

②后台配置地址成功后,需要半个小时后才生效

③可通过后台 “签约结算-支付详单” 找到对应订单信息,点击“明细”,下拉最后找到“通知CP地址”以及“通知描述”来查看当前订单通知地址以及游戏服务器响应的结果。 可手动操作补发来进行调试

④如通知描述写的是“查询不到用户的统一账户信息,延迟通知CP”,是因为下单的九游账号没有调用服务端接口1.3.1用户会话验证接口来生成对应的账号唯一标识accountId,请先调用此接口校验成功后,再进行支付测试。

2.2支付成功后,游戏服务器收到豌豆荚SDK的回调通知后无法正常解析

SDK回调请求内容均在body内,请正确获取body内容。例如:http_get_request_body:http://php.net/manual/it/function.http-get-request-body.php。具体请根据游戏使用的语言来处理。

三.其他

1.包名相关

1.1 豌豆荚正式包包名要求

①已经上过线的老游,包名和之前提审的正式包包名保持一致,无需更改后缀,亦不允许更换包名,否则无法覆盖老用户的旧包

②新游包名使用.wdj后缀,前缀无要求,游戏自定义即可,例如:com.abc.def.wdj

2.签名相关

2.1 提审后是否会对游戏包进行二签(重签)

接入豌豆荚融合SDK的包平台不会进行重签。

3.targetsdkversion相关

3.1 targetsdkversion目前最高支持到多少?最低支持到多少?

豌豆荚融合SDK6.0.9.5版本targetsdkversion目前最高仅支持到26,请不要设置高于26,否则强制打回。

应《移动应用软件高API等级预置与分发自律公约》要求,九游平台已强制游戏最低targetsdkversion=26。

4.角标相关

4.1 豌豆荚包角标要求是什么

豌豆荚包不需要配置任何角标

5.第三方SDK接入相关

5.1 游戏是否可以使用其他第三方接入SDK例如易接SDK、quickSDK等来接入豌豆荚融合SDK?

不可以!并且游戏包内有任何残留其他第三方接入SDK的代码、文件夹等均不可以过审,请彻底删除。

6.回调地址相关

6.1 豌豆荚融合包的回调地址可以和九游包不一致怎么办?后台有多个配置回调地址的地方吗?

①后台只可以配置一个回调地址,如果九游包和豌豆荚包使用同一个回调地址,则后台配置一个回调地址即可②如果九游包和豌豆荚包回调地址不一致,则选择其中一个包在包内客户端支付接口传递当前包需要用到的回调地址即可,另外一个包可走后台配置地址,也可在另外包内客户端配置当前包的回调地址③建议尽量走后台配置回调地址,避免后续回调地址更换时需要换包才生效,效率不高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值