MemberAuthController
getAuthInfo
threeElementAuth
uploadOcr
请求个人人脸活体认证 personFace
个人银行卡四要素比对 fourElementAuth
保存资质证书 checkCertificate
上传文件 upload
用户表 ums_member
CREATE TABLE `ums_member` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID(即member_id)',
`phone` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'phone',
`is_three_auth` tinyint DEFAULT '0' COMMENT '三要素认证 0-未认证 1-已认证',
`is_four_auth` tinyint DEFAULT '0' COMMENT '四要素认证 0-未认证 1-已认证',
`is_ocr_auth` tinyint DEFAULT '0' COMMENT 'OCR认证 0-未认证 1-已认证',
`is_liveness_auth` tinyint DEFAULT '0' COMMENT '活体认证 0-未认证 1-已认证',
`is_esign_auth` tinyint DEFAULT '0' COMMENT '电子签认证 0-未认证 1-已认证',
`three_auth_info` json DEFAULT NULL COMMENT '三要素认证数据(姓名/身份证/手机号)',
`four_auth_info` json DEFAULT NULL COMMENT '四要素认证数据(+银行卡号)',
`ocr_info` json DEFAULT NULL COMMENT 'OCR识别数据(身份证正反面/有效期)',
`liveness_info` json DEFAULT NULL COMMENT '活体检测数据(视频/分数)',
`user_seal_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '生成默认印章编号',
`certificate_info` json DEFAULT NULL COMMENT '证书',
`esign_info` json DEFAULT NULL COMMENT '电子签数据(合同/签章位置)',
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` tinyint DEFAULT '0' COMMENT '删除标记 0-正常 1-已删除',
`lock_flag` tinyint DEFAULT '0' COMMENT '锁定标记 0-可编辑 1-只读',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_auth_status` (`is_three_auth`,`is_four_auth`,`is_esign_auth`) USING BTREE,
KEY `idx_update` (`update_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='统一用户认证信息表'
getList
signContract
signCheck
getReportList
getReportDown
报告、协议配置表
CREATE TABLE `gig_config` (
`config_id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
`ent_code` varchar(18) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '企业三合一码',
`protocol` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '协议',
`gateway_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '网关域名',
`subject_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '结算主体名称',
`subject_type` int NOT NULL COMMENT '结算主体',
`subject_location` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '结算税源地',
`subject_channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`app_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主体id',
`merchant_private_key` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '私钥',
`public_key` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '公钥',
`location_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '所属地id',
`sign_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '签名算法类型',
`opt_flag` int NOT NULL DEFAULT '1' COMMENT '启用标记',
`def_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '默认标记',
`end_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '端类型',
`created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modified_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`is_sign` tinyint DEFAULT '0' COMMENT '需要签约',
`agreement_url` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '需要签约的协议',
`agreement_template` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '协议对应的模板编号',
`enterprise_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '企业在爱签的account',
`platform_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '平台在爱签的account',
`is_file_type` tinyint DEFAULT '0' COMMENT '文件类型 0 是协议 1是报告',
`reception_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '接包方企业在爱签的account (报告才有)',
PRIMARY KEY (`config_id`) USING BTREE,
KEY `gig_config_ent_code` (`ent_code`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='结算主体配置信息表';
用户已签约表
CREATE TABLE `smart_contract` (
`contract_id` bigint NOT NULL AUTO_INCREMENT COMMENT '协议唯一标识,自增主键',
`config_id` bigint NOT NULL,
`contract_no` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '唯一协议编号(如:SC_年月日+流水号)',
`contract_title` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '协议标题(前端展示用)',
`preview_url` text CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '签约协议预览地址',
`contract_content` text CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '协议的文件地址',
`contract_status` tinyint NOT NULL DEFAULT '1' COMMENT '协议状态:1-待签署 2-签署中 3-已完成 4-已终止',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '协议创建时间',
`expire_time` datetime NOT NULL COMMENT '签署截止时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
`user_id` bigint NOT NULL COMMENT '发起用户',
`user_account` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '用户在爱签ID',
`enterprise_account` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '企业在爱签ID',
`platform_account` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '平台在爱签的ID',
`complete_time` datetime DEFAULT NULL COMMENT '完成时间',
`sign_info` json DEFAULT NULL,
PRIMARY KEY (`contract_id`) USING BTREE,
UNIQUE KEY `contract_no` (`contract_no`) USING BTREE,
KEY `idx_status` (`contract_status`) USING BTREE,
KEY `idx_expire` (`expire_time`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='智能合约主表,集成签约方预置与状态跟踪';
爱签配置表
CREATE TABLE `gig_config` (
`config_id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
`ent_code` varchar(18) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '企业三合一码',
`protocol` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '协议',
`gateway_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '网关域名',
`subject_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '结算主体名称',
`subject_type` int NOT NULL COMMENT '结算主体',
`subject_location` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '结算税源地',
`subject_channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`app_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主体id',
`merchant_private_key` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '私钥',
`public_key` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '公钥',
`location_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '所属地id',
`sign_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '签名算法类型',
`opt_flag` int NOT NULL DEFAULT '1' COMMENT '启用标记',
`def_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '默认标记',
`end_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '端类型',
`created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modified_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`is_sign` tinyint DEFAULT '0' COMMENT '需要签约',
`agreement_url` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '需要签约的协议',
`agreement_template` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '协议对应的模板编号',
`enterprise_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '企业在爱签的account',
`platform_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '平台在爱签的account',
`is_file_type` tinyint DEFAULT '0' COMMENT '文件类型 0 是协议 1是报告',
`reception_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '接包方企业在爱签的account (报告才有)',
PRIMARY KEY (`config_id`) USING BTREE,
KEY `gig_config_ent_code` (`ent_code`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='结算主体配置信息表';
爱签api调用历史表
CREATE TABLE `ums_ext_api_his` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`ext_id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '第三方接口ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`api_name` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL COMMENT '接口名称',
`request_data` json DEFAULT NULL COMMENT '请求数据',
`response_data` json DEFAULT NULL COMMENT '响应数据',
`status` tinyint DEFAULT '1' COMMENT '状态:0-失败,1-成功',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=94 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='接口调用历史表';
数据表参考原有代码里的数据表,并增加了一些字段上去
4.1 没有登录功能,因此在控制器里固定了用户ID,并传递用户ID到服务层、数据层
4.2 活体认证通过后爱签是直接在小程序的webview组件中返回成功/失败结果,根据此结果再调用后台其他逻辑(保存认证结果、添加实名人到爱签)
4.3 报告、协议配置表gig_config
新增字段说明:
is_sign 为是否需要签约 若不需要,用户则调用税地(调用代码在签约功能中,已注释)
企业在爱签的account (报告和协议需要)
平台在爱签的account (报告需要)
接包方企业在爱签的account (报告需要)
is_file_type 文件类型 0 是协议 1是报告
4.4 报告的骑缝章需要指定加盖的页码,因此每个报告可能不一致,需要在配置表中配置
### 现在的demo六里,各个配置是手动添加到数据库的