華為HMS Core應用內支付服務(In-App Purchases,IAP)為應用提供便捷的應用內支付體驗和簡便的接入流程,該服務支持客戶端和服務端兩種開發形式,具體可以參考官方檔案,
往期文章:常見問題總結(2)中分享總結了有關無法拉起支付頁面的常見問題,本文將對近期開發者們較為關注的一些集成應用內支付服務程序中的問題進行匯總,并提出解決方案,
問題1:開發者聯盟支付卡片中的支付公鑰(路徑:開發者聯盟>管理中心>支付>獲取支付資訊)和應用內支付中配置的公鑰(路徑:打開專案 >左側導航欄“盈利 > 應用內支付服務”)有什么區別嗎?


問題根因:
為了防止回傳結果被篡改,提高安全性和可靠性,支付結果必須要對簽名字串使用IAP公鑰進行驗簽,由于VR支付目前還使用2.0的支付介面,所以仍然會使用開發者聯盟支付卡片中的支付公鑰,
應用內支付中配置的公鑰(路徑:打開專案 >左側導航欄“盈利 > 應用內支付服務”,若“IAP”頁簽顯示未生成IAP支付公鑰,點擊“設定”生成IAP支付公鑰,)主要用于4.0的支付介面,而4.0的介面是目前常用介面,
問題2:華為應用內支付回呼請求為空,沒有任何有效用戶資訊,
問題背景:
用戶訂閱了會員包年,但后臺沒有自動發貨,點擊了訂單中的【補發】按鈕,重新發起了支付回呼,但資料無效,然后開發者CP改成了測驗介面,列印出了所有華為支付回呼的請求內容,發現請求正文為空字串,沒有任何有效用戶資訊,
“我是在支付報表點擊的補單按鈕,移動端接入的HMS版本是6.4.0.301,你說HMS4.0的訂單,我們不會收到支付成功回呼,但我這邊點補發收到了一個空白回呼,這是正常的嗎?另外,我們的訂閱回呼介面之前是發生例外也回傳200,所以可能在華為IAP服務器這邊認為應用方已經發貨了,這種情況,用戶客戶端再啟動應用還能觸發補單嗎?”
原因分析:
根據官方的FAQ檔案,對于HMS4.0訂單,點擊補發,觸發華為支付服務器向華為IAP服務器發送支付成功回呼,您不會接到支付成功回呼,
在支付報表點擊的補單按鈕,收不到支付成功的回呼通知,如果點擊補發,收到一個訊息體為空的的回呼,并不能作為依據對問題進行分析定位,所以可以忽略,
解決方案:
補單分為客戶端補單和服務端補單,只有消耗性商品才有補單流程,客戶端補單需要您在客戶端中觸發補單,比如應用啟動的時候;如果有例外,會回傳回傳-1,60051,1等錯誤碼場景,從而需要觸發補單機制;具體可以參考檔案,
對于訂閱型商品,一般我們使用的是訂閱關鍵事件的通知,請參考檔案,
關于訂閱回呼介面之前是發生例外時也回傳200,可能在華為IAP服務器這邊認為應用方已經發貨了的情況,不存在這種情況,如果有這種情況,請提供對應的訂單號,我們將對該訂單進行分析,
問題3:我9月份提交的結算申請,現在還沒到賬,請問收益結算什么時候到賬?
問題背景:
CP反饋9月份提交的結算申請,結算單中的結算狀態顯示都是在"付款中",但是現在還沒到賬,不知道具體是卡在什么地方,

原因分析:

根據官方檔案,如對結算資料無異議,點擊“確認結算單”提交結算申請,并核對申付金額及收款銀行等資訊無誤后,點擊“提交”,提交后將無法取消,如需多個結算單合并開票,請確認同一個合同、同一業務型別相同的結算單方可進行合并開票,
解決方案:
也就是說,只要確認結算單了,付款狀態都是在付款中,但是CP需要先開票(也可以合并開票)才能結算,按照確認的結算單金額開具發票,合并開票需將所選結算單中的“結算匯總資訊-結算金額”加總,注意金額與發票金額要完全一致,不能有差異,
具體詳情請您參考開發者聯盟關于自主結算指南的官方檔案進行相關操作,
4. 聯盟官方檔案,AppGallery站點老域名以及使用的加密套件將會逐漸下線,是否有更詳細的操作檔案可供開發者參考?
問題背景:
根據官方檔案說明,為了增強您的應用的安全性和可靠性,HUAWEI IAP更新了URL,并提高了對TLS版本和密碼套件的要求,出于安全考慮,從2023年4月起,HUAWEI IAP將不再支持1.2以下的TLS版本和規定之外的加密套件支持,AppGallery站點使用的老域名后續也會下線,

解決方案:
目前暫時沒有相關指導檔案,這些是標準的網路套件和協議,但是可以參考官方發布的服務器多語言演示demo,

詳情可以參考官方Demo,
替換域名的具體操作請參見官方示例代碼,將對應區域的舊域名替換為最新的域名,例如,需要上架中國站點APPGallery 應用市場,Order服務驗證購買token介面需要將之前的 https://orders-at-dre.iap.dbankcloud.com 替換為中國站點:https://orders-drcn.iap.cloud.huawei.com.cn ,


詳情請參考開發者聯盟官方檔案,
5. 華為訂閱回傳資料中的expirationDate欄位,和用戶到期后下次扣費的時間是一致的嗎?
問題背景:
“我想問一下華為訂閱回傳資料中expirationDate欄位,和用戶到期后下次扣費的時間是一致的嗎?用戶 2021年12月5日付費年訂閱產品,實際于2022年12月4日進行了自動續費扣款,但是華為在2021年支付成功后回傳的字所expirationDate,轉換時間戳后是2022年12月8日到期,請問是華為針對訂閱產品會提前扣費嗎?還是expirationDate并不等同于下次扣款時間 ? 如果需要知道精確的下次扣款時間, 應該取什么欄位呢?”
原因分析:
如下是官方檔案對InAppPurchaseData中的expirationDate欄位的解釋說明:

根據IAP的的扣費規則,會提前24小時開始嘗試扣費,用戶是在2021年12月5日付費年訂閱產品到期,那么在訂閱周期結束前24小時,即12月4號扣費是沒有問題的,華為IAP會嘗試向用戶發起扣款以完成訂閱型商品的續期,若扣費失敗,華為IAP會在一定期限內重復嘗試扣費,若失敗次數過多,最侄訓停止重試,
解決方案:
expirationDate欄位并不等同于下次扣款時間,而是當前訂閱的過期時間,IAP支付服務器當前沒有回傳下次扣款時間,也不會有精準的扣款時間,一般都是顯示訂閱的續期時間或者會比續期時間稍長,但是不會相差很大,
如果訂閱的續期時間和實際顯示的expirationDate相差很大,需要CP提供訂單號或者訂閱id等資料進
了解更多詳情>>
訪問華為開發者聯盟官網
獲取開發指導檔案
華為移動服務開源倉庫地址:GitHub、Gitee
關注我們,第一時間了解 HMS Core 最新技術資訊~
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/547580.html
標籤:其他
