一、HMS SDK4.0开发前期参数准备

1、打开华为开发者管理中心:链接: 华为开发者管理中心.

按照截图上选择AppGallery Connect

2、打开AppGallery Connect 链接: AppGallery Connect

打开选项中-我的项目,如果没有就创建自己的项目

3、需要的参数

(1)、包名、APP_ID、API_KEY 、APP_KEY、证书指纹、CP_ID、agconnect-services.json

(2)、支付公钥

(3)、游戏公钥、游戏私钥

4、其他

(1)服务端支付验签参考:https://developer.huawei.com/consumer/cn/doc/development/HMS-Guides/iap-verifying-signature-returned-result-v4
(2)游戏服务校验登录签名参考:https://developer.huawei.com/consumer/cn/doc/development/HMS-References/verify-login-signature

二、问题汇总(持续更新中)

1、createPurchaseIntentWithPrice 报 -1: IAP_APP_NOT_EXISTED

解决方法:
需要在AGC上打开相关IAP服务的,按照这个文档:https://developer.huawei.com/consumer/cn/doc/distribution/app/agc-enable_service
注意开通服务后,支付验证签名的密钥也在这里,记得更新密钥,不然也会导致支付失败

2、HMS SDK4.0游戏浮标(EMUI9.1以上)不显示的问题

解决方法:
(1)确认是否是EMUI 9.1及以上版本,在9.1以上版本终端测试浮标功能,需要通过“设置-应用-应用助手-游戏空间”将应用加入游戏空间中。
(2)确认是否添加混淆文件

注意:9.1以上的浮标和9.1以下的浮标显示不一样,这不是bug

3、防沉迷和实名认证

(1)防沉迷
防沉迷中提供了submitPlayerEvent上报玩家进入游戏事件,返回了sessionId,sessionid可以用来查询getPlayerExtraInfo接口,该接口返回玩家附加信息,包含是否成年。但是比较坑的是当你未实名或者是已成年的时候,无法触发华为的防沉迷机制,因此submitPlayerEvent接口会直接异常报错7022(//该用户为成年用户或未实名,不支持实名时长统计功能。)这样就无法正确的得到sessionid,同样也就无法使用getPlayerExtraInfo接口来查询玩家的实名信息,巨坑啊

(2)实名认证:参照demo使用getPlayerCertificationInfo接口查询。如果遇到已实名但是返回仍然是-1(未实名),请检查下实名验证方式中是否有任意一个已验证,我这边遇到的问题就是账号显示已经实名,但是我的实名验证方式没有任何一个验证,因此华为这边返回的是我未实名。添加任何一种验证方式即可(身份证或者银行卡)

注意:实名认证页面的拉起是HMS SDK处理的,开发者不需要做额外的操作。
实名政策刚开始执行,这个功能现阶段还没有开放给新开发的游戏进行测试。对于已上架的游戏,考虑到现有用户的体验,现阶段实名认证功能通过后台控制正在分阶段放开。
如果您的应用已上架,并且需要马上开通实名认证的功能,可以跟华为的运营人员联系优先处理。以上是华为的回复,就是说4.0的实名制是不需要游戏单独实现的,需要开启强实名需要发邮件到指定邮箱,详细看官网api

4、接入HMS 4.0自检apk浮标和登录告警

解决方法:如果缺人浮标和登录是显示正常。检查下混淆文件是否添加。如果已添加可忽略警告继续提交

三、错误码自查

1、登录状态码

具体参照:游戏登录通用错误码: loginstatus link.

详细解决见上面链接(官方文档的链接)

 public static final int SIGN_IN_SUCCESS = 0; public static final int CLEAR_TOKEN_SUCCESS = 0;public static final int SIGN_IN_UNLOGIN = 2001;public static final int SIGN_IN_AUTH = 2002;    //应用尚未授权,需要授权。该错误码一般在silentSignIn接口中出现。使用API:HuaweiIdAuthService.getSignInIntent()进行授权登录。public static final int SIGN_IN_PARAMS_ERROR = 2003;    //调用方法的参数不合法,一般是方法使用不当。 请检查传入的参数。public static final int SIGN_IN_CHECK_PASSWORD = 2004;public static final int SIGN_IN_NETWORK_ERROR = 2005;   //授权过程中发生网络错误。  请检查网络后重试。public static final int SIGN_IN_NETWORK_UNDER_CONTROLED = 2007;public static final int SIGN_IN_AUTH_SERVER_FAILED = 2009;    //请求华为帐号服务器失败。  请选择“支持>技术支持>在线提单”提交问题,华为支持人员会及时处理。public static final int CLEAR_ACCESSTOKEN_FAIL_NOT_MATCH = 2010;public static final int ST_VALID = 0;public static final int RESPONSE_RESULT_OK = 0;public static final int SIGN_IN_CANCELLED = 2012;    // 用户点击返回键,取消登录。public static final int SIGN_IN_EXECUTING = 2013;   //正在登录中,请不要再次登录。    等待授权登录结果或取消授权登录。public static final int SIGN_IN_FAILED = 2014;public static final int SIGN_IN_SDK_INNER_ERROR = 2015;public static final int SMS_RETRIEVER_PARAM_FAILED = 2020;

2、支付状态码

具体参照:支付通用错误码: 支付通用错误码 link.

 public static final int ORDER_STATE_SUCCESS = 0;public static final int ORDER_STATE_FAILED = -1;  //通用失败错误码, 若购买请求返回该错误码,建议通过obtainOwnedPurchases接口确认用户是否购买了该商品。public static final int ORDER_STATE_CANCEL = 60000;   //用户取消支付,记录订单号,待用户再次执行支付操作时再执行支付流程。public static final int ORDER_STATE_PARAM_ERROR = 60001;//参数错误,包括无参。请检查请求参数是否遗漏,参数值格式是否正确。public static final int ORDER_STATE_NET_ERROR = 60005;  // 网络连接异常,应用向用户给出提示请用户检查网络。public static final int ORDER_VR_UNINSTALL_ERROR = 60020;//VR APK未安装错误码,请先安装VR APK。VR支付场景返回。public static final int ORDER_HWID_NOT_LOGIN = 60050;  //未登录华为账号   需要处理登录场景。针对支付和isEnvReady接口,您可以通过status引导用户进行登录,其他接口则根据实际情况进行处理。public static final int ORDER_PRODUCT_OWNED = 60051;  //由于已经拥有该商品,购买失败。可通过obtainOwnedPurchases接口确认用户是否购买了该商品。public static final int ORDER_PRODUCT_NOT_OWNED = 60052; //由于未拥有该商品,消耗失败。可通过obtainOwnedPurchases接口确认用户是否购买了该商品。public static final int ORDER_PRODUCT_CONSUMED = 60053;   //商品已经消耗,不能再次消耗。可通过obtainOwnedPurchaseRecord接口查询是否有该商品的消耗记录。public static final int ORDER_ACCOUNT_AREA_NOT_SUPPORTED = 60054;//用户账号服务地暂不支持IAP,存在服务地支持IAP但由于服务出错返回该错误码的场景,可重新调用相关接口或联系华为技术进行确认。public static final int ORDER_NOT_ACCEPT_AGREEMENT = 60055;//用户未同意支付协议,需要用户同意支付协议。public static final int ORDER_HIGH_RISK_OPERATIONS = 60056;    // 用户触发风控,交易被拒绝

3、游戏状态码

具体参照:游戏通用错误码: 游戏通用错误码 link.

 int GAME_STATE_SUCCESS = 0; int GAME_STATE_FAILED = -1; //通用游戏接口失败返回码int GAME_STATE_ERROR = 7001; //一般错误int GAME_STATE_NETWORK_ERROR = 7002; //网络错误、应用市场服务地设置错误int GAME_STATE_USER_CANCEL = 7003;  //用户取消操作int GAME_STATE_USER_CANCEL_LOGIN = 7004;   //用户取消登录int GAME_STATE_PARAM_ERROR = 7005; //请求参数错误int GAME_STATE_NO_SUPPORT = 7006;  //当前区域不提供游戏服务int GAME_STATE_NOT_SUPPORT = 7010;    //当前设备不支持int GAME_STATE_PARAM_NULL = 7011; //入参为空int GAME_STATE_CALL_REPEAT = 7012;   //重复调用接口int GAME_STATE_NOT_LOGIN = 7013;   //未登录华为帐号int GAME_STATE_DISAGREE_PROTOCOL = 7014;int GAME_STATE_NOT_REGISTER = 7015;  //未注册硬件能力int GAME_STATE_REALNAME_REGISTER = 7016;  //已经实名int GAME_STATE_REGISTER_FAIL = 7017; //系统设置错误(游戏注册失败)int GAME_STATE_ACHIEVEMENT_NO_UPGRADE = 7200;    //成就未增长int GAME_STATE_ACHIEVEMENT_NONEXIST = 7201;     //成就未找到int GAME_STATE_ACHIEVEMENT_UNLOCKED = 7202;     //成就增长解锁int GAME_STATE_ACHIEVEMENT_UNLOCK_FAILED = 7203;   //成就解锁失败int GAME_STATE_ACHIEVEMENT_NOT_SUPPORT = 7204; //应用助手不支持展示成就界面(EMUI版本低于9.0,应用助手未安装,应用助手版本号低于10.1,或应用未发布)int GAME_STATE_RANKINGS_NOT_SUPPORT = 7205;    //应用助手不支持展示排行榜界面(EMUI版本低于9.0,应用助手未安装,应用助手版本号低于10.3,或应用未发布)int GAME_STATE_SAVEGAME_NOT_SUPPORT = 7212;int GAME_STATE_NOT_INIT = 7018;   //未调用初始化接口int GAME_STATE_ACCOUNT_NOT_MATCH = 7019;  //应用内登录帐号与系统当前帐号不一致int GAME_STATE_GAME_NOT_FOUND = 7020;  //成就未增长int GAME_STATE_APPGALLERY_NOT_SUPPORT = 7024;int GAME_STATE_CALL_FREQUENTLY = 7023;    //接口调用过于频繁int GAME_STATE_REALNAME_NOT_SUPPORT   = 7022;     //该用户为成年用户或未实名,不支持实名时长统计功能。int GAME_STATE_REALNAME_CANCEL = 7021;  //用户取消实名认证服务int GAME_STATE_ARCHIVE_NO_DRIVE = 7219;    //用户未开通云空间int GAME_STATE_ARCHIVE_CONFLICT_LOST = 7207; //解决冲突时冲突不存在。int GAME_STATE_ARCHIVE_OPEN_FAILED = 7208;    //打开存档文件内容错误。int GAME_STATE_ARCHIVE_DIRECTORY_FAILED = 7210;    //提交存档时找不到或无法创建存档的根文件夹。int GAME_STATE_ARCHIVE_NOT_FOUND = 7211;   //不存在指定的存档。int GAME_STATE_ARCHIVE_NOT_SUPPORT = 7212;  //应用助手不支持存档界面(EMUI版本低于9.0,应用助手未安装,或应用助手版本号低于10.3,或应用未发布)int GAME_STATE_ARCHIVE_NUM_MAX_LIMIT = 7213;    //存档个数达到上限。int GAME_STATE_ARCHIVE_SIZE_MAX_LIMIT = 7214;   //存档图片或文件大小达到上限。int GAME_STATE_RINGINGS_NOT_FOUND = 7215;  //未找到排行榜数据。int GAME_STATE_ARCHIVE_IMAGE_NOT_SUPPORT = 7216;    //存档图片不支持该格式。int GAME_STATE_ARCHIVE_COMMIT_CACHED = 7217;  //存档未上传,只有本地缓存。int GAME_STATE_GAMESERVICE_AUTHOR_FAILURE = 7218;    //游戏服务授权失败,用户未同意应用市场协议

四、DEMO下载地址

接入华为的时候发现文档很多,找的时候很容易忘记或者搞乱,特此记录一下:

1、支付demo下载

https://developer.huawei.com/consumer/cn/doc/development/HMS-Examples/iap-example-v4

2、游戏demo下载

https://developer.huawei.com/consumer/cn/doc/development/HMS-Examples/game-example-v4

3、账号服务demo下载

https://developer.huawei.com/consumer/cn/doc/development/HMS-Examples/account-example-v4

五、HSMAgent在4.0的时候取消

HSMAgent在4.0的时候已经取消,从2.0升级4.0的时候主要就是自己从新封装了下调用的各个API,替换下里面的方法就可以了。

游戏接入华为SDK4.0(记录:实名认证问题、错误码查询和支付/游戏/账号demo下载地址)相关推荐

  1. Android游戏接入——华为篇

    Android游戏接入--华为篇 最近在做游戏接入,接入的方式是Untiy,中间牵扯到了C,所以整理了一些资料是根据自己项目写的,在这里感谢黄孟男的帮助.废话不多说,直接进入今天的主题. 第一步:拿到 ...

  2. 网页游戏Flappy Birds从0开始制作(七):初步完成游戏制作,可以开始游戏。

    网页游戏Flappy Birds从0开始制作(七):初步完成游戏制作,可以开始游戏. 这一章则使一一加入场景元素,land,birds,Tunnel,sky,完成游戏初步demo. 第一步加入资源,即 ...

  3. vc6.0程序运行报错误码为0xc0000005的错误。

    问题: vc6.0程序运行报错误码为0xc0000005的错误. 原因: 自己的代码有问题,导致访问了非法地址,出现该问题.

  4. android测试版微信7.0下载地址,微信 7.0.9 for Android 全新发布,低调公布64位测试版下载地址...

    原标题:微信 7.0.9 for Android 全新发布,低调公布64位测试版下载地址 在经过了整整一周的内测后,腾讯于11月28日正式发布了全新的微信 7.0.9 for Android版本. 与 ...

  5. OGRE 所有版本(从0.1到1.7) (SDK 及 源码 及 扩展库) 下载地址

    OGRE 所有版本 (SDK 及 源码) 下载地址 http://zh.sourceforge.jp/projects/sfnet_ogre/releases/ 或者SVN地址 https://svn ...

  6. 【华为大咖分享】10.DevOps敏捷测试之道(后附PPT下载地址)

    文:华为云DevCloud  兵东 完整版PPT下载请访问原文地址:https://bbs.huaweicloud.com/forum/thread-11912-1-1.html 华为云DevClou ...

  7. 微信 for Mac 3.0.0.1来袭 可以在电脑上刷朋友圈,附下载地址

    微信 for Mac 3.0.0.1 现已面向部分内测用户发布,支持浏览朋友圈. 点击下载 微信 for Mac 3.0.0.1 (访问密码:1112) 微信 for Mac 3.0.0.1 更新日志 ...

  8. 12.5.2 升12.5.3的补丁 linux下载,游戏1.17/2.12/3.8/4.5/5.2更新内容[附离线补丁下载地址]...

    To install this update, please start your game and use the "Updates" tab in your Launcher. ...

  9. 微信小游戏 Egret开发数据域官方Demo下载地址

    随着引擎的升级,伴随而来就是各种问题,使用官方调试过的Demo,少走弯路. Mark下 官方Demo 转载于:https://www.cnblogs.com/gamedaybyday/p/919218 ...

最新文章

  1. 那个一年发了4篇Cell的研究生,后来怎么样了?
  2. 计算机组成原理 — CPU — 流水线与执行周期
  3. 计算机MCI风险快速筛查系统,轻度认知障碍风险快速筛查工具的测算过程及判别效果分析...
  4. 《面向对象程序设计》第11章在线测试
  5. C++实现0-1-knapsack背包问题 (附完整源码)
  6. Multi-commodity Flow Problem
  7. Python - 排序( 插入, 冒泡, 快速, 二分 )
  8. KubeVela v1.3 多集群初体验,轻松管理应用分发和差异化配置
  9. C语言表达式的求解规则,C语言实现整数四则运算表达式的计算
  10. 【No.1】基于Cookie的单点登录(SSO)
  11. 如何.gitignore文件夹中的所有文件/文件夹,但不是文件夹本身? [重复]
  12. 张掖市职教中心计算机专业,张掖市职教中心参加2021年全市中等职业学校学生教师技能大赛成绩喜人...
  13. Chrome一直在更新的几个广告拦截插件
  14. WEB前端--Day9(动画)
  15. python遍历文件夹下的所有图片
  16. 360校招笔试题总结2
  17. Word控件Spire.Doc 【段落处理】教程(十二):如何在 C# 中管理 word 文档的分页
  18. echarts 堆叠柱状图 在顶部显示数据总数
  19. ubuntu使用docker-compose安装rabbitmq并实现延迟交换机
  20. POS机安全电路设计

热门文章

  1. 2023年软考高级-系统分析师考试学习指导计划!
  2. 公众号支付demo java_微信公众号支付开发全过程(java版)
  3. 使用Python编程求函数极限【例1】
  4. 电力电子中的Boost电路实现PFC功能-介绍与仿真
  5. 考虑条件风险价值的多微网主从-合作博弈动态定价与优化调度模型
  6. 2023年湖北建设厅七大员建筑八大员考试什么时候报名?甘建二
  7. 我叫mt4公会攻城战服务器维护中,我叫mt4公会攻城战怎么玩 公会攻城战玩法介绍...
  8. linux磁盘配置命令行,Linux全攻略--文件和磁盘管理
  9. 爱心发射代码带名字升级版
  10. 【C++进阶】详解C++开源网络传输库libcurl的编译过程