HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程。该服务支持客户端和服务端两种开发形式,具体可以参考官方文档
上次,我们分享和总结了有关com.huawei.hmf.tasks.Task/应用服务器验证,验证购买token 失败等问题。今天小编再次将这段时间开发者们较为关注的一些集成应用内支付服务过程中的问题进行了汇总,并提出解决方案。大家按需取用吧!
目录
沙盒帐号已正确配置,却无法进入沙盒环境
哪些场景下会收到订阅关键事件通知cancel
InAppPurchaseData中的payOrderId 和orderId有什么区别?
如何理解新订阅在下一个周期才生效?
集成智慧屏帐号、应用内支付等功能,必须在华为智慧屏上进行调试吗?
1. 沙盒帐号正确配置了,但仍无法进入沙盒环境
沙盒环境测试允许开发者在接入应用内支付服务联调过程中无需真实支付即可完成端到端的测试。开发者可以在AppGallery Connect中配置测试帐号,并允许这些帐号执行沙盒测试。如果已经进入沙盒环境会有如下页面提示:
配置沙盒环境的必要条件:
一般而言,开发者需要配置沙盒测试环境帐号和沙盒测试版本。如果测试帐号正确配置了,那么就是沙盒测试版本有问题,比如更改了versionName,没有更改versionCode。
如果出现没有进入沙盒环境的问题,则可以调用isSandBoxActivated接口,打印出以下字段值:
通过以上方法,我们便可以分析出没有进入沙盒环境的具体原因。更多内容还可以参考官网
2. 哪些场景下会收到订阅关键事件通知cancel?
出现订阅事件cancel事件,一般有以下两种场景。
1) 调用订阅撤销接口:在收到用户申诉误购买该订阅型商品或不需要该订阅型商品的情况下,开发者可以调用应用内支付服务器提供的撤销订阅接口终止服务,购买的订阅型商品立即消失,同时这笔订阅费用会立即发起返还
具体可访问官网
2) 切换订阅立即生效:用户原订阅的剩余金额将折算成新订阅的天数,延长新订阅的有效期。目前这种切换效果的触发场景是原订阅的续费周期和即将更换的订阅续费周期相同。
具体可访问官网
3) 两者区别:调用撤销接口会立刻进行退费;切换订阅立即生效场景会将当前订阅剩余的权益值转移到下个订阅产品中,不会形成退费。
3. InAppPurchaseData中的payOrderId 和orderId有什么区别?
1) payOrderId是华为订单号,也就是支付成功后,华为侧生成的订单号。每一笔支付成功的订单都会生成唯一的订单号。
2) orderId 是商户请求号,每次调用支付收银台接口,都会由华为服务器生成唯一的商户请求号,代表着每一次请求。
因此,如果调用华为收银台接口就会生成OrderId,而PayOrderId是支付成功才会生成的。
4. 如何理解新订阅在下一个周期才生效?
原订阅设置为到期状态,新订阅为待生效状态。新订阅会在原订阅的失效日期开始扣费并生效。目前这种切换效果的触发场景为:原订阅的续费周期和即将更换的订阅续费周期不同。
具体可访问官网
举个例子!
用户在2月22日购买订阅周期为1个月的A产品30元,3月10日购买订阅周期为3个月的B产品80元,那么可得知:
1)2月22日会扣A产品的30元,3月10日重新签约B产品,B产品暂不扣费。
2)A产品会被设定为到期状态,即A产品3月22日到期且不再扣费。
3)B产品在3月22日生效并扣费,下次扣费时间为6月22日。
5. 集成智慧屏帐号、应用内支付等功能,必须在华为智慧屏上进行调试吗?
智慧屏测试依赖HMS Core TV APK,如果没有该APK,那么对应集成的相关功能将无法使用。一般来说,华为智慧屏会预装该系统应用。这时有的开发者会想,能否在手机或者其他品牌电视上进行智慧屏帐号、应用内支付的功能测试?答案是否定的,原因有二:
1) 由于华为安全和隐私规范,原则上该APK不对外暴露。
2) HMS Core 部分能力依赖华为系统,那么在其他品牌电视上可能无法使用。6.2.0.300版本后,华为手机也无法正常使用。
欲了解更多HMS Core应用内支付服务详情,请参阅应用内支付服务官网
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。