Cocos creator引擎鸿蒙游戏集成游戏服务和应用内支付 原创

游戏技术分享
发布于 2025-6-26 17:51
浏览
0收藏

1 背景

HarmonyOS NEXT将原来SDK中的登录、支付、游戏服务等能力下沉到了应用服务中,提供ArkTS接口供APP调用。我们开发了对应登录、支付能力的业务层har包(gameservicesdk和iapkitsdk),简化开发者的接入逻辑。

本文档将分别介绍Cocos Creator 2.4.15 引擎鸿蒙工程接入登录和接入支付的流程。

2 登录(gameservicesdk)har包接入

2.1 开发准备

请前往AGC控制台完成创建游戏类应用,生成签名证书等准备工作,详情请参见​​游戏服务开发准备项​​。

2.2 Cocos Creator接入流程

2.2.1 接入流程har接口介绍

前往​​Demo 源码​​下载Demo。

Cocos creator引擎鸿蒙游戏集成游戏服务和应用内支付-鸿蒙开发者社区

登录(gameservicesdk)流程图中给我们暴露了相应的接口,现在我们以华为账号登录为例写登录流程Demo。

登录接口流程如下:

init() // 发起初始化

unionlogin() // 发起联合登录

hwLogin() // 发起华为账号登录

bindPlayer() // 如果需要绑定,调用此接口

verifyLocalPlayer() // 发起合规校验

submitPlayerRole() // 保存玩家角色信息

2.2.2 worker线程和主(UI)线程调用通信

  • 在Cocos Creator的业务代码中(worker线程),使用反射机制 (jsb.reflection.callStaticMethod)调用主线程暴露的(KitMessageHandle.ets文件中)接口,在调用登录har包中的接口,最后业务代码里面接收到接口处理结果,再做操作。(Demo中登录1、2、3、4步骤已经写好反射机制的使用,详情请参考​​反射机制使用指导​​)。

  • 在build的工程中已新建KitMessageHandle.ets文件,所以build目录千万别删除。若自己的项目需使用,建议直接复制entry/src/main/ets下的文件。
  • Cocos creator引擎鸿蒙游戏集成游戏服务和应用内支付-鸿蒙开发者社区

2.2.3 Cocos Creator 引擎构建和DevEco Studio工程配置


  1. 在Cocos Creator引擎中构建HarmonyOS NEXT工程。其中应用ID名称需使用您的游戏包名。
  2. Cocos creator引擎鸿蒙游戏集成游戏服务和应用内支付-鸿蒙开发者社区


  3. 在DevEco Studio中打开已构建的HarmonyOS NEXT工程,同时导入登录(gameservicesdk)har包。​
  4. Cocos creator引擎鸿蒙游戏集成游戏服务和应用内支付-鸿蒙开发者社区


  5. 选好登录har包,点击确认导入。
  6. Cocos creator引擎鸿蒙游戏集成游戏服务和应用内支付-鸿蒙开发者社区


  7. 在模块级oh-package.json5文件中里面添加依赖。
  8. Cocos creator引擎鸿蒙游戏集成游戏服务和应用内支付-鸿蒙开发者社区


  9. 或构建出gameservicesdk.har包,直接依赖har包。
  10. Cocos creator引擎鸿蒙游戏集成游戏服务和应用内支付-鸿蒙开发者社区


  11. module.json5中配置下client_id和app_id。
  12. Cocos creator引擎鸿蒙游戏集成游戏服务和应用内支付-鸿蒙开发者社区


  13. 签名配置。File->Project Structure配置下你AGC上证书。
  14. Cocos creator引擎鸿蒙游戏集成游戏服务和应用内支付-鸿蒙开发者社区

3 支付(iapkitsdk)har接入

3.1 开发准备

请前往AGC控制台开通商户服务,详情请参见​​开通商户服务​​。

3.2 Cocos Creator接入流程:

3.2.1 接入流程har接口介绍

支付(iapkitsdk)har也是暴露出接口,在使用购买商品前,必须先初始化和查询支付环境。

  1. 首先需要调用的接口。

init() // 初始化接口

queryEnv() // 查询是否支持支付
  1. 查询商品数据接口。

queryProducts() // 根据商品id和商品类型查询对应的商品
  1. 购买商品的接口。

buy() // 根据商品id和商品类型购买商品

在 购买返回成功 或 购买返回失败但携带额外数据(har中查询了购买商品)state成功 ,接下来是进行验签和完成订单接口调用。若有服务端验签,请参考​​接入购买​​进行验签。

Cocos creator引擎鸿蒙游戏集成游戏服务和应用内支付-鸿蒙开发者社区

后续前端业务逻辑,仅需调用finishPurchase()接口完成下订单。若没有服务端验签,Demo里面展示了前端本地验签和完成订单。
4. 本地验签->完成订单接口。

dealPurchaseData() // 进行验签

finishPurchase() // 完成订单
  1. 补单商品接口。

queryPurchase() // 查询购买记录

如果有需要补单的商品,再走验签->完成订单。
  1. 查询购买记录。

queryPurchase() // 查询购买记录

3.2.2 worker线程和主(UI)线程调用通信

请参考 2.2.2 worker线程和主(UI)线程调用通信 。

3.2.3 Cocos Creator 引擎构建和DevEco Studio工程配置

请参考2.2.3 Cocos Creator 引擎构建和DevEco Studio工程配置。

4 常见问题(重要 审核中高频被驳回的问题)

授权绑定流程中,用户取消授权等异常时不能返回重新选择转移/绑定

若玩家取消授权,捕获到错误码 1001502012 后进行异常处理,即调用unbindPlayer,且thirdopenid传空,即可在下次华为账号登录时重新弹出转移绑定面板供用户再次选择,此步骤已集成在har包中。

详情请参考如下文档:

未接入解绑功能

请参考​​解绑游戏账号​​接入解绑功能。


原文链接:​​华为开发者文章​


更多问题可关注:

鸿蒙游戏官方网站:​​已有游戏移植-鸿蒙游戏-华为开发者联盟​

公开课:​​华为开发者学堂​

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
已于2025-6-26 17:52:03修改
收藏
回复
举报
回复
    相关推荐