一、加密存储用户信息(选用mysql自带加密方法)
update us_member_basic_info set cert_type = 0,real_name = (AES_ENCRYPT(#{realName}, 'key')), cert_no = (AES_ENCRYPT(#{certNo}, 'key')), updated_at = now() where login_id = #{loginId}
加密字段的类型不能用varchar 要用varbinary类型否则报错(坑)
二、后端采用的个人核身
三、请求参数选择
··` JSONObject jsonObject = new JSONObject();
jsonObject.put(“name”,vo.getRealName());
jsonObject.put(“idNo”,vo.getCertNo());
jsonObject.put(“faceauthMode”,“WE_CHAT_FACE”);
jsonObject.put(“callbackUrl”,null);
// 请求Body体数据
String reqBodyData = jsonObject.toString();
// 对请求Body体内的数据计算ContentMD5
String contentMD5 = ESignUtil.doContentMD5(reqBodyData);
// 构建待签名字符串
String method = “POST”;
String accept = “/”;
String contentType = “application/json; charset=UTF-8”;
String date = “”;
String headers = “”;
StringBuilder sb = new StringBuilder();
sb.append(method).append("\n").append(accept).append("\n").append(contentMD5).append("\n")
.append(contentType).append("\n").append(date).append("\n").append(headers);
if ("".equals(headers)) {
sb.append(headers).append(openSignConfig.getAccountsApi());
} else {
sb.append(headers).append("\n").append(openSignConfig.getAccountsApi());
}`
四、认证完成后要查询是否认证成功(不能直接让前端传认证结果,后端需要单独再次查询)