Android 代碼一鍵實現(xiàn)銀行卡綁定功能
前言
今天小編給大家?guī)淼氖怯么a一鍵實現(xiàn)銀行卡識別與綁定功能。
銀行卡識別的應用場景
介紹開發(fā)步驟前,我們先來談?wù)勩y行卡識別的具體應用場景,銀行APP、移動支付、繳費類APP、電商類APP或者其它帶支付功能的APP在使用過程中往往會遇到如下常見的幾個應用場景:
綁卡支付
常用于支付類APP,或者帶支付功能的APP,用來綁定信用卡、銀聯(lián)借記卡,提供在線支付功能。轉(zhuǎn)賬匯款
常用于銀行或者支付類APP,用來給本行或者他行用戶進行轉(zhuǎn)賬。實名認證、身份審核
比如社交類APP,通過銀行卡關(guān)聯(lián)的身份信息完成快速的實名認證、身份審核等操作。
不管是綁卡、轉(zhuǎn)賬匯款還是身份審核,涉及到銀行卡操作的都會遇到一個關(guān)鍵的步驟,錄入銀行卡信息,如銀行卡號、有效期等;由于銀行卡號碼往往較長,手工錄入很容易出錯,而且手工錄入卡號信息,操作繁瑣,使用體驗不佳;借助HMS ML Kit 銀行卡專用識別能力,則可以輕松應對以上場景,快速、精準的錄入銀行卡信息,改善用戶使用體驗。
如何使用華為銀行卡識別服務(wù)
銀行卡識別服務(wù)可以將銀行卡信息通過視頻流方式輸入,得到圖像中銀行卡的卡號、有效期等重要文本信息。該服務(wù)配合身份證識別,可以為用戶提供實名認證、身份審核、卡號錄入等實用功能,降低輸入成本,為用戶提供更加友好的操作體驗。
銀行卡識別提供處理插件。開發(fā)者可以集成銀行卡識別插件,無需實現(xiàn)相機視頻流數(shù)據(jù)的處理,從而實現(xiàn)銀行卡識別能力的快速集成。
集成銀行卡識別服務(wù)關(guān)鍵流程
由于華為提供了銀行卡識別插件,開發(fā)者可以直接調(diào)用銀行卡插件,因此開發(fā)步驟更加簡單了,僅僅需要拉起界面獲取結(jié)果就可以完成卡號的識別。
開發(fā)實戰(zhàn)
1 開發(fā)準備
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{ // 引入基礎(chǔ)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文件里面增量添加模型自動下載
要使應用程序能夠在用戶從華為應用市場安裝您的應用程序后,自動將最新的機器學習模型更新到用戶設(shè)備,請將以下語句添加到該應用程序的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文件里面申請相機和存儲權(quán)限
<!--相機權(quán)限--> <uses-permission android:name="android.permission.CAMERA" /> <!--使用存儲權(quán)限--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2 代碼開發(fā)關(guān)鍵步驟
2.1 創(chuàng)建識別結(jié)果回調(diào)函數(shù)
重載onSuccess, onCanceled, onFailure, onDenied四個方法;onSuccess 表示識別成功,MLBcrCaptureResult為識別返回結(jié)果,onCanceled 表示用戶取消,onFailure 表示識別失敗,onDenied 表示相機不可用等場景。
private MLBcrCapture.Callback callback = new MLBcrCapture.Callback() { @Override public void onSuccess(MLBcrCaptureResult bankCardResult){ // 識別成功處理。 } @Override public void onCanceled(){ // 用戶取消處理。 } // 識別不到任何文字信息或識別過程發(fā)生系統(tǒng)異常的回調(diào)方法。 // retCode:錯誤碼。 // bitmap:檢測失敗的卡證圖片。 @Override public void onFailure(int retCode, Bitmap bitmap){ // 識別異常處理。 } @Override public void onDenied(){ // 相機不支持等場景處理。 } };
2.2 設(shè)置識別參數(shù),調(diào)用識別器captureFrame接口進行識別,識別結(jié)果會通過步驟2.1的回調(diào)函數(shù)返回
private void startCaptureActivity(MLBcrCapture.Callback callback) { MLBcrCaptureConfig config = new MLBcrCaptureConfig.Factory() // 設(shè)置識別界面橫豎屏,支持三種模式: // 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 在檢測按鈕的回調(diào)中,調(diào)用步驟2.2中定義的方法,實現(xiàn)銀行卡識別
@Override public void onClick(View v) { switch (v.getId()) { // 檢測按鈕。 case R.id.detect: startCaptureActivity(callback); break; default: break; } }
3 Demo效果
給大家看下Demo效果:
github源碼
源碼已經(jīng)上傳github,大家也可以在github上一起完善該功能。
github源碼地址:https://github.com/HMS-MLKit/HUAWEI-HMS-MLKit-Sample
更詳細的開發(fā)指南參考華為開發(fā)者聯(lián)盟官網(wǎng)
華為開發(fā)者聯(lián)盟機器學習服務(wù)開發(fā)指南
總結(jié)
到此這篇關(guān)于Android 代碼一鍵實現(xiàn)銀行卡綁定功能的文章就介紹到這了,更多相關(guān)android 銀行卡綁定內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android關(guān)于SeekBar無法點擊到最大值問題解決方法記錄(推薦)
這篇文章主要介紹了Android關(guān)于SeekBar無法點擊到最大值問題解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04Android EditText追加空格、限制字符等方法示例
這篇文章主要給大家介紹了關(guān)于Android EditText追加空格、限制字符等的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對各位Android開發(fā)者們具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-06-06詳解Android中visibility屬性VISIBLE、INVISIBLE、GONE的區(qū)別
在Android開發(fā)中,大部分控件都有visibility這個屬性,其屬性有3個分別為“visible ”、“invisible”、“gone”。主要用來設(shè)置控制控件的顯示和隱藏。本文就詳細的講解一下。2016-12-12Android入門之LinearLayout、AbsoluteLayout的用法實例講解
這篇文章主要介紹了Android入門之LinearLayout、AbsoluteLayout的用法,對于Android初學者有很好的參考借鑒價值,需要的朋友可以參考下2014-08-08Android筆記設(shè)計范例之日記APP實現(xiàn)全流程
這篇文章主要介紹了Android筆記設(shè)計范例之日記APP實現(xiàn)全流程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2023-01-01