華為應用內購買服務(In-App Purchases,IAP)為開發者提供便捷的應用內購買體驗和簡便的接入流程。開發者的應用整合IAP SDK後,呼叫IAP SDK介面,啟動IAP收銀臺,即可實現應用內購買。在整合過程中,開發者可能會遇到報錯的問題,這時我們可以通過查詢日誌中的tag的方法對問題快速進行排查和定位,以下我們會結合兩個實際問題來看如何使用這個方法。
問題一:某開發者呼叫華為應用內購買SDK,拉起收銀臺頁面,提示“當前支付服務不可用,請稍後再試”。具體參考下圖:
問題分析
1.首先我們確認呼叫的是IAP哪個介面。
通過檢視開發者給的日誌我們發現呼叫的是非PMS介面(通過過濾IapClientImpl,我們可以查詢呼叫的介面名)
2.如果是pms,那麼呼叫的收銀臺介面名為createPurchaseIntent,如果是非pms介面,則呼叫的介面名為createPurchaseIntentWithPrice。
3.根據對話方塊提示支付服務不可用,可能是支付服務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網站,在應用上架 –>準備提交頁面,將釋出國家或地區勾選上中國大陸(如果想在某個國家或地區上架,需要勾選上對應國家或地區),勾選後點選儲存,變更後一般在幾個小時內會生效。
問題總結
和問題一的定位思路基本一致。根據錯誤碼來進行初步定位。首先要根據客戶端錯誤碼判斷可能存在的問題,如果我們已經拿到對應的客戶端錯誤碼,那麼根據官網的錯誤碼含義和解決方案處理即可。
瞭解更多詳情>>
訪問華為開發者聯盟官網
獲取開發指導文件
華為移動服務開源倉庫地址:GitHub、Gitee
關注我們,第一時間瞭解 HMS Core 最新技術資訊~