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

閱讀前請點擊右上角“關注”,每天免費獲取Android知識解析及面試解答。Android架構解析,只做職場乾貨,完全免費分享!

前言

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

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

銀行卡識別的應用場景

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

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

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

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

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

  銀行卡識別提供處理插件。開發者可以集成銀行卡識別插件,無需實現相機視頻流數據的處理,從而實現銀行卡識別能力的快速集成。

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

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

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

開發實戰

1 開發準備

1.1 在項目級gradle裡添加華為maven倉

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

<code>

buildscript

{

repositories

{

maven

{

url

'http://developer.huawei.com/repo/'

} } }allprojects {

repositories

{

maven

{

url

'http://developer.huawei.com/repo/'

} } } /<code>

1.2 在應用級的build.gradle裡面加上SDK依賴

<code>dependencies{  
   
  implementation 

'com.huawei.hms:ml-computer-vision-bcr:1.0.3.303'

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'

} /<code>

1.3 在AndroidManifest.xml文件裡面增量添加模型自動下載

  要使應用程序能夠在用戶從華為應用市場安裝您的應用程序後,自動將最新的機器學習模型更新到用戶設備,請將以下語句添加到該應用程序的AndroidManifest.xml文件中:

<code>android:name=

"com.huawei.hms.ml.DEPENDENCY"

android

:value=

"bcr"

/>

...

manifest

>

/<code>

1.4 在AndroidManifest.xml文件裡面申請相機和存儲權限

<code>  

<

uses-permission

android:name

=

"android.permission.CAMERA"

/>

<

uses-permission

android:name

=

"android.permission.WRITE_EXTERNAL_STORAGE"

/>

/<code>

2 代碼開發關鍵步驟

2.1 創建識別結果回調函數

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

<code>

private

MLBcrCapture.Callback callback =

new

MLBcrCapture.Callback() {

public

void

onSuccess

(MLBcrCaptureResult bankCardResult)

{ }

public

void

onCanceled

()

{ }

public

void

onFailure

(

int

retCode, Bitmap bitmap)

{ }

public

void

onDenied

()

{ } }; /<code>

2.2 設置識別參數,調用識別器captureFrame接口進行識別,識別結果會通過步驟2.1的回調函數返回

<code>

private

void

startCaptureActivity

(MLBcrCapture.Callback callback)

{ MLBcrCaptureConfig config =

new

MLBcrCaptureConfig.Factory() .setOrientation(MLBcrCaptureConfig.ORIENTATION_AUTO) .create(); MLBcrCapture bankCapture = MLBcrCaptureFactory.getInstance().getBcrCapture(config); bankCapture.captureFrame(

this

, callback); } /<code>

2.3 在檢測按鈕的回調中,調用步驟2.2中定義的方法,實現銀行卡識別

<code>  

public

void

onClick

(View v)

{

switch

(v.getId()) {

case

R.id.detect: startCaptureActivity(callback);

break

;

default

:

break

; } } /<code>

3 Demo效果

  給大家看下Demo效果:

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


分享到:


相關文章: