溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android | 教你如何開發(fā)一鍵銀行卡綁定功能

發(fā)布時(shí)間:2020-08-07 04:39:34 來源:ITPUB博客 閱讀:273 作者:華為開發(fā)者論壇 欄目:移動(dòng)開發(fā)

前言

  小編前面幾期文章分別給大家介紹了用代碼實(shí)現(xiàn)微笑抓拍、證件照DIY、拍照翻譯的功能開發(fā)(鏈接見文章末尾),本次小編給大家?guī)淼氖怯么a一鍵實(shí)現(xiàn)銀行卡識(shí)別與綁定功能。
Android | 教你如何開發(fā)一鍵銀行卡綁定功能


銀行卡識(shí)別的應(yīng)用場(chǎng)景

??介紹開發(fā)步驟前,我們先來談?wù)勩y行卡識(shí)別的具體應(yīng)用場(chǎng)景,銀行APP、移動(dòng)支付、繳費(fèi)類APP、電商類APP或者其它帶支付功能的APP在使用過程中往往會(huì)遇到如下常見的幾個(gè)應(yīng)用場(chǎng)景:

  • 綁卡支付
    ??常用于支付類APP,或者帶支付功能的APP,用來綁定信用卡、銀聯(lián)借記卡,提供在線支付功能。
  • 轉(zhuǎn)賬匯款
      常用于銀行或者支付類APP,用來給本行或者他行用戶進(jìn)行轉(zhuǎn)賬。
    • 實(shí)名認(rèn)證、身份審核
        比如社交類APP,通過銀行卡關(guān)聯(lián)的身份信息完成快速的實(shí)名認(rèn)證、身份審核等操作。
      ??不管是綁卡、轉(zhuǎn)賬匯款還是身份審核,涉及到銀行卡操作的都會(huì)遇到一個(gè)關(guān)鍵的步驟,錄入銀行卡信息,如銀行卡號(hào)、有效期等;由于銀行卡號(hào)碼往往較長(zhǎng),手工錄入很容易出錯(cuò),而且手工錄入卡號(hào)信息,操作繁瑣,使用體驗(yàn)不佳;借助HMS ML Kit 銀行卡專用識(shí)別能力,則可以輕松應(yīng)對(duì)以上場(chǎng)景,快速、精準(zhǔn)的錄入銀行卡信息,改善用戶使用體驗(yàn)。

如何使用華為銀行卡識(shí)別服務(wù)

  銀行卡識(shí)別服務(wù)可以將銀行卡信息通過視頻流方式輸入,得到圖像中銀行卡的卡號(hào)、有效期等重要文本信息。該服務(wù)配合身份證識(shí)別,可以為用戶提供實(shí)名認(rèn)證、身份審核、卡號(hào)錄入等實(shí)用功能,降低輸入成本,為用戶提供更加友好的操作體驗(yàn)。
Android | 教你如何開發(fā)一鍵銀行卡綁定功能
??銀行卡識(shí)別提供處理插件。開發(fā)者可以集成銀行卡識(shí)別插件,無需實(shí)現(xiàn)相機(jī)視頻流數(shù)據(jù)的處理,從而實(shí)現(xiàn)銀行卡識(shí)別能力的快速集成。


集成銀行卡識(shí)別服務(wù)關(guān)鍵流程

Android | 教你如何開發(fā)一鍵銀行卡綁定功能
??由于華為提供了銀行卡識(shí)別插件,開發(fā)者可以直接調(diào)用銀行卡插件,因此開發(fā)步驟更加簡(jiǎn)單了,僅僅需要拉起界面獲取結(jié)果就可以完成卡號(hào)的識(shí)別。


開發(fā)實(shí)戰(zhàn)

1 開發(fā)準(zhǔn)備

1.1 在項(xiàng)目級(jí)gradle里添加華為maven倉(cāng)

??打開AndroidStudio項(xiàng)目級(jí)build.gradle文件,增量添加如下maven地址:

buildscript {
    repositories {        
        maven {url 'http://developer.huawei.com/repo/'}
    }    }allprojects {
    repositories {       
        maven { url 'http://developer.huawei.com/repo/'}
    }
  }

1.2 在應(yīng)用級(jí)的build.gradle里面加上SDK依賴

dependencies{  
  // 引入基礎(chǔ)SDK 
  implementation 'com.huawei.hms:ml-computer-vision-bcr:1.0.3.303' 
  // 引入銀行卡識(shí)別plugin包 
  implementation 'com.huawei.hms:ml-computer-card-bcr-plugin:1.0.3.300' 
  // 引入銀行卡識(shí)別模型包 
  implementation 'com.huawei.hms:ml-computer-card-bcr-model:1.0.3.300' 
  }

1.3 在AndroidManifest.xml文件里面增量添加模型自動(dòng)下載

??要使應(yīng)用程序能夠在用戶從華為應(yīng)用市場(chǎng)安裝您的應(yīng)用程序后,自動(dòng)將最新的機(jī)器學(xué)習(xí)模型更新到用戶設(shè)備,請(qǐng)將以下語句添加到該應(yīng)用程序的AndroidManifest.xml文件中:

<manifest 
   ... 
   <meta-data              
       android:name="com.huawei.hms.ml.DEPENDENCY"   
       android:value= "bcr"/> 
       <!--If multiple models are required,set the parameter as follows:        
       android:value="object,ocr,face,label,icr,bcr,imgseg"-->  
   ... </manifest>

1.4 在AndroidManifest.xml文件里面申請(qǐng)相機(jī)和存儲(chǔ)權(quán)限

<!--相機(jī)權(quán)限--> <uses-permission android:name="android.permission.CAMERA" /> 
<!--使用存儲(chǔ)權(quán)限--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2 代碼開發(fā)關(guān)鍵步驟

2.1 創(chuàng)建識(shí)別結(jié)果回調(diào)函數(shù)

??重載onSuccess, onCanceled, onFailure, onDenied四個(gè)方法;onSuccess 表示識(shí)別成功,MLBcrCaptureResult為識(shí)別返回結(jié)果,onCanceled 表示用戶取消,onFailure 表示識(shí)別失敗,onDenied 表示相機(jī)不可用等場(chǎng)景。

private MLBcrCapture.Callback callback = new MLBcrCapture.Callback() { 
    @Override 
    public void onSuccess(MLBcrCaptureResult bankCardResult){ 
        // 識(shí)別成功處理。 
    }  
    @Override 
    public void onCanceled(){ 
        // 用戶取消處理。 
    }  
    // 識(shí)別不到任何文字信息或識(shí)別過程發(fā)生系統(tǒng)異常的回調(diào)方法。 
    // retCode:錯(cuò)誤碼。 
    // bitmap:檢測(cè)失敗的卡證圖片。 
    @Override 
    public void onFailure(int retCode, Bitmap bitmap){ 
        // 識(shí)別異常處理。 
    } 
    @Override 
    public void onDenied(){ 
        // 相機(jī)不支持等場(chǎng)景處理。 
    }   };

2.2 設(shè)置識(shí)別參數(shù),調(diào)用識(shí)別器captureFrame接口進(jìn)行識(shí)別,識(shí)別結(jié)果會(huì)通過步驟2.1的回調(diào)函數(shù)返回

private void startCaptureActivity(MLBcrCapture.Callback callback) { 
    MLBcrCaptureConfig config = new MLBcrCaptureConfig.Factory() 
         // 設(shè)置識(shí)別界面橫豎屏,支持三種模式: 
        // MLBcrCaptureConfig.ORIENTATION_AUTO: 自適應(yīng)模式,由物理感應(yīng)器決定顯示方向。 
        // MLBcrCaptureConfig.ORIENTATION_LANDSCAPE: 橫屏模式。 
        // MLBcrCaptureConfig.ORIENTATION_PORTRAIT: 豎屏模式。 
        .setOrientation(MLBcrCaptureConfig.ORIENTATION_AUTO) 
        .create(); 
    MLBcrCapture bankCapture = MLBcrCaptureFactory.getInstance().getBcrCapture(config); 
    bankCapture.captureFrame(this, callback); }

2.3 在檢測(cè)按鈕的回調(diào)中,調(diào)用步驟2.2中定義的方法,實(shí)現(xiàn)銀行卡識(shí)別

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
        // 檢測(cè)按鈕。 
        case R.id.detect: 
            startCaptureActivity(callback); 
            break; 
        default: 
            break; 
    } }

3 Demo效果

  給大家看下Demo效果:
Android | 教你如何開發(fā)一鍵銀行卡綁定功能


github源碼

  源碼已經(jīng)上傳github,大家也可以在github上一起完善該功能。
github源碼地址: https://github.com/HMS-MLKit/HUAWEI-HMS-MLKit-Sample

更詳細(xì)的開發(fā)指南參考華為開發(fā)者聯(lián)盟官網(wǎng)
華為開發(fā)者聯(lián)盟機(jī)器學(xué)習(xí)服務(wù)開發(fā)指南


往期鏈接: Android | 教你如何開發(fā)一個(gè)拍照翻譯小程序
內(nèi)容來源: https://developer.huawei.com/consumer/cn/forum/topicview?tid=0201217390745110144&fid=18
原作者:AI_talking

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI