360SDK FAQ

2018-10-10 12:44 更新

1.网游sdk接入FAQ


1.1 登录FAQ

Q1:登录报错invalid param appid 400c

blob.png

A1:后台加白机制,出现该页面后请等待10分钟后加白完成,就可以恢复。并且不会在出现该问题。此类报错一个应用只会报错1次。如10分钟后还会报错,

请确定一下问题

<meta-data android:name="QHOPENSDK_APPID" android:value="201994551"/>
<meta-data android:name="QHOPENSDK_APPKEY" android:value="694a05558e1e8ab4cbbc0f89de22834b"/>
<meta-data android:name="QHOPENSDK_PRIVATEKEY" android:value="04daccefc14033ed3d18f157a9f6d1d8"/>

这3个字段的位置不对,必须再application里面,作为application的子元素存在。

如果还有此报错,请联系360技术人员,或者对接游戏运营。


Q2:{"error":"auth code不可用(OAuth2)","error_code":"4010203"}

A2:去掉CODE换TOKEN的部分,直接接收TOKEN 获取用户信息就行了


Q3:返回{"error_code":"4010201","error":"access token不可用(OAuth2)"}

A3:这个是TOKEN过期了,TOKEN作废了,重新登录即可。




Q4:TOKEN指的是什么意思?

A4:开放平台颁发的TOKEN指的是access_token和refresh_token,access_token是调用所有接口的token,refresh_token只有一个作用,就是用来刷新access_token和自身(refresh_token),默认情况下说token,指的是access_token。


Q5:使用TOKEN调用服务器端接口时失败, 显示TOKEN已失效或者过期

  • 检查用户是否在线很长时间, 以至于TOKEN失效. 这样的话需要刷新TOKEN或者引导用户再登录一下 (目前,一次TOKEN时效10小时)

  • 检查用户是否在多台设备上用同一账号多次登录. 只有最后一次的TOKEN是可用的

  • 上述两个都不是, 联系360开放平台手机SDK技术支持.


Q6:报错:请到开放平台获取您的appid

blob.png

A6:需要在AndroidManifest.xml中配置QHOPENSDK_APPID。


Q7:调用了sdk的登录接口,但是sdk的登录界面没有弹出来,而是直接通过回调返回了这样的json串:{"data":{"state":"test_state111","access_token":""},"errno":-1}

A7:把“可选参数:自动登录过程中是否不展示任何UI”这句代码去掉。


Q8:Activity初始化未完成,浮窗无法显示

A8:请排查以下3点

  • 未接入销毁方法Matrix.destroy()

  • Matrix.init(Activity activity) 未传入主activity,常驻的activity

  • activity的oncreate被多次调用,或360SDK的初始化接口被多次调用


Q9:getAccessToken onError

A9:登录验证出错,服务器地址配置错误


1.2 支付FAQ

Q1:关于支付回调问题:

  • 支付回调地址:回调地址需要研发同学自己配置,为安全起见,支付回调地址不在后台填写,请在调用支付接口时填写notify_url字段。详情见接入文档支付接口部分。

  • 支付未收到回调:先保证支付通知接口是可访问的. 在浏览器上访问一下就知道了. 用  IP地址的话注意不要是内网IP记录完整的请求日志, 把未经处理的请求参数串, 记在日志里. 直接回应ok.

  • 修改回调地址:客户端在下单时,传入新回调地址就可以。

  • 支付400错误:400错误都是因为参数缺少或者APP KEY / APP SECRET值不对,解决方案对照文档看缺什么参数。

  • 支付401错误:不要通过程序去请求 而是在服务器上直接CURL查看返回的原始错误。


Q2:关于签名:

  • 客户端:如果是客户端报 invalid Signature,或者签名错误之类。 请检查客户端的appKey和privateKey是否匹配。 以及privateKey是否正确计算(md5(appSecret+'#'+appKey))。 具体计算方式也请参考文档。

  • 服务端签名不对:重点检查2个方面的问题: 1) 请确保加密使用的是当前应用的appSecret,和客户端private Key不一样。  2) 加密时是否计算了不必要的参数,比如应用自己在链接中定义了额外的参数。具体哪些参数参与签名请参考文档。 Demo代码仅供参考。



Q3:变更测试的回调地址,在平台游戏管理中心的编辑与更新没有找到界面,要如何操作?

A3:客户端在下单时,有个回调地址参数。 传入新回调地址就可以。

 

Q4: 关于 360先玩后付 这种支付方式,信用余额的问题。

A4:mo9是信用支付,就是先消费,后还款,每个用户初始信用额度一般为30块钱,支付过一次之后,要在一周之内还款,否则有可能会被拉黑,造     成下次用mo9支付时显示信用额度不足。可以联系360技术支持人员查询信用额度问题。


Q5:支付这块,服务端的PayAppInterface接口里的isValidOrder方法是必须的吗?

A5:这个是Demo里的代码,是为了检查返回值是否正确,这个需要开发者自己决定用不用


Q6:报错:app_uid is needed 

A6:以下参数有缺失:APP_NAME,APP_USER_NAME,APP_USER_ID,APP_ORDER_ID


Q7:余额查询失败

A7:余额查询失败先看下能不能用支付宝下单。 只测试下单,不用支付。 如果下单报签名错误,请检查客户端privateKey是否正确。


Q8: 为什么登录是好用的,但是支付功能却无法正常使用

A8: 出现这种情况,请首先检查Mainifest.xml文件中,PRIVATEKEY是否已经正确的配置。

    <meta-data   android:name="QIHOO_SDK_PRIVATEKEY"   android:value="4e04fe9ac8e2a73cbb27ba52ac076eb9" > </meta-data>.



Q9:

blob.png

A9:access token失效,token有效期为10小时,若用户在线时间过久需游戏引导用户重新登陆,重新进行支付步骤。


1.3 社交FAQ

Q1:究竟哪些好友是可以邀请的?

A1:手机游戏SDK会根据用户的本地通讯录、360游戏平台中其他社交游戏中的好友进行计算,返回给用户那些是可以邀请的好友。friendship.png

blob.png


Q2:好友已经收到了我的邀请短信,在游戏中为什么没有成为好友?

A2:短信发送成功后,SDK会向360的邀请服务发送“邀请短信已经发送成功”的消息;如果这个时候网络状况不佳时,就会出现邀请失败的情况;     即使被邀请收到短信,好友关系依然没有建立。建议开发者根据接口返回结果来提示用户邀请是否成功。

    FUNC_CODE    接口

    FUNC_CODE_INVITE_FRIEND_BATCH   邀请好友接口返回结果示例

    {   errno: 0,   errmsg: "ok",   time: 1363155828,   data: {    status: "1" //0:邀请失败,1:邀请成功   } }

 

 

Q3:除了默认的排行榜,游戏方如何自定义游戏的排行榜。

Q3:游戏可以定义多个不同排行榜,在上传对应排行数值的时候指定对应排行榜id即可(最多自定义10个排行榜,id为1~10)。

   游戏自定义的排行榜需要者发邮件到360box@360.cn提交申请游戏的资料。包括:“游戏名称”“游戏包名”“appid”“排行榜编号”“更新频率”“每天更新时间(精确到秒)”“起止时间”“默认排序(升,降序)”例如

邮件标题
游戏添加自定义排行榜  游戏名“某某游戏”
邮件正文:
游戏包名:“xxx.xxxx”
appid:XXXXXXXXX
排行榜编号:3(1-10)
更新频率:每周
每天更新时间:00:00(精确到秒)
起止时间:2014.11.1
默认排序:降序排列(升,降序)


1.4 数据FAQ

Q1:支持哪些数据统计?

A1:目前可支持开发者自定义数据统计:如关卡、道具、任务、玩家、角色统计等。


Q2:接入过程中有什么需要特别注意的?

  • .需在应用“启动Activity”的onCreate方法中调用Matrix.init(this);

  • 若应用退出时调用了android.os.Process.killProcess(android.os.Process.myPid())或System.exit(0) 方法,则需在调用这两个方法前调用QHStatDo.OnExit()方法,确保数据不丢失,能正常上报。 
     

Q3:在哪里可以查到统计结果?

A3:由于统计平台仍在限量测试中,“联运游戏”查看统计结果需要联系对应运营负责人。 


1.5 推送FAQ

Q1:360推送服务有哪些优势?

  • 多达15种标配推送维度且支持开发者自定义推送维度。

  • 优异的不同接入网络连接自动设配能力,消息的实时到达率业内领先 

  • 采用优于竞品的SDK双服务绑定架构,支持多路复用,节约用户流量和电量


Q2:目前支持哪些维度的推送消息?

A2:可根据应用版本、用户自定义标签、用户所在地、活跃度、应用投放渠道、运营商、网络接入类型、设备机型、品牌、屏幕分辨率、系统语音、版本、用户百分比、360用户画像及开发者自定义共15个维度进行推送。
 

Q3:在哪里可以进行推送操作?

A3:由于360推送仍在限量测试中,我们将逐步对所有开发者开放,请您关注360开放开放平台的消息和公众账号,获取最新进展。 


1.6 其他FAQ

Q1:自检显示assets下资源丢失如何处理?

  • 不要混淆、不要加固,重新自检

  • 没有把assets下的文件拷贝到工程assets下

  • 请将Unity、Cocos工程先导入Eclipse,使用Eclipse出包

  • 请将编译环境调到Android-22,4.4以上


Q2:token去换qid,必须是开发者的服务器去换么?开发者时候可以客户端发个HTTP请求换呢?

A2:如果没有服务器可以这么做,但为了帐号安全,最好是从服务端发起。

 

Q3:服务端签名不对的情况?请按照以下说明检查。

A3:签名不对,重点检查2个方面的问题: 

    1) 请确保加密使用的是当前应用的appSecret,和客户端private Key不一样。

    2) 加密时是否计算了不必要的参数,比如应用自己在链接中定义了额外的参数。具体哪些参数参与签名请参考文档。 Demo代码仅供参考。

 

Q4:客户端签名不正确,请按以下方法检查

A4:如果是客户端报 invalid Signature,或者签名错误之类。 请检查客户端的appKey和privateKey是否匹配。 以及privateKey是否正确计算                           (md5(appSecret+'#'+appKey))。 具体计算方式也请参考文档。


Q5:悬浮窗在什么情况下会消失掉,已经调用atrix.destroy()方法

A5:退出游戏之前要调用,浮窗消失是SDK 判断游戏没有运行在前台才会消失

 

Q6:1.0.4版本是否可以设置背景。

A6:UI_BACKGROUND_PICTRUE这个参数是改背景的。bundle.putString(ProtocolKeys.UI_BACKGROUND_PICTRUE, "");这样设置会显示默认背景。

 

Q7:游戏退出的返回按钮

A7:只有返回值为0的时候不需要做操作,其他情况都要执行退出游戏。

 

Q8:接入sdk退出出现了问题,出现退出弹窗后点退出游戏,调用了android.os.Process.killProcess(android.os.Process.myPid()); 退出游戏,结果游戏直接重启?

A8:在退出回调后,调用 killprocess 游戏重启的问题,要在killprocess之前调用 finish() 方法.


2.单机sdk接入FAQ

Q1:单机SDK是否支持登录及登录用户信息获取功能?
A1:V0.1.3(9014)及之前版本不支持登录功能;V0.1.4(9016)版本支持登录功能,但登录不返回用户个人信息,仅在用户进行联网支付时向应用服务器返回用户登录信息,不支持单独获取用户登录信息;V0.1.4(9018)版本支持登录及用户信息获取。


 

Q2:50元等大额商品是否可以使用运营商短代计费?

A2:不可以,仅通过申请的计费点可使用短代计费。由于30元以上商品暂无对应计费点,故无需进行计费点申请。用户支付时,直接跳转至联网支付。

 

Q3:在什么情况SDK会调起话费支付,什么情况会调起联网支付?

A3:同时满足以下所有条件则调起话费支付;若一项或多项不满足,则调起联网支付。

1.所支付商品已成功申请计费点;

2.用户手机有sim卡且可判断sim卡归属运营商;

3.最近一次联网获取到的sim卡对应运营商计费通道未关闭;

4.支付amount参数(单位分)的值是否和goodInputId对应的金额一致。

 

Q4:为何无法正常调起话费支付?
A4:请按以下步骤进行检查。
1.检查手机是否已插入移动、联通或电信sim卡;
2.检查是否已在360开放平台申请短信支付通道且所支付商品包含在申请的计费文件中;
3.检查计费文件是否放到assets下;
4.检查应用传的goodinputid是否与计费文件中对应一致;
5.检查计费文件的包名和appkey是否与工程中填写一致;
6.检查支付amount参数(单位分)的值是否和goodInputId对应的金额一致。


 

Q5:支付结果服务器通知接口是否必接?会通知哪些信息?

A5:非必接,有服务器的cp可选接。会通知用户联网支付的结果,短代支付不做通知。具体通知字段详见接入文档。

 

Q6:道具发放以服务器通知还是sdk通知为准?

A6:短代支付必须以sdk通知为准。

联网支付未接应用服务器通知则必须以sdk通知为准,已接应用服务器通知可自行选择以sdk通知或服务器通知为准。

sdk通知不区分短代支付及联网支付方式。

 

Q7:扣费成功,下行扣费短信正常,但SDK出现错误码129返回码1214的报错。

A7:确认广播接收器中是否包含以下示例加粗行通知优先级代码,若不包含自行添加或在dev.360.cn重新下载SDK即可。

<receiver

android:name="mm.yp.purchaseSDK.sms.SMSReceiver"

android:exported="false" >

<intent-filter android:priority="10000" >

<action android:name="aspire.iap.SMS_SEND_ACTIOIN" />

<action android:name="aspire.iap.SMS_DELIVERED_ACTION" />

</intent-filter>

</receiver>


3.开发者自定义浮窗FAQ

3.1 代码部分

注意:此部分用于开发者自定义主动调用浮窗,如不需要主动调用,浮窗不需要单独接入,使用360浮窗默认展示逻辑,开发者不需要接入此步骤。

在主UI线程调用此代码

代码如下:

Intent i = new Intent();
i.putExtra(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_PERSONAL_CENTER_ACTIVITY);
Matrix.invokeActivity(this, i, null);


 

3.2 注意事项(请仔细阅读)

3.2.1 如果游戏想屏蔽掉SDK自带浮窗,需要提交游戏包名和游戏版本号给  yangzhongyi@360.cn ,在后台进行黑名单配置。


3.2.2 必须在登录成功的状态下调用,否则不会显示。建议是用户登录。点击是展示个人主页界面。

调用效果如下:

blob.png


3.2.3如果能成功调起福利界面,游戏不会收到回调。所以,回调参数传空就可以。

blob.png


3.2.4.返回错错误码信息

360SDK处于未初始化状态时,调用其任何接口都会返回错误,错误码为-101{errno:-101,errmsg:”…”}

如果360SDK未处于登录状态,会直接返回错误,错误码为-100{errno:-100, errmsg:”…”}

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号