华为应用内购买(IAP)为开发者提供便捷的应用内支付体验和轻松访问。进入过程。开发者应用集成IAPSDK后,调用IAPSDK接口,启动IAP收银,即可实现应用内支付。在集成过程中,开发人员可能会遇到错误。这时候我们可以通过在日志中查找标签来快速排查和定位问题。下面我们就结合两个实际问题来看看如何使用这个方法。问题一:某开发者调用华为应用内支付SDK,拉起收银页面,提示“当前支付服务不可用,请稍后重试”。详见下图:问题分析1、首先我们确认调用的是IAP的哪个接口。通过查看开发者给的日志,发现调用了非PMS的接口(通过过滤IapClientImpl,可以查询调用的接口名称)2.如果是pms,则调用的收银接口名称为创建购买意图。如果是非pms接口,调用接口名称为createPurchaseIntentWithPrice。3、根据提示支付服务不可用的对话框,可能是支付服务api开关没有打开或者部分地区不支持支付。根据这个思路,我们定位并搜索日志中的标签:“hms_pay”:日志显示当前服务位置为法国,但目前购买非PMS商品的应用内支付服务只支持中国大陆,所以会提示无法付款。解决方法是在应用市场将服务位置切换回中国,具体操作如下:应用市场->设置->国家/地区->中国。问题总结开发者在调试过程中,如果遇到接口失效或者报错,可以通过以下标签定位问题:HMSSDK:可以通过该标签查看HMSCoreSDK框架端是否异常,比如6003、6004、90713XXXX等其他错误码,当然也包括IAPSDK端的错误码。如60002、60050等。hms_pay:如果有60002、60050等IAPSDK端错误码,可以通过IAPAPK端分析可能存在的问题,即可以通过该标签定位分析后续APK侧日志。Network-Request:这个标签其实属于hms_pay,属于服务测试返回的错误码。我们可以根据服务端返回的错误码和错误描述以及服务测试文档进行初步排查和定位。如8、9、11、12等错误码。问题二:开发者调用“isEnvReady”方法报错,提示“此应用未在当前国家/地区发布”。详见下图:问题分析首先,我们查找了标签HMSSDK和hms_pay的日志,发现60007错误码,对比业务错误码,说明产品配置的地区还没有配置分发到全国。我们根据错误码在AGC网站上查看了发布国家和地区,发现当前应用发布位置设置在欧洲,但是当前登录账号是中国大陆,所以会提示这个错误。解决方法打开AGC网站,进入AppLaunch->ReadytoSubmit页面,勾选发布国家或地区为中国大陆(如果要在某个国家或地区上架,需要勾选对应的国家或地区),勾选后点击保存,修改将在几小时内生效。问题总结和问题一的定位思路基本一致。根据错误码进行初步定位。首先,我们要根据客户端的错误码来判断可能出现的问题。如果我们已经获取到了对应的客户端错误码,那么我们就可以根据官网的错误码含义和解决方法进行处理了。更多详情>>访问华为开发者联盟官网获取开发指导文档华为移动服务开源仓库地址:GitHub、Gitee关注我们,第一时间了解HMSCore最新技术资讯~
