signzg-openapi-sdk
Version:
电子签名API客户端SDK,支持个人认证、企业认证和合同签署等功能
496 lines (487 loc) • 16.1 kB
TypeScript
/**
* 客户端配置选项接口
* @interface ClientConfigOptions
*/
interface ClientConfigOptions {
/** 应用ID,用于API身份验证 */
applicationId: string;
/** 业务ID,用于区分不同业务场景 */
businessId: string;
/** API基础URL地址 */
baseUrl: string;
/** 私钥 */
privateKeys: string;
/** 请求超时时间(毫秒),默认为10000 */
timeout?: number;
/** 自定义请求头 */
headers?: Record<string, string>;
}
/**
* 客户端配置类
* 管理API客户端的配置信息,包括应用凭证、请求设置等
* @class ClientConfig
*/
declare class ClientConfig {
/** 应用ID,用于API身份验证 */
readonly applicationId: string;
/** 业务ID,用于区分不同业务场景 */
readonly businessId: string;
/** API基础URL地址 */
readonly baseUrl: string;
/** 私钥 */
readonly privateKeys: string;
/** 请求超时时间(毫秒) */
readonly timeout?: number;
/** 自定义请求头 */
readonly headers?: Record<string, string>;
/**
* 创建客户端配置实例
* @param {ClientConfigOptions} options - 客户端配置选项
*/
constructor(options: ClientConfigOptions);
/**
* 获取完整的配置对象
* @returns {ClientConfigOptions} 配置对象
*/
getConfig(): ClientConfigOptions;
}
/**
* 通用API响应结构
*/
interface ApiResponse<T = any> {
/** 操作是否成功 */
success: boolean;
/** 响应消息 */
message?: string;
/** 响应状态码 */
code?: number;
/** 响应数据 */
result?: T;
/** 时间戳 */
timestamp?: number;
}
/**
* 通用API响应数据接口
* 所有API响应数据可以继承此接口
*/
interface ApiResponseData {
[key: string]: any;
}
/**
* 通用API响应结果类型别名
* 可以直接使用此类型作为API方法的返回类型
*/
type ApiResult<T = ApiResponseData> = ApiResponse<T>;
/**
* 个人用户服务相关的参数模型定义
*/
/**
* 获取用户信息参数
* 用于请求获取用户详细信息的接口参数
*/
interface GetUserInfoParams extends Record<string, any> {
/** 用户ID,必填参数,用于指定要查询的用户 */
userId: string | number;
/** 可选,指定要返回的字段,多个字段用逗号分隔 */
includeFields?: string;
/** 可选,是否包含用户认证信息 */
includeVerification?: boolean;
/** 可选,是否包含用户签名信息 */
includeSignatures?: boolean;
}
/**
* 获取个人认证页面参数
*/
interface PersonalAuthenticationV2Params {
/** 用户手机号 */
userPhone: string;
/** 其他可选参数 */
[key: string]: any;
}
/**
* 查询认证结果参数
*/
interface QueryAuthenticationResultParams {
/** 用户手机号 */
userPhone: string;
/** 其他可选参数 */
[key: string]: any;
}
/**
* 提交个人实名认证参数
*/
interface SubmitAuthenticationParams {
/** 用户姓名 */
userName: string;
/** 身份证号码 */
idNumber: string;
/** 手机验证码 */
phoneCode: string;
/** 用户手机号 */
userPhone: string;
/** 其他可选参数 */
[key: string]: any;
}
interface SendSmsParams$1 {
/** 用户手机号 */
phone: string;
/** 其他可选参数 */
[key: string]: any;
}
/**
* 个人用户客户端类
* 提供个人用户相关的API操作,包括用户信息管理、实名认证等功能
* @class PersonageClient
*/
declare class PersonageClient {
/** 客户端配置 */
private config;
/** HTTP请求服务 */
private service;
/**
* 创建个人用户客户端实例
* @param {ClientConfigOptions} options - 客户端配置选项
*/
constructor(options: ClientConfigOptions);
/**
* 获取用户信息
* 获取指定用户的详细信息
*
* @param {GetUserInfoParams} params - 获取用户信息的请求参数
* @param {string|number} params.userId - 用户ID,必填参数,用于指定要查询的用户
* @param {string} [params.includeFields] - 可选,指定要返回的字段,多个字段用逗号分隔
* @param {boolean} [params.includeVerification] - 可选,是否包含用户认证信息
* @param {boolean} [params.includeSignatures] - 可选,是否包含用户签名信息
* @param {any} [params.otherParams] - 其他可选参数,根据API需求可扩展
*/
getUserInfo(params: GetUserInfoParams): Promise<ApiResult>;
/**
* 获取个人认证页面接口(H5 和 PC)
* 获取个人用户实名认证的页面URL
*
* @param {PersonalAuthenticationV2Params} params - 请求参数对象
* @returns {Promise<ApiResult>} 认证页面信息
*/
postPersonalAuthenticationV2(params: PersonalAuthenticationV2Params): Promise<ApiResult>;
/**
* 个人实名信息认证结果查询
* 查询用户的实名认证状态和结果
*
* @param {QueryAuthenticationResultParams} params - 请求参数对象
* @returns {Promise<ApiResult>} 认证结果信息
*/
queryAuthenticationResult(params: QueryAuthenticationResultParams): Promise<ApiResult>;
/**
* 个人实名认证接口
* 提交个人用户的实名认证信息
*
* @param {SubmitAuthenticationParams} params - 请求参数对象
* @returns {Promise<ApiResult>} 认证提交结果
*/
submitAuthentication(params: SubmitAuthenticationParams): Promise<ApiResult>;
/**
* 发送短信验证码
* 发送短信验证码到指定手机号
*
* @param {SendSmsParams} params - 请求参数对象
* @returns {Promise<ApiResult>} 短信验证码信息
*/
sendSms(params: SendSmsParams$1): Promise<ApiResult>;
}
/**
* 企业服务相关的参数模型定义
*/
/**
* 企业入驻并发送认证链接参数
*/
interface AddEnterpriseAuthenticationParams {
/** 企业统一社会信用码 */
creditCode: string;
/** 企业法人名称 */
legalPerson: string;
/** 企业法人手机号 */
legalPhone: string;
/** 企业认证通过回调地址 */
callbackInterfaceUrl?: string;
/** 经办人姓名 */
agentName: string;
/** 经办人手机号 */
agentPhone: string;
/** 企业名称 */
enterpriseName: string;
/** 其他可选参数 */
[key: string]: any;
}
/**
* 机构实名认证参数
*/
interface EnterpriseAuthParams {
/** 经办人编号(经办人需要在平台完成认证,经办人会默认为企业管理员) */
operatorUserIdentifier?: string;
/** 企业名称 */
enterpriseName: string;
/** 企业社会信用代码 */
enterpriseCreditCode: string;
/** 企业法人名称 */
legalPersonName: string;
/** 企业法人身份证 */
legalPersonCard: string;
/** 企业法人手机号 */
legalPersonPhone: string;
/** 企业法人手机验证码 */
legalPersonPhoneCode: string;
/** 认证后异步回调地址 */
callbackInterfaceUrl?: string;
}
/**
* 对公打款认证--填写企业信息及对公信息参数
*/
interface CorporateAttestationParams {
/** 经办人编号(经办人需要在平台完成认证,经办人会默认为企业管理员) */
operatorUserIdentifier?: string;
/** 企业名称 */
enterpriseName: string;
/** 企业社会信用代码 */
enterpriseCreditCode: string;
/** 企业法人名称 */
legalPersonName: string;
/** 企业法人身份证 */
legalPersonCard: string;
/** 企业法人手机号 */
legalPersonPhone: string;
/** 企业对公账号 */
cardNo: string;
/** 银行名称 */
bankName: string;
/** 认证后异步回调地址 */
callbackInterfaceUrl?: string;
}
/**
* 对公打款认证--填写打款金额完成认证参数
*/
interface CorporateSubmitAuthenticationParams {
/** 企业编码 */
enterpriseIdentifier: string;
/** 打款金额(必须是小数形式,如:0.01) */
remittanceMoney: number;
}
interface SendSmsParams {
/** 用户手机号 */
phone: string;
/** 其他可选参数 */
[key: string]: any;
}
/**
* 企业客户端类
* 提供企业相关的API操作,包括企业认证、信息管理等功能
* @class EnterpriseClient
*/
declare class EnterpriseClient {
/** 客户端配置 */
private config;
/** HTTP请求服务 */
private service;
/**
* 创建企业客户端实例
* @param {ClientConfigOptions} options - 客户端配置选项
*/
constructor(options: ClientConfigOptions);
/**
* 企业入驻并发送认证链接
* 创建企业账户并向法人和经办人发送认证链接
*
* @param {AddEnterpriseAuthenticationParams} params - 请求参数对象
* @returns {Promise<ApiResult>} 企业入驻结果
*/
getAddEnterpriseAuthentication(params: AddEnterpriseAuthenticationParams): Promise<ApiResult>;
/**
* 机构实名认证---接口认证
*
* @param {EnterpriseAuthParams} params - 请求参数对象
* @returns {Promise<ApiResult>} 企业入驻结果
*/
enterpriseAuth(params: EnterpriseAuthParams): Promise<ApiResult>;
/**
* 对公打款认证--填写企业信息及对公信息
*
* @param {CorporateAttestationParams} params - 请求参数对象
* @returns {Promise<ApiResult>} 企业入驻结果
*/
getCorporateAttestation(params: CorporateAttestationParams): Promise<ApiResult>;
/**
* 对公打款认证--填写打款金额完成认证
*
* @param {CorporateSubmitAuthenticationParams} params - 请求参数对象
* @returns {Promise<ApiResult>} 企业入驻结果
*/
getCorporateSubmitAuthentication(params: CorporateSubmitAuthenticationParams): Promise<ApiResult>;
/**
* 发送短信验证码
* 发送短信验证码到指定手机号
*
* @param {SendSmsParams} params - 请求参数对象
* @returns {Promise<ApiResult>} 短信验证码信息
*/
sendSms(params: SendSmsParams): Promise<ApiResult>;
}
/**
* 合同签署服务相关的参数模型定义
*/
/**
* 指定签署方和签署内容发起签署参数
*/
interface AddContractSignParams extends Record<string, any> {
/** 发起类型 0-个人 1-企业 */
launchType: number;
/** 发起用户手机号 */
launchSubject: string;
/** 发起用户姓名 */
launchName: string;
/** 发起企业名称(launchType为1企业发起合同时必传) */
launchEnterpriseName?: string;
/** 模板编号 */
contractModelNum: string;
/** 合同名称 */
contractName: string;
/** 签署截止时间(格式 yyyy-MM-dd HH:mm:ss) */
signEndTime: string;
/** 签署人信息 */
signatoryInfos?: Array<{
/** 签署人姓名 */
userName: string;
/** 签署人电话 */
userPhone: string;
/** 类型 0-个人 1-企业 */
type: number;
/** 企业名称(Type=1时必传) */
enterpriseName?: string;
/** 签署印章 1用户手绘章 2用户模板章 3企业章 4合同章 5法人章 */
signMode: string;
/** 是否需要静默签:0不需要 1需要(个人不支持静默签署) */
silenceSign: string;
/** 签署方编号 */
signNumber: string;
}>;
/** 签署类型 0网页链接 1短信链接 */
signatureType: number;
/** 模板内需填写的内容列表(php) */
inputValues_json: string;
/** 模板控件编号(php) */
controlNumber?: string;
/** 填写内容(php) */
writeContent?: string;
/** 模板内需填写的内容列表 */
inputValues: Array<{
/** 模板控件编号 */
controlNumber: string;
/** 填写内容 */
writeContent: string;
}>;
/** 客户发起时定义的编号 */
customerOriginationNumber: string;
}
/**
* 查询合同详情参数
*/
interface QuerySignInfoByContractNumParams {
/** 合同编号 */
contractNum: string;
/** 其他可选参数 */
[key: string]: any;
}
/**
* 查询合同模板参数
*/
interface SignTemplateListParams {
/** 是否启用 0-否 1-是 */
isOpen?: number;
/** 其他可选参数 */
[key: string]: any;
}
/**
* 查询模板详情参数
*/
interface SignTemplateDetailsParams {
/** 模板编号 */
contractModelNum: string;
/** 其他可选参数 */
[key: string]: any;
}
/**
* 合同发起预览填V2参数
*/
interface LaunchPreviewV2Params {
/** 模板编号 */
contractModelNum: string;
/** 模板内需填写的内容列表(JSON字符串) */
inputValuesJson: string;
/** 模板控件编号 */
controlNumber: string;
/** 填写内容 */
writeContent: string;
/** 客户发起时定义的编号(唯一标识) */
customerOriginationNumber: string;
/** 其他可选参数 */
[key: string]: any;
}
/**
* 静默签署盖章接口参数
*/
interface SignContractSignParams {
/** 客户发起时定义的编号 */
customerOriginationNumber: string;
/** 发起用户手机号 */
userPhone: string;
/** 其他可选参数 */
[key: string]: any;
}
declare class ContractSignClient {
private config;
private service;
constructor(options: ClientConfigOptions);
/**
* 指定签署方和签署内容发起签署
* @param {AddContractSignParams} params - 指定签署方和签署内容发起签署参数
* @returns {Promise<ApiResult>} 指定签署方和签署内容发起签署结果
*/
addContractSign(params: AddContractSignParams): Promise<ApiResult>;
/**
* 静默签署盖章接口
* @param params
* @param {string} params.customerOriginationNumber - 客户发起时定义的编号
* @param {string} params.userPhone - 发起用户手机号
* @returns
*/
signContractSign(params: SignContractSignParams): Promise<ApiResult>;
/**
* 查询合同详情
* @param {QuerySignInfoByContractNumParams} params - 查询合同详情参数
* @param {string} params.contractNum - 合同编号
* @param {string} params.sign - 签名
* @returns {Promise<ApiResult>} 查询合同详情结果
*/
querySignInfoByContractNum(params: QuerySignInfoByContractNumParams): Promise<ApiResult>;
/**
* 查询合同模板列表
* @param {SignTemplateListParams} params - 查询合同模板参数
* @param {number} params.isOpen - 是否启用 0-否 1-是
* @param {string} params.sign - 签名
* @returns {Promise<ApiResult>} 查询合同模板结果
*/
signTemplateList(params: SignTemplateListParams): Promise<ApiResult>;
/**
* 查询模板详情
* @param {SignTemplateDetailsParams} params - 查询模板详情参数
* @param {string} params.contractModelNum - 模板编号
* @param {string} params.sign - 签名
* @returns {Promise<ApiResult>} 查询模板详情结果
*/
signTemplateDetails(params: SignTemplateDetailsParams): Promise<ApiResult>;
/**
* 合同发起预览填V2
* @param {LaunchPreviewV2Params} params - 合同发起预览填V2参数
* @returns {Promise<ApiResult>} 合同发起预览填V2结果
*/
launchPreviewV2(params: LaunchPreviewV2Params): Promise<ApiResult>;
}
export { ClientConfig, ClientConfigOptions, ContractSignClient, EnterpriseClient, PersonageClient };