当前位置: 首页 > 后端技术 > Java

【FAQ】接入HMSCore应用内支付服务过程中的一些常见问题汇总

时间:2023-04-01 20:04:27 Java

HMSCore应用内购买服务(In-AppPurchases,IAP)为应用提供便捷的应用内支付体验和简单的访问过程。开发者应用集成IAPSDK后,调用IAPSDK接口,启动IAP收银,即可实现应用内支付。通过应用内支付服务,用户可以在应用内购买各种类型的虚拟商品,包括一次性物品(包括消耗品和非消耗品)和订阅物品。应用内支付服务支持客户端和服务端开发。具体可以参考以下官方文档:https://developer.huawei.com/...在日常工作中,我们会收到开发者对IAP集成常见问题的意见,在此做一些分享和总结,希望为其他遇到类似问题的开发者提供参考——com.huawei.hmf.tasks.Task的使用。Task是HMSCoreSDK底层框架的一个基础抽象类,通过在Task类中实现相关的抽象方法。例如,添加一个或多个监听器,当任务成功完成时将被调用。添加多个监听器时,会按照添加的先后顺序依次调用,并在主线程中执行。因为已经集成在项目的gradle包中,所以可以直接使用,不需要重新创建语句。我们可以在Project工程导入的gradle文件中找到:开发者也可以参考以下文档解决问题:https://developer.huawei.com/...没有accountFlag是否正常InAppPurchaseData参数?InAppPurchaseData参数中没有accountFlag问题。根据应用内支付服务官方文档中InAppPurchaseData的参考API:https://developer.huawei.com/...InAppPurchaseDataJSON类型用于存储用户购买信息,包括消耗品、非消耗品和订阅产品。参数accountFlag为非必填参数,可选字段,返回值不固定。此返回值仅在使用AppTouch应用程序时可用。文档createPurchaseIntentWithPrice的onFailure中参数(Exceptione)的判断(einstanceofIapApiException)不成立。首先需要确认设备和集成环境信息(最好更新到最新版本):HMSCore版本号、集成SDK版本号、设备是手机还是智慧屏。那么根据官方文档60055错误码的注释,一般是用户没有同意支付协议。开发者可以从请求接口返回的IapApiException中获取一个Status对象。Status包含IAP协议页面。应用程序可以使用Status的startResolutionForResult方法启动协议页面。出现该问题的原因可能有以下几种:(1)网络问题,网络异常导致接口获取失败。(2)IapApiException是否被正确引用。(3)支付时是否有弹窗,如果没有弹窗,需要开启设备的“后台弹出界面”权限,设置如下:找到HMS核心应用详情页——权限管理——“后台弹出界面”——选择“始终允许”,重新测试。(4)如果是代码问题,具体请参考开发者联盟官方Demo实现和测试。Demo下载地址:https://developer.huawei.com/...应用服务器验证,购买的token验证失败。首先会出现“购买的token验证失败”的提示,具体请参考“获取应用级AT”文档中的各个步骤,查看获取的AT是否为应用级AT。获取应用级AT地址文档:https://developer.huawei.com/...然后封装获取到的应用级AT,在请求头中重建授权。详情请参考公开说明中的部分文档:https://developer.huawei.com/...更多关于应用内支付服务的详情请参考:https://developer.huawei.com/...华为开发者联盟官网获取开发指导文档,参与开发者讨论请到Reddit社区下载demo和示例代码,到Github解决集成问题,到StackOverflow了解更多>>访问华为开发者联盟官网获取开发指导文档华为移动服务开源仓库地址:GitHub、Gitee关注我们,第一时间了解HMSCore最新技术资讯~