AppGallery Connect:應(yīng)用付費(fèi)鑒權(quán)

來源: HUAWEI
作者:HUAWEI
時(shí)間:2021-01-26
17300
在用戶使用付費(fèi)應(yīng)用時(shí),校驗(yàn)用戶是否已經(jīng)成功購買此應(yīng)用。

應(yīng)用付費(fèi)鑒權(quán)

在用戶使用付費(fèi)應(yīng)用時(shí),校驗(yàn)用戶是否已經(jīng)成功購買此應(yīng)用。

注意

必須在7.2.1版本以上的華為應(yīng)用市場(chǎng)才可以使用AppGallery DRM Service SDK。

場(chǎng)景介紹

A公司開發(fā)了一款付費(fèi)應(yīng)用,用戶B購買了此應(yīng)用。在用戶B打開此應(yīng)用時(shí),應(yīng)用會(huì)校驗(yàn)用戶B是否已經(jīng)購買成功。如果購買成功,用戶B可以使用該應(yīng)用,否則將提示用戶B購買此應(yīng)用。

0000000000011111111.20210119093204.49188648852811548749571683290204.png

開發(fā)步驟

1.添加“版權(quán)保護(hù)id”和“版權(quán)保護(hù)公鑰”。

將使用入門中獲取的“版權(quán)保護(hù)id”和“版權(quán)保護(hù)公鑰”添加到應(yīng)用啟動(dòng)的主Activity的私有變量中。

 //版權(quán)保護(hù)id

private static final String DRM_ID = "請(qǐng)?jiān)谶@里填寫版權(quán)保護(hù)id";

//版權(quán)保護(hù)公鑰

private static final String DRM_PUBLIC_KEY = "請(qǐng)?jiān)谶@里填寫版權(quán)保護(hù)公鑰";

2.創(chuàng)建鑒權(quán)回調(diào)類實(shí)例。

鑒權(quán)接口通過回調(diào)的方式得到鑒權(quán)結(jié)果判斷是否成功,回調(diào)方法onCheckSuccess()為鑒權(quán)成功,回調(diào)方法onCheckFailed()為鑒權(quán)失敗。

以下代碼示例創(chuàng)建了一個(gè)DrmCheckCallback實(shí)例,用于接收鑒權(quán)結(jié)果。

private class MyDrmCheckCallback implements DrmCheckCallback {

    @Override

    public void onCheckSuccess() {

      //鑒權(quán)成功

      …… ……

    }

    @Override

    public void onCheckFailed(int errorCode) {

      //鑒權(quán)失敗

      //如果check接口入?yún)howErrorDialog為true或缺省時(shí),建議調(diào)用finish結(jié)束程序

      //如果check接口入?yún)howErrorDialog為false時(shí)才需要處理errorCode,請(qǐng)參考錯(cuò)誤碼文檔

      …… ……

    }

}

3.調(diào)用check接口。

將AppGallery DRM Service SDK的主要鑒權(quán)方法check添加到應(yīng)用程序啟動(dòng)的主Activity的生命周期函數(shù)OnCreate的最開始位置,按接口說明傳入合法參數(shù),Activity將會(huì)被AppGallery DRM Service SDK保護(hù)。Drm.check方法是異步方法,進(jìn)入應(yīng)用的邏輯應(yīng)該在DrmCheckCallback返回結(jié)果后執(zhí)行。

應(yīng)用在除了onCreate之外的其他方法中(例如onResume,onStart,onRestart等)也有進(jìn)入應(yīng)用的處理時(shí),建議在這些地方增加判斷付費(fèi)鑒權(quán)的狀態(tài),以避免未購買用戶也可使用應(yīng)用。判斷方法可跟onCreate中保持一致,但需要注意驗(yàn)證重復(fù)調(diào)用導(dǎo)致的異常。

@Override

protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      // 調(diào)用鑒權(quán)方法

      Drm.check(this, this.getPackageName(), DRM_ID, DRM_PUBLIC_KEY,new MyDrmCheckCallback());

}

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于HUAWEI,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家