【FAQ】HarmonyOS鸿蒙Next中调用应用内支付SDK时报错,如何用tag对问题进行排查和分析

【FAQ】HarmonyOS鸿蒙Next中调用应用内支付SDK时报错,如何用tag对问题进行排查和分析 华为应用内支付服务(In-App Purchases,IAP)为开发者提供便捷的应用内支付体验和简便的接入流程。开发者的应用集成IAP SDK后,调用IAP SDK接口,启动IAP收银台,即可实现应用内支付。在集成过程中,开发者可能会遇到报错的问题,这时我们可以通过查找日志中的tag的方法对问题快速进行排查和定位,以下我们会结合两个实际问题来看如何使用这个方法。

问题一:某开发者调用华为应用内支付SDK,拉起收银台页面,提示“当前支付服务不可用,请稍后再试”。

问题分析

  1. 首先我们确认调用的是IAP哪个接口。

通过查看开发者给的日志我们发现调用的是非PMS接口(通过过滤IapClientImpl,我们可以查询调用的接口名)

  1. 如果是pms,那么调用的收银台接口名为createPurchaseIntent,如果是非pms接口,则调用的接口名为createPurchaseIntentWithPrice。

  2. 根据对话框提示支付服务不可用,可能是支付服务api开关未打开或者某些地区不支持支付。按照这个思路我们进行定位,在日志中搜索tag: “hms_pay”:

日志显示当前的服务地是法国,但目前应用内支付服务购买非PMS商品只支持中国大陆,所以会提示支付不可用。

解决方法

在应用市场将服务地切换回国内,具体操作如下:

问题总结

开发者在调试过程中,如果出现接口不通,或者提示错误时,可以使用以下tag来进行问题定位:

HMSSDK: 可以通过此tag查询到HMS Core SDK框架侧是否异常,如6003,6004,90713XXXX等错误码,当然也会包含IAP SDK侧错误码。如60002,60050等

hms_pay: 如果出现60002,60050等IAP SDK侧错误码,可以通过IAP APK侧来分析可能出现的问题,即可以用该tag进行后续APK侧日志的定位分析。

Network-Request:这个tag其实也属于hms_pay下面的,属于服务测返回的错误码,我们可以根据服务侧返回的错误码以及错误描述,对照服务测文档进行初步排查和定位。如8、9、11、12等错误码。

问题二:某位开发者在调用“isEnvReady“方法时报错,提示“本应用未在当前国家/地区发布”

问题分析

首先我们在日志上查找Tag 为HMSSDK 和 hms_pay, 发现60007错误码,对比业务错误码,提示商品配置的地区没有分发到该国家。

我们根据错误码提示去AGC网站上查询发布国家和地区,发现目前应用发布地设置在欧洲,但当前登录的帐号在中国大陆,所以会提示该错误。

解决方法

打开AGC网站,在应用上架 –>准备提交页面,将发布国家或地区勾选上中国大陆(如果想在某个国家或地区上架,需要勾选上对应国家或地区),勾选后点击保存,变更后一般在几个小时内会生效。

问题总结

和问题一的定位思路基本一致。根据错误码来进行初步定位。首先要根据客户端错误码判断可能存在的问题,如果我们已经拿到对应的客户端错误码,那么根据官网的错误码含义和解决方案处理即可。

了解更多详情>>

访问应用内支付服务开发者联盟官网

获取应用内支付服务开发指导文档


更多关于【FAQ】HarmonyOS鸿蒙Next中调用应用内支付SDK时报错,如何用tag对问题进行排查和分析的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于【FAQ】HarmonyOS鸿蒙Next中调用应用内支付SDK时报错,如何用tag对问题进行排查和分析的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中调用应用内支付SDK报错时,可以通过以下步骤使用tag进行排查和分析:

  1. 日志过滤:使用HiLog标签在代码中标记关键步骤,如HiLog.info(TAG, "开始支付流程");,通过日志查看报错位置。

  2. 错误码解析:捕获异常并记录错误码HiLog.error(TAG, "支付失败, 错误码: %{public}d", errorCode);,根据SDK文档解析错误码。

  3. 权限检查:确认应用已声明支付权限<uses-permission ohos:name="ohos.permission.PAY"/>

  4. 网络状态:检查设备网络连接,确保支付请求能正常发送。

  5. SDK版本:确认使用的SDK版本与鸿蒙Next兼容,必要时更新SDK。

通过这些步骤,可以有效定位和解决支付SDK调用时的问题。

回到顶部