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

前言

  小編前面幾期文章分別給你們介紹了用代碼實現微笑抓拍、證件照DIY、拍照翻譯的功能開發(連接見文章末尾),本次小編給你們帶來的是用代碼一鍵實現銀行卡識別與綁定功能。
在這裏插入圖片描述html


銀行卡識別的應用場景

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

  • 綁卡支付
      經常使用於支付類APP,或者帶支付功能的APP,用來綁定信用卡、銀聯借記卡,提供在線支付功能。
  • 轉帳匯款
      經常使用於銀行或者支付類APP,用來給本行或者他行用戶進行轉帳。
  • 實名認證、身份審覈
      好比社交類APP,經過銀行卡關聯的身份信息完成快速的實名認證、身份審覈等操做。
      無論是綁卡、轉帳匯款仍是身份審覈,涉及到銀行卡操做的都會遇到一個關鍵的步驟,錄入銀行卡信息,如銀行卡號、有效期等;因爲銀行卡號碼每每較長,手工錄入很容易出錯,並且手工錄入卡號信息,操做繁瑣,使用體驗不佳;藉助HMS ML Kit 銀行卡專用識別能力,則能夠輕鬆應對以上場景,快速、精準的錄入銀行卡信息,改善用戶使用體驗。

如何使用華爲銀行卡識別服務

  銀行卡識別服務能夠將銀行卡信息經過視頻流方式輸入,獲得圖像中銀行卡的卡號、有效期等重要文本信息。該服務配合身份證識別,能夠爲用戶提供實名認證、身份審覈、卡號錄入等實用功能,下降輸入成本,爲用戶提供更加友好的操做體驗。
在這裏插入圖片描述
  銀行卡識別提供處理插件。開發者能夠集成銀行卡識別插件,無需實現相機視頻流數據的處理,從而實現銀行卡識別能力的快速集成。android


集成銀行卡識別服務關鍵流程

在這裏插入圖片描述
  因爲華爲提供了銀行卡識別插件,開發者能夠直接調用銀行卡插件,所以開發步驟更加簡單了,僅僅須要拉起界面獲取結果就能夠完成卡號的識別。git


開發實戰

1 開發準備

1.1 在項目級gradle裏添加華爲maven倉

  打開AndroidStudio項目級build.gradle文件,增量添加以下maven地址:github

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文件中:小程序

<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文件裏面申請相機和存儲權限

<!--相機權限--> <uses-permission android:name="android.permission.CAMERA" /> 
<!--使用存儲權限--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2 代碼開發關鍵步驟

2.1 建立識別結果回調函數

  重載onSuccess, onCanceled, onFailure, onDenied四個方法;onSuccess 表示識別成功,MLBcrCaptureResult爲識別返回結果,onCanceled 表示用戶取消,onFailure 表示識別失敗,onDenied 表示相機不可用等場景。機器學習

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效果:
在這裏插入圖片描述maven


github源碼

  源碼已經上傳github,你們也能夠在github上一塊兒完善該功能。
  github源碼地址:https://github.com/HMS-MLKit/HUAWEI-HMS-MLKit-Sampleide

更詳細的開發指南參考華爲開發者聯盟官網
華爲開發者聯盟機器學習服務開發指南函數


往期連接:Android | 教你如何用代碼開發一個拍照翻譯小程序
內容來源:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0201217390745110144&fid=18 原做者:AI_talking

相關文章
相關標籤/搜索