HMS Core 利用内领取服务(In-App Purchases,IAP)为利用提供便捷的利用内领取体验和简便的接入流程。开发者的利用集成 IAP SDK 后,调用 IAP SDK 接口,启动 IAP 收银台,即可实现利用内领取。通过利用内领取服务,用户能够在利用内购买各种类型的虚构商品,包含一次性商品(包含消耗型商品和非消耗型商品)和订阅型商品。利用内领取服务反对客户端和服务端两种开发模式,具体能够参考以下官网文档:
https://developer.huawei.com/…
在日常工作中,咱们会收到开发者们留言的无关 IAP 集成的常见问题,这里进行一些分享和总结,心愿为其余遇到相似问题的开发者提供参考——
- com.huawei.hmf.tasks.Task 的应用问题。
Task<TResult> 是 HMS Core SDK 底层框架的一个根底抽象类,通过实现 Task 类外面的相干形象办法。比方增加一个或者多个监听器,当工作胜利实现时该监听器被调用,当增加多个监听时,依照增加时的顺序调用,该调用在主线程中执行。
因为它曾经集成在工程 gradle 包当中,所以间接用就能够,不须要从新创立申明。咱们能够在 Project 工程中导入的 gradle 文件中找到:
开发者也能够参考以下文档解决问题:
https://developer.huawei.com/…
- InAppPurchaseData 参数中没有 accountFlag 是否失常?
InAppPurchaseData 参数中没有 accountFlag 的问题,依据利用内领取服务官网文档对于 InAppPurchaseData 的参考 API:
https://developer.huawei.com/…
InAppPurchaseData JSON 类型用于保留用户购买信息,包含消耗型商品、非消耗型商品以及订阅型商品。其中的参数 accountFlag 是非必选参数、可选字段,非固定返回,满足应用 AppTouch 利用才会有这个返回值。
- 文档 createPurchaseIntentWithPrice 的 onFailure 中 参数(Exception e)的判断(e instanceof IapApiException)不成立。
首先须要确认设施和集成环境信息(最好更新到最新版本):HMS Core 版本号、集成的 SDK 的版本号、设施是手机还是智慧屏。
而后依据官网文档 60055 错误码的正文,个别示意用户没有批准领取协定,开发者能够从申请接口中返回的 IapApiException 中获取到一个 Status 对象,Status 中蕴含 IAP 协定页面,利用可应用 Status 的 startResolutionForResult 办法来启动协定页面。
导致该问题的起因可能还有以下几个方面:
(1)网络问题,网络异样导致接口获取失败。
(2)是否正确援用了 IapApiException。
(3)领取时是否有弹窗,如果没有弹窗须要开启设施“后盾弹出界面”权限,设置如下:找到 HMS Core 利用详情页 – 权限治理 –“后盾弹出界面”– 抉择“始终容许”,从新测试。
(4)如果是代码问题,请具体参考开发者联盟官网 Demo 实现和测试。Demo 下载地址:
https://developer.huawei.com/…
- 应用服务器验证,验证购买 token 失败。
首先,呈现“验证购买 token 失败”提醒,请具体参照“获取利用级 AT”文档的每一个步骤,查看获取的 AT 是否是利用级 AT。获取利用级别 AT 地址文档:
https://developer.huawei.com/…
而后再将获取的利用级 AT 封装,在申请头 header 中从新构建 authorization,具体能够参考公共阐明的局部文档:
https://developer.huawei.com/…
欲了解更多利用内领取服务详情,请参阅:
https://developer.huawei.com/…
华为开发者联盟官网
获取开发领导文档
参加开发者探讨请到 Reddit 社区
下载 demo 和示例代码请到 Github
解决集成问题请到 Stack Overflow
理解更多详情 >>
拜访华为开发者联盟官网
获取开发领导文档
华为挪动服务开源仓库地址:GitHub、Gitee
关注咱们,第一工夫理解 HMS Core 最新技术资讯~