Android 代码一键实现银行卡绑定功能

前言

今天小编给大家带来的是用代码一键实现银行卡识别与绑定功能。

银行卡识别的应用场景

  介绍开发步骤前,我们先来谈谈银行卡识别的具体应用场景,银行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文件中:

<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效果:

github源码

  源码已经上传github,大家也可以在github上一起完善该功能。
  github源码地址:https://github.com/HMS-MLKit/HUAWEI-HMS-MLKit-Sample

更详细的开发指南参考华为开发者联盟官网
华为开发者联盟机器学习服务开发指南

总结

到此这篇关于Android 代码一键实现银行卡绑定功能的文章就介绍到这了,更多相关android 银行卡绑定内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • android银行卡号验证算法详解

    现行 16 位银联卡现行卡号开头 6 位是 622126-622925 之间的,7 到 15 位是银行自定义的, 可能是发卡分行,发卡网点,发卡序号,第 16 位是校验码. 16 位卡号校验位采用 Luhm 校验方法计算: 1.将未带校验位的 15 位卡号从右依次编号 1 到 15,位于奇数位号上的数字乘以 2 2.将奇位乘积的个十位全部相加,再加上所有偶数位上的数字 3.将加法和加上校验位能被 10 整除. public class CheckIdCard { /** * 校验银行卡卡号 *

  • Android Service绑定过程完整分析

    通常我们使用Service都要和它通信,当想要与Service通信的时候,那么Service要处于绑定状态的.然后客户端可以拿到一个Binder与服务端进行通信,这个过程是很自然的. 那你真的了解过Service的绑定过程吗?为什么可以是Binder和Service通信? 同样的先看一张图大致了解一下,灰色背景框起来的是同一个类的方法,如下: 我们知道调用Context的bindService方法即可绑定一个Service,而ContextImpl是Context的实现类.那接下来就从源码的角度

  • Android银行卡扫描获取银行卡号

    ard.io开源的银行卡扫描的三方库真的是很好用啊. 首先需要在你的module的gradle的依赖文件中添加依赖 compile 'io.card:android-sdk:5.5.1' 2 清单文件中加入如下Activity <!-- Permission to vibrate - recommended, allows vibration feedback on scan --> <uses-permission android:name="android.permissi

  • Android EditTextView 实现带空格分隔的输入(电话号码,银行卡)

    电话号码输入框需求: 三位,七位后有空格 删除倒数第四,第八位会将空格也删除 使用TextWatcher When an object of a type is attached to an Editable, its methods will be called when the text is changed.就是说,只要是一个可编辑的文本设置了TextWatcher,当文本发生变化时,TextWatcher里的方法将会被调用. 其实不难,看了网上搜索到的例子,思路绕了点,这边做一份自己的记

  • Android Studio绑定下拉框数据详解

    效果显示: 1.页面xml代码(项目的代码,直接复制会有错,自己修改一下就好) <TextView android:id="@+id/consultation_tv_section" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/consultation_et_doctor&qu

  • Android根据输入银行卡号判断属于哪个银行

    一:一般都是先来效果图: 二:实现步骤: 1.xml布局实现,两个edittext就行了 <LinearLayout android:id="@+id/lin_yhkh" android:layout_width="fill_parent" android:layout_height="48dp" android:layout_below="@+id/view" android:gravity="center_

  • Android实现银行卡号扫描识别功能

    现在有好多扫描识别银行卡号的SDK都是收费的,但是也有不收费的,但是有一定的问题,就是那种印刷的银行卡号扫描不出来,希望哪位大神指导原因给解释下,这个不收费的SDK就是card.io-Android-SDK,githubdi地址 使用方式很简单,更多介绍可以看GitHub 使用文档: 首先导入依赖:compile 'io.card:android-sdk:5.5.1' 然后在你需要调用拍照的地方加上一下: Intent scanIntent = new Intent(this, CardIOAc

  • Android 代码一键实现银行卡绑定功能

    前言 今天小编给大家带来的是用代码一键实现银行卡识别与绑定功能. 银行卡识别的应用场景   介绍开发步骤前,我们先来谈谈银行卡识别的具体应用场景,银行APP.移动支付.缴费类APP.电商类APP或者其它带支付功能的APP在使用过程中往往会遇到如下常见的几个应用场景: 绑卡支付   常用于支付类APP,或者带支付功能的APP,用来绑定信用卡.银联借记卡,提供在线支付功能.转账汇款   常用于银行或者支付类APP,用来给本行或者他行用户进行转账.实名认证.身份审核   比如社交类APP,通过银行卡关

  • Android中使用ShareSDK集成分享功能的实例代码

    引言 现在APP开发集成分享功能已经是非常普遍的需求了.其他集成分享技术我没有使用过,今天我就来介绍下使用ShareSDK来进行分享功能开发的一些基本步骤和注意点,帮助朋友们避免一些坑.好了,下面切入正题正式开始介绍. 1.ShareSDK开发包及配置 这个不用多说,去他们官网看找SDK开发包和集成文档即可. Android版本地址:http://www.mob.com/downloadDetail/ShareSDK/android. 注意:记得要注册ShareSDK账号获取AppKey哦.这些

  • Android ViewPager撤消左右滑动切换功能实现代码

    最近做项目要求某种情况下ViewPager不能滑动,那么我们只需要重写这个方法就可以禁止ViewPager滑动.下面通过本文给大家ViewPager取消左右滑动切换功能的实例代码,具体代码如下所示: IndexViewPager.Java: <span style="background-color: rgb(255, 255, 255);">import android.content.Context; import android.support.v4.view.Vie

  • Android仿微信右滑返回功能的实例代码

    先上效果图,如下: 先分析一下功能的主要技术点,右滑即手势判断,当滑到一直距离时才执行返回,并且手指按下的位置是在屏幕的最左边(这个也是有一定范围的),  这些可以实现onTouchEvent来实现. 接着就是返回时,有滑动效果,很显然这个是Acitivty切换动画实现的.好啦,分析完了就开干.下面上代码: @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()){ case Mot

  • Android加载loading对话框的功能及实例代码(不退出沉浸式效果)

    一.自定义Dialog 在沉浸式效果下,当界面弹出对话框时,对话框将获取到焦点,这将导致界面退出沉浸式效果,那么是不是能通过屏蔽对话框获取焦点来达到不退出沉浸式的目的呢.说干就干,我们先来看一下改善后的效果图. 普通对话框弹出效果 LoadingDialog弹出效果 自定义LoadingDialog public class LoadingDialog extends Dialog { public LoadingDialog(Context context) { super(context);

  • Android 选择相册照片并返回功能的实现代码

    首先由于进行读写操作,要在 AndroidManifest.xml中声明权限: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 调用系统相册: private static final in

  • Android 中TeaPickerView数据级联选择器功能的实例代码

    Github地址 YangsBryant/TeaPickerView (Github排版比较好,建议进入这里查看详情,如果觉得好,点个star吧!) 引入module allprojects { repositories { google() jcenter() maven { url 'https://www.jitpack.io' } } } implementation 'com.github.YangsBryant:TeaPickerView:1.0.2' 主要代码 public cla

  • Android简单的短信验证功能的实现代码

    相信有很多朋友在做三方登陆的时候会加入短信验证的功能,最近刚好被分配安排实现这一需求,本人新手一枚,特地去网上搜了资料,目前用的比较多的大汉.云通讯还有MOB的smssdk,对比之下,最终选择了完全免费的MOB产品试试手,下面就是我在使用sdk过程中一些心得,希望看到的大神给点建议,喜欢的给个小心心就好. 首先我上网百度了下Mob的官网(http://www.mob.com/)作为第一次使用习惯性的先打开文档介绍,关于使用方法这里介绍的算是比较详细的,我这里也不做赘述了,整个文档浏览了一遍,介绍

  • Android仿滴滴出行验证码输入框功能实例代码

    最近公司项目中有一个类似滴滴出行填写验证码的弹框,下面是我撸出来的效果: 中间的那个输入密码的6个框框其实就是用shape画的背景,通过监听EditText获取焦点来改变背景,废话少说,直接上代码吧. 2.效果实现 代码内容比较简单,所以大家可以直接看代码 VerificationCodeInput.java /** * @author hydCoder * @date 2017/9/22 14:39 * @desc 输入验证码的自定义view * @email hyd_coder@163.co

  • Android 使用fast-verification实现验证码填写功能的实例代码

    fast-verification 验证码的验证环节现在是移动APP中不可缺少的一部分,直接使用EditText组件虽然方便但缺少了一些美感,使用fast-verification,让实现验证码变得更简单. 依赖到项目项目根gradle中添加 maven { url 'https://www.jitpack.io' } 示例: allprojects { repositories { ... maven { url 'https://www.jitpack.io' } } } 在需要使用的mod

随机推荐