// // bymsSDK.h // bymsSDK // // #import #import "XTQMData.h" //控制台日志打印 0不打印 1打印 #define KcontrolLogPrint @"1" @interface bymsSDK : NSObject typedef void(^ ResponseSuccessBlock)(NSDictionary *responseObject); typedef void(^ XTQMDataResponseSuccessBlock)(XTQMData *data); typedef void(^ ResponseJsonSuccessBlock)(NSString *responseObject); typedef void(^ ResponseFailBlock)(NSError *error); ///获取设备号 +(XTQMData *)getDeviceId; #pragma mark - 管理接口 /// 初始化服务 /// @param serverId 服务id 应用ID规则:不能为空,且为2位; /// @param szHostAddress 服务地址 http//:ip:port + (XTQMData *)initServerAddress:(NSString *)serverId szHostAddress:(NSString *)szHostAddress; ///获取证书列表 + (XTQMData *)getCertList; +(NSString * )SM3:(NSString *)pwd username:(NSString *)username; #pragma mark - 2.3证书申请 #pragma mark 1.纳税人、自然人接口 /// 本接口用于申请协同签名用户证书,并自动写入本地移动终端。税务信息系统APP调用SDK证书申请接口,SDK与后台进行数据交互,完成协同签名证书签发并返回给客户端,自动写入移动终端。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 用户手机号 /// @param userSbh 纳税人识别号 |身份证号码 /// @param userPin 用户设置的PIN码 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) applyCert:(NSString *)ryType userNumber:(NSString *)userNumber userSbh:(NSString *)userSbh userPin:(NSString *)userPin successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark 2.税务人员、运维人员接口 /// 本接口用于申请协同签名用户证书,并自动写入本地移动终端。税务信息系统APP调用SDK证书申请接口,SDK与后台进行数据交互,完成协同签名证书签发并返回给客户端,自动写入移动终端。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 税务人员代码|用户手机号 /// @param userPin 用户设置的PIN码 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) applyCert:(NSString *)ryType userNumber:(NSString *)userNumber userPin:(NSString *)userPin successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark - 2.4证书查看 #pragma mark 1.纳税人、自然人接口 /// 本接口用于查看用户对应的证书。税务信息系统APP调用SDK证书查看接口,查看用户对应的证书详细信息。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 用户手机号 /// @param userSbh 纳税人识别号 |身份证号码 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) getCertInfo:(NSString *)ryType userNumber:(NSString *)userNumber userSbh:(NSString *)userSbh userPin:(NSString *)userPin successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark 2.税务人员、运维人员接口 /// 本接口用于查看用户对应的证书。税务信息系统APP调用SDK证书查看接口,查看用户对应的证书详细信息。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 税务人员代码|用户手机号 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) getCertInfo:(NSString *)ryType userNumber:(NSString *)userNumber userPin:(NSString *)userPin successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark - 2.5证书下载 #pragma mark 1.纳税人、自然人接口 /// 本接口用于申请证书后证书没有写入客户端本地,通过下载证书将证书再次下载自动写入客户端本地。税务信息系统APP调用SDK证书下载接口,SDK与后台进行数据交互,完成协同签名证书下载并返回给客户端,自动写入移动终端。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 用户手机号 /// @param userSbh 纳税人识别号 |身份证号码 /// @param userPin 用户设置的PIN码 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) downloadCert:(NSString *)ryType userNumber:(NSString *)userNumber userSbh:(NSString *)userSbh userPin:(NSString *)userPin successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark 2.税务人员、运维人员接口 /// 本接口用于申请证书后证书没有写入客户端本地,通过下载证书将证书再次下载自动写入客户端本地。税务信息系统APP调用SDK证书下载接口,SDK与后台进行数据交互,完成协同签名证书下载并返回给客户端,自动写入移动终端。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 税务人员代码|用户手机号 /// @param userPin 用户设置的PIN码 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) downloadCert:(NSString *)ryType userNumber:(NSString *)userNumber userPin:(NSString *)userPin successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark - 2.6证书更新 #pragma mark 1.纳税人、自然人接口 /// 本接口用于用户信息发生变更时更新协同签名证书。税务信息系统APP调用SDK证书更新接口,SDK与后台进行数据交互,完成协同签名证书更新。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 用户手机号 /// @param userSbh 纳税人识别号 |身份证号码 /// @param userPin 用户设置的PIN码 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) updateCert:(NSString *)ryType userNumber:(NSString *)userNumber userSbh:(NSString *)userSbh userPin:(NSString *)userPin successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark 2.税务人员、运维人员接口 /// 本接口用于用户信息发生变更时更新协同签名证书。税务信息系统APP调用SDK证书更新接口,SDK与后台进行数据交互,完成协同签名证书更新。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 税务人员代码|用户手机号 /// @param userPin 用户设置的PIN码 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) updateCert:(NSString *)ryType userNumber:(NSString *)userNumber userPin:(NSString *)userPin successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark - 2.7证书注销 #pragma mark 1.纳税人、自然人接口 /// 本接口用于注销协同签名证书并同步删除本地证书数据。税务信息系统APP调用SDK证书注销接口,SDK与后台进行数据交互,完成协同签名证书注销并返回给客户端。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 用户手机号 /// @param userSbh 纳税人识别号 |身份证号码 /// @param userPin 用户设置的PIN码 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) logoutCert:(NSString *)ryType userNumber:(NSString *)userNumber userSbh:(NSString *)userSbh userPin:(NSString *)userPin successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark 2.税务人员、运维人员接口 /// 本接口用于注销协同签名证书并同步删除本地证书数据。税务信息系统APP调用SDK证书注销接口,SDK与后台进行数据交互,完成协同签名证书注销并返回给客户端。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 税务人员代码|用户手机号 /// @param userPin 用户设置的PIN码 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) logoutCert:(NSString *)ryType userNumber:(NSString *)userNumber userPin:(NSString *)userPin successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark - 2.8 证书是否存在 #pragma mark 1.纳税人、自然人接口 /// 本接口用于检查本地是否存在协同签名证书,即用户是否申请协同签名证书,在做具体业务之前可以调用此接口判断用户是否申请证书,如果证书不存在则调用申请证书接口进行证书申请。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 用户手机号 /// @param userSbh 纳税人识别号 |身份证号码 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) checkCert:(NSString *)ryType userNumber:(NSString *)userNumber userSbh:(NSString *)userSbh successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark 2.税务人员、运维人员接口 /// 本接口用于注销协同签名证书并同步删除本地证书数据。税务信息系统APP调用SDK证书注销接口,SDK与后台进行数据交互,完成协同签名证书注销并返回给客户端。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 税务人员代码|用户手机号 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) checkCert:(NSString *)ryType userNumber:(NSString *)userNumber successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark - 2.9 修改pin码 #pragma mark 1.纳税人、自然人接口 /// 用户调用修改PIN码接口实现对PIN码的修改。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 用户手机号 /// @param userSbh 纳税人识别号 |身份证号码 /// @param oldPin pin码 /// @param newPin 新pin码 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) changePin:(NSString *)ryType userNumber:(NSString *)userNumber userSbh:(NSString *)userSbh oldPin:(NSString *)oldPin newPin:(NSString *)newPin successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark 2.税务人员、运维人员接口 /// 用户调用修改PIN码接口实现对PIN码的修改。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 税务人员代码|用户手机号 /// @param oldPin pin码 /// @param newPin 新pin码 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) changePin:(NSString *)ryType userNumber:(NSString *)userNumber oldPin:(NSString *)oldPin newPin:(NSString *)newPin successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark - 2.10 协同签名 #pragma mark 1.纳税人、自然人接口 /// 本接口用于检查本地是否存在协同签名证书,即用户是否申请协同签名证书,在做具体业务之前可以调用此接口判断用户是否申请证书,如果证书不存在则调用申请证书接口进行证书申请。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 用户手机号 /// @param userSbh 纳税人识别号 |身份证号码 /// @param userPin 用户设置的PIN码 /// @param original 待签名的原文数据,需要是UTF8字符集的,并转换为16进制串形式(1个字节转换为2个16进制字符)。 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) callSM2Sign:(NSString *)ryType userNumber:(NSString *)userNumber userSbh:(NSString *)userSbh userPin:(NSString *)userPin original:(NSString *)original successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark 2.税务人员、运维人员接口 /// 本接口用于实现协同签名操作并返回签名结果。税务信息系统APP调用SDK协同签名接口,SDK与后台进行数据交互,完成协同签名,得到签名结果。 /// @param ryType 人员类型 1:纳税人 2:税务人员 3:运维人员 4:自然人 /// @param userNumber 税务人员代码|用户手机号 /// @param userPin 用户设置的PIN码 /// @param original 待签名的原文数据,需要是UTF8字符集的,并转换为16进制串形式(1个字节转换为2个16进制字符)。 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) callSM2Sign:(NSString *)ryType userNumber:(NSString *)userNumber userPin:(NSString *)userPin original:(NSString *)original successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark - 2.11身份认证clientHello #pragma mark 1.纳税人、自然人接口 /// 本接口用于生成用于身份认证的clientHello。税务信息系统APP调用SDK身份认证clientHello接口,生成clientHello结果。 /// @param userNumber 用户手机号 /// @param userSbh 纳税人识别号 |身份证号码 /// @param userPin 用户设置的PIN码 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) clientHello:(NSString *)ryType userNumber:(NSString *)userNumber userSbh:(NSString *)userSbh userPin:(NSString *)userPin successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark 2.税务人员、运维人员接口 /// 本接口用于生成用于身份认证的clientHello。税务信息系统APP调用SDK身份认证clientHello接口,生成clientHello结果。 /// @param userNumber 税务人员代码|用户手机号 /// @param userPin 用户设置的PIN码 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) clientHello:(NSString *)ryType userNumber:(NSString *)userNumber userPin:(NSString *)userPin successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark - 2.12身份认证clientAuth /// 本接口用于生成用于身份认证的clientAuth。税务信息系统APP调用SDK身份认证clientAuth接口,SDK与后台进行数据交互,生成clientAuth结果。 /// @param serverHello 服务端生成的serverHello /// @param random 服务端返回的随机数 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) clientAuth:(NSString *)serverHello random:(NSString *)random successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark - 2.13协同解密 #pragma mark 1.纳税人、自然人接口 /// 本接口用于对加密数据的解密,并返回解密结果。税务信息系统APP调用SDK协同解密接口,SDK与后台进行数据交互,完成协同解密,得到解密结果。 /// @param userNumber 用户手机号 /// @param userSbh 纳税人识别号 |身份证号码 /// @param userPin 用户设置的PIN码 /// @param data 待解密的加密数据 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) callDecrypt:(NSString *)ryType userNumber:(NSString *)userNumber userSbh:(NSString *)userSbh userPin:(NSString *)userPin data:(NSString *)data successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark 2.税务人员、运维人员接口 /// 本接口用于对加密数据的解密,并返回解密结果。税务信息系统APP调用SDK协同解密接口,SDK与后台进行数据交互,完成协同解密,得到解密结果。 /// @param userNumber 税务人员代码|用户手机号 /// @param userPin 用户设置的PIN码 /// @param data 待解密的加密数据 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) callDecrypt:(NSString *)ryType userNumber:(NSString *)userNumber userPin:(NSString *)userPin data:(NSString *)data successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark - 2.14扫码处理 #pragma mark 1.纳税人、自然人接口 ///本接口用于扫码身份认证和扫码数字签名。税务信息系统APP扫描二维码后调用SDK扫码处理接口将扫描结果传入,SDK解析二维码数据,判断二维码用途(扫码数字签名、扫码身份认证),得到扫码处理结果,然后根据返回结果去协同签名安全管理中心获取身份认证或签名结果。 /// @param ryType 人员类型 /// @param userNumber 用户手机号 /// @param userSbh 纳税人识别号 |身份证号码 /// @param userPin 用户设置的PIN码 /// @param scanResult 二维码数据 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) resolvingScanV1:(NSString *)ryType userNumber:(NSString *)userNumber userSbh:(NSString *)userSbh userPin:(NSString *)userPin scanResult:(NSString *)scanResult successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; #pragma mark 2.税务人员、运维人员接口 ///本接口用于扫码身份认证和扫码数字签名。税务信息系统APP扫描二维码后调用SDK扫码处理接口将扫描结果传入,SDK解析二维码数据,判断二维码用途(扫码数字签名、扫码身份认证),得到扫码处理结果,然后根据返回结果去协同签名安全管理中心获取身份认证或签名结果。 /// @param ryType 人员类型 /// @param userNumber 税务人员代码|用户手机号 /// @param userPin 用户设置的PIN码 /// @param scanResult 二维码数据 /// @param successBlock 成功回调 /// @param failBlock 失败回调 +(void) resolvingScanV1:(NSString *)ryType userNumber:(NSString *)userNumber userPin:(NSString *)userPin scanResult:(NSString *)scanResult successBlock:(XTQMDataResponseSuccessBlock)successBlock failBlock:( ResponseFailBlock)failBlock; @end