快應用接入應用內支付服務指導
華為快應用接入應用內支付服務開發指導
1. 應用內支付服務介紹
華為應用內支付服務(In-App Purchases,IAP)為應用提供便捷的應用內支付體驗,接入流程簡便,助力您的商業變現。通過應用內支付,使用者可以在您的應用內購買各種型別的虛擬商品,包括消耗型商品、非消耗型商品和訂閱型商品。
圖1 應用內支付特點
華為應用內支付服務包含商品管理系統(Product Management System,PMS),您在華為AppGallery Connect網站錄入商品ID和定價之後,即可託管商品。IAP會根據地區和匯率展示本地化的語言和貨幣價格,從而實現全球釋出。
1. 幣種與語言:華為為每個國家/地區指定一個預設幣種和一個預設語言,不支援一個國家/地區配置多種語言。
2. 商品定價:華為根據您設定的匯率換算價格(含稅)和匯率提供已上線華為支付的各國參考價,您可自行修改各國價格。
3. 匯 率: 固定匯率,此匯率非實時匯率,華為將根據此匯率更新貨幣價格。在您沒有修改商品價格的情況下,華為更新匯率不會影響您的商品定價。
2.開發流程
圖2 總體接入流程
當您需要與IAP伺服器進行業務呼叫(如Order服務需呼叫IAP伺服器提供的驗證購買Token介面),或僅僅依靠您的客戶端無法處理更加複雜的業務邏輯時,可增加服務端開發階段。
2.1 互動流程
圖3 消耗類商品
圖4 非消耗類商品
圖5 訂閱類商品
2.2 獲取購買歷史記錄
在支付介面中有兩個介面名字很相似,它們是pay.obtainOwnedPurchaseRecord和pay.obtainOwnedPurchases。在使用場景上,兩個介面是有區別的。
pay.obtainOwnedPurchases:
1. 消耗類商品:檢查是否有需要補發貨的商品,如果返回資料不為空,需要進行補發貨處理,並呼叫 pay.consumeOwnedPurchase 介面進行消耗處理。一般在應用啟動和支付返回60051或-1錯誤碼時呼叫。
2. 非消耗類商品:查詢當前使用者已購買的商品記錄。
3. 訂閱類商品:查詢當前登入華為賬號的使用者在此應用下已有的訂閱關係。
pay.obtainOwnedPurchaseRecord:
1. 消耗類商品:查詢執行過發貨和消耗操作的商品記錄。
2. 訂閱類商品:查詢當前使用者在本應用中的所有續期記錄。
2.3 開發自檢
為了確保您正確地完成應用內支付服務接入,防止因接入問題導致上架稽核被駁回或者上線執行遭遇投訴和損失,請務必進行上架前自檢。
1. 商品名稱描述語言為對應帳號歸屬服務地的語言,賬號服務地切換路徑:應用市場app->我的->國家/地區,切換不同服務地後,您可以檢查商品名稱是否和PMS系統上一致。
2. 商品價格展示為對應帳號歸屬服務地的貨幣單位+單價。
3. 彈出支付介面,支付介面中商品名稱、商品價格與應用中一致。
4. 購買消耗型商品,發貨並消耗後可以再次購買該商品。
5. 購買非消耗型商品後,不可再次購買該商品,再次購買返回錯誤碼60051,首次購買成功後應用需提供相應服務。
6. 購買訂閱型別商品後,不可再次購買該商品,再次購買會返回錯誤碼60051,首次購買成功後應用需提供相應服務。
7. 購買消耗型商品異常掉單,重新進入應用需要補單。
3. 沙盒測試
沙盒測試允許您在接入華為應用內支付聯調過程中無需真實支付即可完成端到端的測試,您可以在AppGallery Connect中配置測試帳號(賬號需是真實的華為賬號),並設定允許這些帳號執行沙盒測試。
1. 沙盒環境下購買非消耗型商品,購買之後可以執行消耗,之後可以再次購買,以方便測試 ( 現網環境不可以 )。
2. 購買成功後的收據資訊中,會攜帶值為 0 的purchaseType欄位,標識此次購買為沙盒測試的記錄。
3. 沙盒測試拉起收銀臺時會彈出沙盒環境標誌的彈框,收銀臺和成功頁也均有沙盒環境的標誌。
4. 沙盒環境下的訂閱續訂時間會比正常情況更快。
4.示例程式碼
示例程式碼請參考華為快應用參考官網接入支付服務的demo部分。
本文是快應用接入應用內支付的慕課指導的word版本,具體demo講解可參考慕課視訊教程。