HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程。开发者的应用集成IAP SDK后,调用IAP SDK接口,启动IAP收银台,即可实现应用内支付。
通过应用内支付服务,用户可以在应用内购买各种类型的虚拟商品,包括一次性商品(包括消耗型商品和非消耗型商品)和订阅型商品。小编将这段时间开发者们较为关注的一些集成应用内支付服务过程中的问题进行了汇总,并给出了解决方法,大家按需取用。
问题一、同一订阅组,连续包月未到期,切换到连续包年,在华为帐号中心管理订阅页面中取消订阅连续包月,为何连续包年订阅也会被一同取消?
原因分析:
从连续包月切换至连续包年后,产品处于未(待)生效状态,如果此时取消掉连续包月产品,那么会发送连续包月订阅取消通知事件,由于此时包年未生效,暂不会发送连续包年的取消订阅事件。
问题二、在华为智能手表上,调用收银台接口,提示“此应用需安装HMS Core相关组件的更高版本才能使用。是否立即更新”,点击更新,提示更新失败,错误102。
原因分析:
该错误码一般表示子Kit需要升级,但是手表应用市场没有相关的子应用上架,所以找不到安装包。在华为智能手表上集成JS SDK,需要升级的主要两个子Kit分别是JSB Kit,IAP Kit。目前JSB Kit已上架到应用市场,IAP Kit尚在上架排期中。
解决方法:
如果遇到该提示,我们可以使用规避方案,即提示用户去手动到手表应用市场下载最新的HMS Core APK,根据返回的700111错误码进行处理。
问题三、应用内支付服务提供Android和HarmonyOS SDK,支持的功能和设备有什么区别?
App通过集成IAP SDK,再调用IAP SDK接口启动IAP收银台,即可实现应用内支付。Android和HarmonyOS SDK都提供基础的应用内支付服务,包括订单管理、订阅、查看历史购买记录等;但HarmonyOS SDK目前不支持非PMS支付和延迟付款支付。在支持的设备方面,HarmonyOS SDK支持华为手机、华为手表和华为平板;Android SDK除了华为设备以外,还支持非华为手机和车机。
具体可参考下表:
问题四、为什么应用内支付4.0以上版本SDK 接口obtainOwnedPurchasesRecord 无法查询到2.0 sdk 接口productPay购买的PMS非消耗性商品订单?
原因分析:
应用内支付4.0以上版本和2.0版本数据不在同一个数据库上,且暂时无法合并,所以使用新接口的无法查询到之前的订单。
解决方法:
- 如果应用上有展示历史数据的需求,可以仅展示集成4.0之后版本 sdk的数据,如22年1月份集成更新,则可提示本页面只可查询22年1月份之后的购买数据。(参考)
- 开发者可将之前2.x版本下单的购买数据(从应用服务侧获取)和 4.0之后版本sdk(从IAP SDK接口)获取到的数据进行整合处理。(推荐)
问题五、 华为智慧手表上,已经进入到沙盒测试环境中,拉起收银台后支付二维码不显示,提示请求参数错误。
原因分析:
目前扫码类的支付方式都暂时不支持沙盒测试,比如手表,智慧屏等都是通过扫码方式进行支付的,所以会出现相应错误提示。
解决方法:
登录非沙盒帐号(或者删除沙盒帐号),触发现网环境进行测试。
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~