首頁>科技>

前言

小編前面幾期文章分別給大家介紹了用程式碼實現微笑抓拍、證件照DIY、拍照翻譯的功能開發(連結見文章末尾),本次小編給大家帶來的是用程式碼一鍵實現銀行卡識別與繫結功能。

銀行卡識別的應用場景

  介紹開發步驟前,我們先來談談銀行卡識別的具體應用場景,銀行APP、移動支付、繳費類APP、電商類APP或者其它帶支付功能的APP在使用過程中往往會遇到如下常見的幾個應用場景:

綁卡支付  常用於支付類APP,或者帶支付功能的APP,用來繫結信用卡、銀聯借記卡,提供線上支付功能。轉賬匯款  常用於銀行或者支付類APP,用來給本行或者他行使用者進行轉賬。實名認證、身份稽核  比如社交類APP,通過銀行卡關聯的身份資訊完成快速的實名認證、身份稽核等操作。  不管是綁卡、轉賬匯款還是身份稽核,涉及到銀行卡操作的都會遇到一個關鍵的步驟,錄入銀行卡資訊,如銀行卡號、有效期等;由於銀行卡號碼往往較長,手工錄入很容易出錯,而且手工錄入卡號資訊,操作繁瑣,使用體驗不佳;藉助HMS ML Kit 銀行卡專用識別能力,則可以輕鬆應對以上場景,快速、精準的錄入銀行卡資訊,改善使用者使用體驗。如何使用華為銀行卡識別服務

  銀行卡識別服務可以將銀行卡資訊通過視訊流方式輸入,得到影象中銀行卡的卡號、有效期等重要文字資訊。該服務配合身份證識別,可以為使用者提供實名認證、身份稽核、卡號錄入等實用功能,降低輸入成本,為使用者提供更加友好的操作體驗。

  銀行卡識別提供處理外掛。開發者可以整合銀行卡識別外掛,無需實現相機視訊流資料的處理,從而實現銀行卡識別能力的快速整合。

  由於華為提供了銀行卡識別外掛,開發者可以直接呼叫銀行卡外掛,因此開發步驟更加簡單了,僅僅需要拉起介面獲取結果就可以完成卡號的識別。

開發實戰1 開發準備1.1 在專案級gradle裡新增華為maven倉

  開啟AndroidStudio專案級build.gradle檔案,增量新增如下maven地址:

buildscript {    repositories {                maven {url 'http://developer.huawei.com/repo/'}    }    }allprojects {    repositories {               maven { url 'http://developer.huawei.com/repo/'}    }  }
1.2 在應用級的build.gradle裡面加上SDK依賴
dependencies{    // 引入基礎SDK   implementation 'com.huawei.hms:ml-computer-vision-bcr:1.0.3.303'   // 引入銀行卡識別plugin包   implementation 'com.huawei.hms:ml-computer-card-bcr-plugin:1.0.3.300'   // 引入銀行卡識別模型包   implementation 'com.huawei.hms:ml-computer-card-bcr-model:1.0.3.300'   }
1.3 在AndroidManifest.xml檔案裡面增量新增模型自動下載

  要使應用程式能夠在使用者從華為應用市場安裝您的應用程式後,自動將最新的機器學習模型更新到使用者裝置,請將以下語句新增到該應用程式的AndroidManifest.xml檔案中:

private MLBcrCapture.Callback callback = new MLBcrCapture.Callback() {     @Override     public void onSuccess(MLBcrCaptureResult bankCardResult){         // 識別成功處理。     }      @Override     public void onCanceled(){         // 使用者取消處理。     }      // 識別不到任何文字資訊或識別過程發生系統異常的回撥方法。     // retCode:錯誤碼。     // bitmap:檢測失敗的卡證圖片。     @Override     public void onFailure(int retCode, Bitmap bitmap){         // 識別異常處理。     }     @Override     public void onDenied(){         // 相機不支援等場景處理。     }   };
2.2 設定識別引數,呼叫識別器captureFrame介面進行識別,識別結果會通過步驟2.1的回撥函式返回
private void startCaptureActivity(MLBcrCapture.Callback callback) {     MLBcrCaptureConfig config = new MLBcrCaptureConfig.Factory()          // 設定識別介面橫豎屏,支援三種模式:         // MLBcrCaptureConfig.ORIENTATION_AUTO: 自適應模式,由物理感應器決定顯示方向。         // MLBcrCaptureConfig.ORIENTATION_LANDSCAPE: 橫屏模式。         // MLBcrCaptureConfig.ORIENTATION_PORTRAIT: 豎屏模式。         .setOrientation(MLBcrCaptureConfig.ORIENTATION_AUTO)         .create();     MLBcrCapture bankCapture = MLBcrCaptureFactory.getInstance().getBcrCapture(config);     bankCapture.captureFrame(this, callback); }
2.3 在檢測按鈕的回撥中,呼叫步驟2.2中定義的方法,實現銀行卡識別
@Override public void onClick(View v) {     switch (v.getId()) {         // 檢測按鈕。         case R.id.detect:             startCaptureActivity(callback);             break;         default:             break;     } }
3 Demo效果

  給大家看下Demo效果:

最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 獨家 |「阿里雲會議」App上線,對標「騰訊會議」