Android 集成亿傅、接入華為登陸和華為支付

在客戶端接入華為登陸和華為支付

一、 集成 SDK

  1. 下載SDK
    包括兩個(gè):HMS Agent(下載 .zip 文件瘟栖,后面需要進(jìn)行自定義處理)和 HMS SDK(提供:Gradle 依賴或下載 .jar 文件)葵擎。
    注意:使用的HMS SDK Agent的主版本號(hào)必須與HMS SDK相同。例如HMS SDK Agent 2.6.3.301慢宗,2.6.3即為主版本號(hào)坪蚁。
    下載 SDK

  2. HMS SDK 使用 Gradle 依賴方式
    配置倉庫,在工程的 build.gradle 文件如下位置添加:

      allprojects {
        repositories {
        jcenter()
          maven {url 'http://developer.huawei.com/repo/'}
        }
      }
    

    在模塊 build.gradle 文件中添加如下依賴:

    String HMSSDKVer = '2.6.3.301'
    implementation 'com.huawei.android.hms:hwid:'+ HMSSDKVer // 登陸
    implementation 'com.huawei.android.hms:iap:' + HMSSDKVer // 支付
    

    注意:版本號(hào)要同 Agent 保持一致

  3. 集成 Agent
    在1.1中下載的 Agent 包镜沽,解壓縮敏晤,根據(jù)實(shí)際情況運(yùn)行其中的腳本。執(zhí)行下面操作的前提是 appid 已經(jīng)申請下來缅茉。
    首先進(jìn)入 HMSAgent_2.6.3.301/ 目錄嘴脾,在命令行運(yùn)行腳本:

    // 在Mac下執(zhí)行,為了避免換行符的問題需要先執(zhí)行下
    cat GetHMSAgent_cn.sh | tr "^M" "\n" > GetHMSAgent_cn_new.sh  
     // 注意 ^M是通過:Ctrl+v 蔬墩、Ctrl+M 輸入得到的译打,復(fù)制或輸入^M無效
    // 接著修改下文件權(quán)限
    chmod 777 GetHMSAgent_cn_new.sh
    // 執(zhí)行文件
    ./GetHMSAgent_cn_new.sh 
    

    接下來就按提示根據(jù)實(shí)際情況進(jìn)行輸入和選擇。
    看到輸出提示“按回車鍵結(jié)束”后拇颅,可以看到在腳本所在目錄中看到目錄copysrc奏司,將AppManifestConfig.xml中的內(nèi)容添加到工程的 AndroidManifest.xml文件中,將 java/目錄中的 com/ 目錄整體拷貝到工程中樟插。
    到此添加集成 SDK 完成韵洋。

二、接入

  1. 調(diào)用 init 接口黄锤,在 Application 的 onCreate 方法中初始化 HMSAgent搪缨。
    HMSAgent.init(this);
    
  2. 調(diào)用 connect 接口
    HMSAgent.connect(this, new ConnectHandler() {
      @Override
      public void onConnect(int rst) {
        LogUtil.d("huawei connect:" + rst);
      }
    });
    
    注意:必須在應(yīng)用啟動(dòng)后就調(diào)用該接口
  3. 調(diào)用checkUpdate接口
    調(diào)用該接口,當(dāng)華為市場上傳了新版本鸵熟,那么將出現(xiàn)升級(jí)新版本的提示框副编,用戶確認(rèn)后,將自動(dòng)下載安裝新版本流强。
    HMSAgent.checkUpdate(this, new CheckUpdateHandler() {
      @Override
      public void onResult(int rst) {
        LogUtil.d("huawei checkUpdate:" + rst);
      }
    });
    

注意:該方法也必須在應(yīng)用啟動(dòng)時(shí)調(diào)用痹届,否則會(huì)影響審核。

  1. 調(diào)用登錄方法
    HMSAgent.Hwid.signIn(true, new SignInHandler() {
      @Override
      public void onResult(int rst, SignInHuaweiId result) {
        // 打印返回碼
        LogUtil.d("huawei sign resutlCode: " + rst);
        if (rst == HMSAgent.AgentResultCode.HMSAGENT_SUCCESS && null != result) {
            // 打印用戶信息
            LogUtil.d("userInfo = " + result.toString());
        } else {
            // 提示登錄失敗碼
            ToastUtil.show(LoginActivity.this, rst);
        }
      }
    });
    
  2. 調(diào)用支付方法
    // payReq 支付請求類實(shí)例打月,最好是服務(wù)器端給到這些數(shù)據(jù)
    HMSAgent.Pay.pay(payReq, new PayHandler() {
      @Override
      public void onResult(int retCode, PayResultInfo payInfo) {
        if (retCode == HMSAgent.AgentResultCode.HMSAGENT_SUCCESS && payInfo != null) {
            // 此處如果是本地處理邏輯的話需要校驗(yàn)簽名是否正確短纵,如果是服務(wù)器處理的話就是成功支付后的邏輯
            
        } else if (retCode == HMSAgent.AgentResultCode.ON_ACTIVITY_RESULT_ERROR
                || retCode == PayStatusCodes.PAY_STATE_TIME_OUT
                || retCode == PayStatusCodes.PAY_STATE_NET_ERROR) {
            // 需要重新獲取訂單狀態(tài)
        } else {
            ToastUtil.show(context, "支付失敗, code = " + retCode);
        }
      }
    });
    

三僵控、集成香到、接入中遇到的問題

  1. 腳本執(zhí)行的時(shí)候遇到問題:
    a) 執(zhí)行腳本后無反應(yīng)
    b) 提示:exec format error
    c) 提示:parse error near 'elif'
    解決辦法:上面集成 Agent 中已給出解決辦法。
  2. 一開始 HMS Agent 同 HMS SDK 版本不一致,導(dǎo)致初始化失敗悠就,提示-1000千绪。

參考文檔:
官方文檔
腳本不能正常執(zhí)行

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市梗脾,隨后出現(xiàn)的幾起案子荸型,更是在濱河造成了極大的恐慌,老刑警劉巖炸茧,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瑞妇,死亡現(xiàn)場離奇詭異,居然都是意外死亡梭冠,警方通過查閱死者的電腦和手機(jī)辕狰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來控漠,“玉大人蔓倍,你說我怎么就攤上這事⊙谓荩” “怎么了偶翅?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長碉渡。 經(jīng)常有香客問我聚谁,道長,這世上最難降的妖魔是什么滞诺? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任形导,我火速辦了婚禮,結(jié)果婚禮上铭段,老公的妹妹穿的比我還像新娘骤宣。我一直安慰自己秦爆,他們只是感情好序愚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著等限,像睡著了一般爸吮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上望门,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天形娇,我揣著相機(jī)與錄音,去河邊找鬼筹误。 笑死桐早,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播哄酝,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼友存,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了陶衅?” 一聲冷哼從身側(cè)響起屡立,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搀军,沒想到半個(gè)月后膨俐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡罩句,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年焚刺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片的止。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡檩坚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诅福,到底是詐尸還是另有隱情匾委,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布氓润,位于F島的核電站赂乐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏咖气。R本人自食惡果不足惜挨措,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望崩溪。 院中可真熱鬧浅役,春花似錦、人聲如沸伶唯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乳幸。三九已至瞪讼,卻和暖如春榄审,著一層夾襖步出監(jiān)牢的瞬間甫题,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工衙荐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瓶埋,地道東北人希柿。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓诊沪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親曾撤。 傳聞我的和親對象是個(gè)殘疾皇子娄徊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容