在Flutter中使用ONE store In-App Library(内部應用程式庫)
Last updated
Last updated
ONE store支付插件(plugin)通過在plotter環境中展現的應用程式(app), 為您提供ONE store 支付插件的最新功能。
本指南為你提供使用插件的方法和展現ONE store支付插件功能的方法。
點擊'pub get'下載程式包或者在命令行運行'flutter pub get'。
在project的build.gradle中加入maven地址
在app的build.gradle 中加入configuration從屬性
設定Target SDK 版本為 30(OS 11) 以上時 ,需要加入下面的<queries>後,内部應用程式庫才能正常啟動。
ONE store内部app支付是需要登錄才能啟動的服務。首次開始啟動app時,在呼叫購買庫的API之前,先誘導登錄。
可以提前預防請求購買庫時出現token過期和其他各種狀況。
本對象(object)需要在app啟動時直接更新購買,所以需要使用'lazy: false',讓針對本對象的'Lazy loading'處於未啟用狀態。
颁发证书(license)密钥
在ONE store研发者中心登录app,就会生成证书密钥
通過呼叫PurchaseClientManager.initialize()在第一次建立對象。
在'purchasesUpdatedStream' 字符串中'listen',準備獲取購買结束的回覆。
以_listenToPurchasesUpdated成功購買,獲取購買資訊的回覆。
以_updateStreamOnError ,獲取購買失敗的回覆。
App结束時,呼叫'PurchaseClientManager.dispose()' 解除内存及解除連接,同時已經讀取的_purchaseUpdatedStream也需要dispose(),以此斷開連接。
使用'await _clientManager.queryProductDetails(List<String>, ProductType)'請求獲取ONE store研發者中心登錄的内部app商品的詳細資訊。
使用'await _clientManager.launchPurchaseFlow(ProductDetail)'請求商品購買。
若購買成功,可以通過“在APP中更新購買資訊以及讀取出錯回覆”中登錄的'_listenToPurchasesUpdated' 獲取回覆。
當然購買失敗的回覆也可以通過'_updateStreamOnError'獲取。
若在store中獲取到購買结束的回覆,接下来使用(consume)或確認(acknowledge)的工作非常重要。
若3天内購買沒有確認(acknowledge)或使用(consume),會判斷為未向用戶支付商品,自動返款给用戶。
使用'_clientManager.consumePurchase(PurchaseData)'請求管理型商品的使用。
使用'_clientManager.acknowledgePurchase(PurchaseData)'請求管理型商品或訂閱商品的確認。
屬於管理型商品(ProductType.inapp),若未立即使用,可以使用期限制處理。
期限制處理:請求購買→回覆→acknowledgePurchase →經過一定期限後→ consumePurchase
消耗性處理:請求購買→回覆→consumePurchase
屬於訂閱商品(ProductType.subs),儘可以使用 acknowledgePurchase。
使用'_clientManager.queryPurchases(ProductType)',請求未使用的購買明细。
使用'_clientManager.launchUpdateSubscription(ProductDetail, PurchaseData, ProrationMode)' 將購買的定期支付商品變更為新商品。
變更定期支付商品和請求購買流程相同,所以和“請求購買”的回覆處理方式相同。
可以通過'_listenToPurchasesUpdated'獲取回覆。
使用'_clientManager.launchManageSubscription(PurchaseData?)'可以移動到購買的訂閱商品的詳細内容網頁。
訂閱商品的設置變更由用戶處理,管理菜單中能做的如下。
支付方式變更
訂閱狀態變更(解除預約,取消)
同意原有訂閱商品的價格變更
在PurchaseDatanull時,將不出現購買商品的詳細内容網頁,而是移動到定期支付目錄畫面。
ONE store服務無法安裝或不是v21 SDK中支持的最低版本時,RESULT_NEED_UPDATE中會發生錯誤(error)。
收到相應錯誤(error)時,使用'_clientManager.launchUpdateOrInstall()',請求安裝ONE store服務。