Android通过支付宝进行刷脸认证

您所在的位置:网站首页 微信上网认证如何跳过刷脸 Android通过支付宝进行刷脸认证

Android通过支付宝进行刷脸认证

2024-07-16 22:20| 来源: 网络整理| 查看: 265

Android通过支付宝进行刷脸认证

官方文档快速接入

一、简介

支付宝刷脸认证是通过支付宝人脸识别进行身份校验,主要包括三个模块身份认证初始化服务、开始认证、认证结果查询

二、应用场景

认证场景码 FACE SMART_FACE CERT_PHOTO CERT_PHOTO_FACE FACE_SDK

认证场景多因子人脸认证多因子证照和人脸认证多因子证照认证多因子快捷认证(biz_code)FACECERT_PHOTO_FACECERT_PHOTOSMART_FACE 三、认证前准备

1.注册支付宝开放平台完成商户入驻流程,创建应用添加功能(身份验证)并进行签约; 2.你需要获取一个 应用 ID,并完成必要的开发 环境配置; 3.支付宝开放平台通过 HTTPS 通信进行接口调用,包含系统调用和页面转跳两类接口,相关概念参照 接口调用;参数的加密解密和加签验签参考 4.集成并配SDK,支付宝身份验证目前并未提供相应的客户端sdk,功能主要集中在后台服务中,后台完成相应的配置后,商户通关唤起支付宝app完成身份认证

四、整体流程

1.调用身份认证初始化服务 alipay.user.certify.open.initialize 接口进行认证初始化,并获取返回值certify_id。certify_id 是本次认证的标识,在后面的认证接口和查询接口会用到。 2.将生成的 certify_id 作为入参,调用身份认证开始认证服务接口 alipay.user.certify.open.certify 生成认证服务请求地址 (文档中有url示例) 3.用户完成认证后会通知商户结果。这个接口支持多种方式接入,可以灵活使用。重点必须在这个接口的请求中传入 return_url 才能回跳到商户, return_url 也支持多个协议 H5、小程序、商户App。 4.可以根据第一步返回的 certify_id 查询本次认证的状态和结果。

五、认证初始化以及生成认证请求url(服务端完成) 1.初始化服务 AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2"); AlipayUserCertifyOpenInitializeRequest request = new AlipayUserCertifyOpenInitializeRequest(); //构造身份信息json对象 JSONObject identityObj = new JSONObject(); //身份类型,必填,详细取值范围请参考接口文档说明 identityObj.put("identity_type", "CERT_INFO"); //证件类型,必填,详细取值范围请参考接口文档说明 identityObj.put("cert_type", "IDENTITY_CARD"); //真实姓名,必填 identityObj.put("cert_name", "张三"); //证件号码,必填 identityObj.put("cert_no", "260104197909275964"); //构造商户配置json对象 JSONObject merchantConfigObj = new JSONObject(); // 设置回调地址,必填. 如果需要直接在支付宝APP里面打开回调地址使用alipay协议,参考下面的案例:appId用固定值 20000067,url替换为urlEncode后的业务回跳地址 // alipays://platformapi/startapp?appId=20000067&url=https%3A%2F%2Fapp.cqkqinfo.com%2Fcertify%2FzmxyBackNew.do merchantConfigObj.put("return_url", "alipays://platformapi/startapp?appId=20000067&url=https%3A%2F%2Fapp.cqkqinfo.com%2Fcertify%2FzmxyBackNew.do"); //构造身份认证初始化服务业务参数数据 JSONObject bizContentObj = new JSONObject(); //商户请求的唯一标识,推荐为uuid,必填 bizContentObj.put("outer_order_no", "506608c8141a4fc781538fb3e55029f9"); bizContentObj.put("biz_code", "FACE"); bizContentObj.put("identity_param", identityObj); bizContentObj.put("merchant_config", merchantConfigObj); request.setBizContent(bizContentObj.toString()); //发起请求 AlipayUserCertifyOpenInitializeResponse response = alipayClient.execute(request); if (response.isSuccess()) { System.out.println("调用成功"); //接口调用成功,从返回对象中获取certify_id String certifyId = response.getCertifyId(); //执行后续流程... } else { System.out.println("调用失败"); } 2.生成认证url //参考代码如下: //获取alipay client AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2"); AlipayUserCertifyOpenCertifyRequest request = new AlipayUserCertifyOpenCertifyRequest(); //设置certifyId JSONObject bizContentObj = new JSONObject(); bizContentObj.put("certify_id", "2109b5e671aa3ff2eb4851816c65828f"); request.setBizContent(bizContentObj.toString()); //生成请求链接,这里一定要使用GET模式 AlipayUserCertifyOpenCertifyResponse response = alipayClient.pageExecute(request, "GET"); if(response.isSuccess()){ System.out.println("开始认证服务调用成功"); String certifyUrl = response.getBody(); //执行后续流程... } else { System.out.println("调用失败"); } 六、客户端(Android)操作,通过支付宝App内进行认证 1.填写基本信息,身份信息 2.唤起支付宝app,传入后台服务生成认证url,进行人脸识别

示例:

/** * 启动支付宝进行认证 * @param url 开放平台返回的URL */ private void doVerify(String url) { if (hasApplication()) { Intent action = new Intent(Intent.ACTION_VIEW); StringBuilder builder = new StringBuilder(); // 这里使用固定appid 20000067 builder.append("alipays://platformapi/startapp?appId=20000067&url="); builder.append(URLEncoder.encode(url)); action.setData(Uri.parse(builder.toString())); startActivity(action); } else { // 处理没有安装支付宝的情况 new AlertDialog.Builder(this) .setMessage("是否下载并安装支付宝完成认证?") .setPositiveButton("好的", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent action = new Intent(Intent.ACTION_VIEW); action.setData(Uri.parse("https://m.alipay.com")); startActivity(action); } }).setNegativeButton("算了", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }).show(); } } /** * 判断是否安装了支付宝 * @return true 为已经安装 */ private boolean hasApplication() { PackageManager manager = getPackageManager(); Intent action = new Intent(Intent.ACTION_VIEW); action.setData(Uri.parse("alipays://")); List list = manager.queryIntentActivities(action, PackageManager.GET_RESOLVED_FILTER); return list != null && list.size() > 0; } 3.认证完成后点击返回,应该返回到我们的App中,或者是一个H5的认证结果页,此时主要在初始化认证服务中的return_url中进行配置,简单介绍几种配置

H5 网页

H5网页提示,需要使用alipay协议,参考下面的案例: alipays://platformapi/startappappId=20000067&url=https%3A%2F%2Fapp.cqkqinfo.com%2Fcertify%2FzmxyBackNew.do

Android客户端App

返回到商户App需要用到schema 协议,参考下面案例 scheme://face/certify

商户App配置,在Mainefest配置文件中配置需要用scheme协议跳转的Activity



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3