微信人脸SDK集成踩坑
前一段跟收银系统打了一波交道,因为用到了微信人脸支付,在对接的过程中也踩了一波小
坑,现在项目搞完运行了,特地写个博客记录一下。
先说开发文档链接的事情,微信这个文档链接容易让人混淆,先贴出目前正确的文档地址
SDK模式 | 微信刷脸支付,建议直接看这个跑demo,然后跟后台统一,我这对接的时候跟后台看的
地址就不一样,略坑.
接下来就是对接了,新的文档简单明了,看设备是走SDK模式,还是青蛙定制的设备,一般来
说都是SDK模式,开放程度高。下面来说一下我们的SDK模式。
微信的文档写的很是清晰,按照步骤一步一步来就OK了,我们来看一下步骤
1.程序启动时初始化这个建议在application中做,在activity中搞的话我测试过,有
点拉胯
private void initWeChatFace() {WxPayFace.getInstance().initWxpayface(instance, new IWxPayfaceCallback() {@Overridepublic void response(Map info) throws RemoteException {if (!isSuccessInfo(info)) {return;}Logger.d("微信人脸服务","初始化完成");}});}
2.获取数据getWxpayfaceRawdata
这个是获取本地数据,目的是为了后面进行调用接口,加密等使用,前提是本地正确按照微信
的apk哈,因为这种模式,就是调用微信自己apk完成人脸支付操作的,安装包就在首页下载。
WxPayFace.getInstance().getWxpayfaceRawdata(new IWxPayfaceCallback() {@Overridepublic void response(final Map info) throws RemoteException {if (!isSuccessInfo(info)) {return;}final String rawdata = info.get("rawdata") + "";Logger.d("rawdata", rawdata);String returnCode = (String) info.get(RETURN_CODE);String returnMsg = (String) info.get(RETURN_MSG);Logger.d("人脸数据", returnCode + "-----" + returnMsg);try {
// HashMap<String, Object> map = new HashMap<>();
//
// map.put("rawdata", rawdata);
// map.put("mch_id", "1900007251");
// map.put("mch_id", "1900007231");getAuthInfo(rawdata);} catch (Exception e) {e.printStackTrace();}}});
3.获取调用凭证
这一步比较重要,需要后台配合,安装微信文档上的参数配置,一个都不能少,因为这个是涉
及到企业信息,这个关键点在后台,请提醒后台认证看文档配置参数毕竟都是机密信息
4.进行人脸识别
第三步调用凭证如果正常通过的话,客户端就会拿到文档上一些机密的参数,通过这些参数,
去拉起人脸识别,请注意,到这一步是识别,也就是说到这一步可以调起摄像头了,
WxPayFace.getInstance().getWxpayfaceCode(params, new IWxPayfaceCallback() {@Overridepublic void response(final Map info) throws RemoteException {if (info == null) {showToast("调用返回为空, 请查看日志");new RuntimeException("调用返回为空").printStackTrace();return false;}String code = (String) info.get("return_code");String msg = (String) info.get("return_msg");String facecode = (String) info.get("face_code");String openid = (String) info.get("openid");String subOpenid = (String) info.get("sub_openid");....}}, new IWxPayfaceCallback() {@Overridepublic void response(Map info) throws RemoteException {if (info == null) {new RuntimeException("调用返回为空").printStackTrace();return;}String code = (String) info.get("return_code"); // 错误码String msg = (String) info.get("return_msg"); // 错误码描述if (code == null || !code.equals("SUCCESS")) {new RuntimeException("调用返回非成功信息,return_msg:" + msg + " ").printStackTrace();return ;}/*在这里处理您自己的业务逻辑:执行到这里说明用户已经确认支付结果且成功了,此时刷脸支付界面关闭,您可以在这里选择跳转到其它界面*/}});
如果 成功的话,就会拉起微信人脸,点亮摄像头。这一步容易出现的问题就是
1.传参一定要注意,要注意,要注意(大部分都是因为这个)
2.摄像头白屏或者调用失败,可以用出厂工具去测试摄像头,也有可能是设备本身的问题
(设备没有经过微信认证,大概率会出现白屏)
5.发起订单支付
这个也是后台接口,客户端将上一步识别成功的人脸信息facecode和其它一些后台所需要的信
息,通过接口交给后台,后台向微信下单,发起扣款,然后跟咱们就没得关系了,是不是有点小舒
服,哈哈,因为微信的apk页面逻辑帮我们搞完了,咱们只要传给后台就OK了,
我们只传了face_code和订单号,做个参照哈哈,我们后台还是非常给力的。
6.支付结果处理
微信新版的文档取消了接口回调的,所以又给我们省了一步操作,我们只要跟后台异步拿结
果 就OK了,然后跟根据自己的项目逻辑去做下面的逻辑处理,另外新版的SDK版本里面,还增加
了语音和打断支付的环节,但是没有更新,不知道为啥日志写的那么新,堪称迷之操作。如果哪位
小伙伴对接了,能用最新的就用最新的,因为旧版的安装包实在是太大了。
7.总结
总的来说,对接流程还是比较清晰明了,只是记得要认真看文档,因为参数比较多,客户端或
者后台任意一个地方出错,就会导致流程出错,因为一些涉密信息所以不太方便贴的太多,有对接
的小伙伴可以加Q940917911交流一下,目前为止我们的设备运行还比较流畅。
微信人脸SDK集成踩坑相关推荐
- OPPO系统推送SDK集成踩坑思路
目前OPPO的推送SDK回调里是没法监听通知栏点击事件的,只能通过预设intent action之类的进行页面跳转.由于页面比较多,如果全部放在后台进行预设会比较麻烦. 我们的思路是通过一个空的路由a ...
- 微信vue路由跳转兼容_Vue微信公众号开发踩坑记录
需求 微信授权登录(基于公众号的登录方案) 接入JS-SDK实现图片上传,分享等功能 现状及难点 采用的Vue框架,前后端分离模式(vue工程仅作为客户端),用户通过域名访问的是客户端,但是微信授权中 ...
- vue在微信里面的兼容问题_详解Vue微信公众号开发踩坑全记录
本文介绍了Vue微信公众号开发踩坑全记录,分享给大家,也给自己留个笔记. 需求 微信授权登录(基于公众号的登录方案) 接入JS-SDK实现图片上传,分享等功能 现状及难点 采用的Vue框架,前后端分 ...
- 微信H5支付实战踩坑
准备 需求 需求就是最简单的对接微信H5支付接口 方案心路历程 之前直接用http对接过,不过这次想用官方提供的SDK 一方面SDK提供的接口比较完整,二方面感觉应该使用别人辛苦写下来的封装 百度了一 ...
- 微信小程序开发踩坑日记
2017.12.29 踩坑记录 引用图片名称不要使用中文,尽量使用中文命名,IDE中图片显示无异样,手机上图片可能出现不显示的情况. 2018.1.5 踩坑记录 微信小程序设置元素满屏,横向直接w ...
- 微信公众号服务器配置但没有回调,微信公众号 “服务器配置” 踩坑记
前言 今天工作的时候,碰到一个极其无语的关于微信公众号的坑,为此,我语言攻击了腾讯的机器人客服.然而并没有卵用...万万没想到,我还是解决了这个问题,并记录下踩坑经历,希望能帮到一些朋友吧. 背景 今 ...
- 微信小程序入门踩坑记(妥妥的干货,新手快快看过来)
初次上手微信小程序,各种踩坑各种百度,草草扫过官网的文字,呃....表示记不住不想看,然后看了一本入门基础, 诺,就这本啦(链接:https://pan.baidu.com/s/15hKlDNpowU ...
- 微信退款 java工具类,微信支付中退款踩坑记录
首先附上微信支付的开发者文档 其实这里所说的踩坑记录,无非就是微信在开发者文档上的写不太明确,也没有比较官方的demo,在此列出一个可行的demo,供大家下载使用. 主要问题就是在这几步解密上 微信的 ...
- 微信小程序开发踩坑合集
微信搜索:凯小白学编程 回复 小程序 领取1000套小程序源码 本文分享一下开发小程序是遇到的一些问题.展示了曾经开发过的两个小程序中遇到的坑 下一篇文章预告:<Maven入门> ...
- 微信Mars-xlog日志加密踩坑指南
基础 - Xlog 加密使用指引 - <Mars 开发文档> - 书栈网 · BookStack 一.准备环境--Python2 准备Python2的环境,下面的一切操作都要在该环境下进行 ...
最新文章
- 闲话高并发的那些神话,看京东架构师如何把它拉下神坛
- Kubernetes构建过程分析
- Unity3D如何有效地组织代码?(转)
- Jar包转成Dll的方式(带嵌套的jar也能做) (转)
- 使用IHttpHandler做权限控制[ASP.NET | IHttpHandler | AjaxPro | UserHostName]
- mysql++编程规范_建议收藏 - 专业的MySQL开发规范
- python 学习之路开始了
- 利用PHP的VLD查询OPCODE
- [C] 跨平台使用Intrinsic函数范例2——使用SSE2、AVX指令集 处理 双精度浮点数组求和...
- STM32软件IIC速度
- 什么是驻点和拐点_临界点、驻点、拐点的定义是什么?
- Python练习实战股票网页数据
- 2020移动apn接入点哪个快_为什么别人的4g网总比你快? 手机这个设置没开启, 难怪网络...
- 深度学习02-神经网络(MLP多层感知器)
- Nodejs卸载、安装及环境配置
- python中plotly subplot的用法_matplotlib 中的subplot的用法
- 一张小名片引发的地球大危机
- 写不好 SQL? 送你一个大招
- 2022 水花走向哪里?中概 / 恒生 / 投顾 / 中证 500 / 传媒?
- UUID全局唯一标识符