### Get SDK Basic Information (Objective-C) Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Retrieve SDK version, current server environment type, address (for demo), and display language. Also shows how to set the display language and trigger the PIN input window. ```objective-c // 获取SDK版本号 NSString *version = [BjcaSignManager bjcaVersion]; NSLog(@"SDK版本: %@", version); // 获取当前服务器环境类型 BjcaServerType serverType = [BjcaSignManager bjcaServerType]; // 获取当前环境地址(仅用于demo调试) NSString *address = [BjcaSignManager bjcaAddress]; // 获取当前SDK显示语言 NSString *language = [BjcaSignManager bjcaAppLanguage]; // 设置SDK显示语言 // "zh" - 中文, "en" - 英文, "" - 跟随系统 [BjcaSignManager bjcaSetAppLanguage:@"zh"]; // 显示密码输入键盘 [BjcaSignManager.bjcaShareBjcaSignManager showPinWindow]; ``` -------------------------------- ### Get User Information Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Retrieve detailed information for the currently logged-in user with a downloaded certificate, including user openId and certificate status. ```APIDOC ## Get User Information ### Description Retrieve detailed information for the currently logged-in user with a downloaded certificate, including user openId and certificate status. ### Methods `bjcaUserInfo:` `bjcaOpenId` `bjcaStampPic` ### Endpoint N/A (SDK methods) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```objective-c // Request user information (asynchronous, results via delegate callback) [BjcaSignManager.bjcaShareBjcaSignManager bjcaUserInfo:@"your_client_id"]; // Directly get user openId (returns nil if certificate does not exist) NSString *openId = [BjcaSignManager bjcaOpenId]; // Get signature image Base64 (returns base64 string if exists, nil otherwise) NSString *stampBase64 = [BjcaSignManager bjcaStampPic]; ``` ### Response - `bjcaUserInfo:`: Results are handled via the `BjcaSignDelegate` callback, specifically for `BjcaBusinessUserInfo`. - `bjcaOpenId`: Returns `NSString` (user's openId) or `nil`. - `bjcaStampPic`: Returns `NSString` (Base64 encoded signature image) or `nil`. ``` -------------------------------- ### SDK Initialization and Configuration Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Methods for retrieving SDK metadata, setting language preferences, and initializing the SDK with a client ID and environment. ```APIDOC ## SDK Initialization and Configuration ### Description Methods to manage SDK settings, including version retrieval, language configuration, and environment initialization. ### Methods - `[BjcaSignManager bjcaVersion]` - Returns the SDK version string. - `[BjcaSignManager bjcaServerType]` - Returns the current `BjcaServerType`. - `[BjcaSignManager bjcaSetAppLanguage:(NSString *)]` - Sets the SDK display language ("zh", "en", or "" for system default). - `[BjcaSignManager.bjcaShareBjcaSignManager startWithClientId:(NSString *) environment:(BjcaServerType)]` - Initializes the SDK. ### Request Example [BjcaSignManager bjcaSetAppLanguage:@"zh"]; [BjcaSignManager.bjcaShareBjcaSignManager startWithClientId:@"your_client_id" environment:BjcaPublic]; ``` -------------------------------- ### Initialize BJCA Sign SDK Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Initialize the SDK with your client ID and select the appropriate server environment. This is a prerequisite for all SDK functionalities. The SDK also allows for optional customization of the navigation bar UI. ```objective-c #import // Get SDK singleton and set delegate BjcaSignManager.bjcaShareBjcaSignManager.bjcaSignDelegate = self; // Initialize SDK, set client ID and server environment // Environment types: BjcaPublic(Production), BjcaSZYX(Medical Information), BjcaIntegrate(Integration), BjcaTest(Test), BjcaDev(Development) [BjcaSignManager.bjcaShareBjcaSignManager startWithClientId:@"your_client_id" environment:BjcaPublic]; // Optional: Customize navigation bar UI style [BjcaSignManager.bjcaShareBjcaSignManager setupUIForNavigationBarTintColor:[UIColor whiteColor] navigationBarBackgroundColor:[UIColor blueColor]]; ``` -------------------------------- ### SDK Initialization Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Initialize the SDK and set the server environment. This is a prerequisite for using all SDK functionalities. BjcaSignManager is the core singleton management class. ```APIDOC ## SDK Initialization ### Description Initialize the SDK and set the server environment. This is a prerequisite for using all SDK functionalities. `BjcaSignManager` is the core singleton management class, configured by setting the `clientId` and environment type. ### Method `startWithClientId:environment:` ### Endpoint N/A (SDK method) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```objective-c #import // Get SDK singleton and set delegate BjcaSignManager.bjcaShareBjcaSignManager.bjcaSignDelegate = self; // Initialize SDK, set client ID and server environment // Environment types: BjcaPublic (Production), BjcaSZYX (Medical Information), BjcaIntegrate (Integration), BjcaTest (Test), BjcaDev (Development) [BjcaSignManager.bjcaShareBjcaSignManager startWithClientId:@"your_client_id" environment:BjcaPublic]; // Optional: Customize navigation bar UI style [BjcaSignManager.bjcaShareBjcaSignManager setupUIForNavigationBarTintColor:[UIColor whiteColor] navigationBarBackgroundColor:[UIColor blueColor]]; ``` ### Response N/A (Initialization is synchronous, results are handled via delegate callbacks) ### Error Handling Errors are reported via the `BjcaSignDelegate` protocol. ``` -------------------------------- ### Environment and Business Enums Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Definitions for server environments and business operation types supported by the SDK. ```APIDOC ## Environment and Business Enums ### BjcaServerType - `BjcaPublic`: Production environment - `BjcaSZYX`: Medical information environment - `BjcaIntegrate`: Integration environment - `BjcaTest`: Test environment - `BjcaDev`: Development environment - `BjcaCustom`: Custom domain environment ### BjcaBusinessType - `BjcaBusinessCertDown`: Certificate download - `BjcaBusinessCertUpdate`: Certificate update - `BjcaBusinessCertReset`: Certificate password reset - `BjcaBusinessStamp`: Modify stamp - `BjcaBusinessSignList`: Batch signing - `BjcaBusinessQrCode`: QR code business - `BjcaBusinessFreePin`: Enable password-free - `BjcaBusinessFingerPin`: Enable fingerprint - `BjcaBusinessAutomationSign`: Automatic signing ``` -------------------------------- ### Retrieve User Information Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Fetch detailed information for the currently logged-in user with a downloaded certificate, including their openId and certificate status. Also provides methods to directly access openId and the stamp image Base64 string. ```objective-c // Request user information (asynchronous, results via delegate callback) [BjcaSignManager.bjcaShareBjcaSignManager bjcaUserInfo:@"your_client_id"]; // Directly get user openId (returns nil if no certificate exists) NSString *openId = [BjcaSignManager bjcaOpenId]; // Get stamp image Base64 (returns base64 string if exists, nil otherwise) NSString *stampBase64 = [BjcaSignManager bjcaStampPic]; ``` -------------------------------- ### Configure Electronic Signatures Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Sets up user electronic signature images for single or batch vendor configurations. ```objective-c // 单个签章配置 [BjcaSignManager.bjcaShareBjcaSignManager bjcaSetStamp:@"your_client_id" curViewCtrl:self navColor:[UIColor redColor] navFontColor:[UIColor yellowColor]]; // 批量签章配置(多个子厂商) NSArray *firmIdList = @[@"firm_id_1", @"firm_id_2", @"firm_id_3"]; [BjcaSignManager.bjcaShareBjcaSignManager bjcaSetStamp:@"your_client_id" firmIdList:firmIdList curViewCtrl:self navColor:nil navFontColor:nil]; ``` -------------------------------- ### Manage Automated Signing Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Configures and manages automatic signing using hosted certificates for background processing. ```objective-c // 开启自动签名 [BjcaSignManager.bjcaShareBjcaSignManager signForSignAuto:@"your_client_id" sysTag:@"system_tag_001" curViewCtrl:self]; // 获取自动签名状态 [BjcaSignManager.bjcaShareBjcaSignManager signAutoInfo:@"your_client_id"]; // 停止自动签名 [BjcaSignManager.bjcaShareBjcaSignManager stopSignAuto:@"your_client_id" sysTag:@"system_tag_001"]; // 医网信APP专用:带子厂商ID开启自动签名 [BjcaSignManager.bjcaShareBjcaSignManager signForSignAutoWithFirmId:@"sub_firm_id" clientId:@"your_client_id" sysTag:@"system_tag_001" curViewCtrl:self]; // 医网信APP专用:带子厂商ID停止自动签名 [BjcaSignManager.bjcaShareBjcaSignManager stopSignAutoWithFirmId:@"sub_firm_id" clientId:@"your_client_id" sysTag:@"system_tag_001"]; ``` -------------------------------- ### Implement BjcaSignDelegate for Callbacks Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Implement the BjcaSignDelegate protocol to receive callback results for all SDK business operations. The callback dictionary contains 'businessType', 'status' (0 for success), 'message', and 'data'. ```objective-c @interface YourViewController () @end @implementation YourViewController - (void)BjcaFinished:(NSDictionary *)backParam { BjcaBusinessType business = [backParam[@"businessType"] integerValue]; NSString *status = backParam[@"status"]; NSString *message = backParam[@"message"]; id data = backParam[@"data"]; switch (business) { case BjcaBusinessCertDown: NSLog(@"Certificate download result: %@, Message: %@", status, message); break; case BjcaBusinessSignList: NSLog(@"Signature result: %@, Data: %@", status, data); break; case BjcaBusinessUserInfo: if ([status isEqualToString:@"0"]) { // User info obtained successfully NSString *openId = BjcaSignManager.bjcaOpenId; NSString *stampBase64 = BjcaSignManager.bjcaStampPic; BOOL isFreePin = BjcaSignManager.bjcaExistsFreePin; } break; case BjcaSignForSignAuto: NSLog(@"Enable auto-sign result: %@", status); break; default: break; } } @end ``` -------------------------------- ### Perform OAuth Login Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Initiates OAuth authorization login flow within the application. ```objective-c // 开始OAuth登录(APP使用) [BjcaSignManager.bjcaShareBjcaSignManager startOauthLogin:@"request_uuid" grantOpenId:@"grant_open_id" grantUserName:@"授权人姓名"]; ``` -------------------------------- ### Perform Batch Signing Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Executes signing operations for multiple documents identified by unique IDs. ```objective-c // 准备待签名的uniqueId列表 NSMutableArray *uniqueIds = [NSMutableArray arrayWithArray:@[@"unique_id_001", @"unique_id_002", @"unique_id_003"]]; // 执行批量签名 [BjcaSignManager.bjcaShareBjcaSignManager bjcaBatchSignList:uniqueIds userClientId:@"your_client_id" curViewCtrl:self]; // 使用子厂商ID进行签名(医网信APP专用) [BjcaSignManager.bjcaShareBjcaSignManager signWithFirmId:@"sub_firm_id" uniqueIds:uniqueIds userClientId:@"your_client_id" curViewCtrl:self]; ``` -------------------------------- ### Handle QR Code Signing Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Processes signing operations via QR code scanning and handles authorization login. ```objective-c // 二维码扫码签名 NSString *qrCodeString = @"scanned_qr_code_content"; [BjcaSignManager.bjcaShareBjcaSignManager bjcaQrSign:qrCodeString userClientId:@"your_client_id" curViewCtrl:self]; // 二维码信息识别处理(可选择是否处理授权登录) [BjcaSignManager.bjcaShareBjcaSignManager qrDisposeWithString:qrCodeString isHandleGrantOauth:YES]; ``` -------------------------------- ### Certificate Download Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Download the user's digital certificate. Users need to enter their phone number and pass identity verification to obtain the certificate, which is essential for electronic signatures. ```APIDOC ## Certificate Download ### Description Download the user's digital certificate. Users need to enter their phone number and pass identity verification to obtain the certificate, which is essential for electronic signatures. ### Method `bjcaCertDown:phoneNum:curViewCtrl:` `bjcaCertDown:phoneNum:firmId:curViewCtrl:` ### Endpoint N/A (SDK method) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```objective-c // Basic certificate download [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertDown:@"your_client_id" phoneNum:@"13800138000" curViewCtrl:self]; // Certificate download with sub-firm ID [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertDown:@"your_client_id" phoneNum:@"13800138000" firmId:@"sub_firm_id" curViewCtrl:self]; ``` ### Response N/A (Results are handled via the `BjcaSignDelegate` callback. ``` -------------------------------- ### Server Environment Type Enum (Objective-C) Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Defines the enumeration for different server environments supported by the SDK. Use this to configure the SDK for development, testing, or production. ```objective-c // 服务器环境类型枚举 BjcaServerType typedef NS_ENUM(NSInteger, BjcaServerType) { BjcaPublic, // 正式环境 BjcaSZYX, // 医信环境 BjcaIntegrate, // 集成环境 BjcaTest, // 测试环境 BjcaDev, // 开发环境 BjcaCustom, // 自定义域名环境 }; // 使用示例 [BjcaSignManager.bjcaShareBjcaSignManager startWithClientId:@"your_client_id" environment:BjcaPublic]; ``` -------------------------------- ### Configure Password-Free Signing Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Enables or disables password-free signing for a specified duration to improve efficiency. ```objective-c // 检查当前是否处于免密状态 BOOL isFreePin = [BjcaSignManager bjcaExistsFreePin]; if (isFreePin) { NSLog(@"当前处于免密状态"); } // 开启免密签名(参数为天数,支持1-60天) int freePinDays = 7; [BjcaSignManager.bjcaShareBjcaSignManager bjcaFreePinSign:freePinDays clientId:@"your_client_id" curViewCtrl:self]; // 清除免密状态 [BjcaSignManager bjcaRemovePin]; ``` -------------------------------- ### QR Code Signing API Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Perform signing operations by scanning a QR code. Supports QR code content recognition and processing. ```APIDOC ## QR Code Signing Perform signing operations by scanning a QR code, supporting QR code content recognition and processing. ### QR Code Scan and Sign ```objective-c // QR code scan and sign NSString *qrCodeString = @"scanned_qr_code_content"; [BjcaSignManager.bjcaShareBjcaSignManager bjcaQrSign:qrCodeString userClientId:@"your_client_id" curViewCtrl:self]; ``` ### QR Code Information Recognition and Processing ```objective-c // QR code information recognition and processing (optional handling of authorization login) [BjcaSignManager.bjcaShareBjcaSignManager qrDisposeWithString:qrCodeString isHandleGrantOauth:YES]; ``` ``` -------------------------------- ### Delegate Callback Handling Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Implement the `BjcaSignDelegate` protocol to receive callback results for all SDK business operations. The callback dictionary contains `businessType`, `status`, `message`, and `data`. ```APIDOC ## Delegate Callback Handling ### Description Implement the `BjcaSignDelegate` protocol to receive callback results for all SDK business operations. The callback dictionary contains `businessType` (business type), `status` (status code, 0 for success), `message` (message), and `data` (data). ### Method `BjcaFinished:(NSDictionary *)backParam` ### Endpoint N/A (SDK delegate method) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```objective-c @interface YourViewController () @end @implementation YourViewController - (void)BjcaFinished:(NSDictionary *)backParam { BjcaBusinessType business = [backParam[@"businessType"] integerValue]; NSString *status = backParam[@"status"]; NSString *message = backParam[@"message"]; id data = backParam[@"data"]; switch (business) { case BjcaBusinessCertDown: NSLog(@"Certificate download result: %@, Message: %@", status, message); break; case BjcaBusinessSignList: NSLog(@"Signature result: %@, Data: %@", status, data); break; case BjcaBusinessUserInfo: if ([status isEqualToString:@"0"]) { // User info obtained successfully NSString *openId = BjcaSignManager.bjcaOpenId; NSString *stampBase64 = BjcaSignManager.bjcaStampPic; BOOL isFreePin = BjcaSignManager.bjcaExistsFreePin; } break; case BjcaSignForSignAuto: NSLog(@"Auto-sign enabled result: %@", status); break; default: break; } } @end ``` ### Response N/A (Results are delivered via the `BjcaFinished:` delegate method) ### Error Handling Callback dictionary contains `status` and `message` fields for error reporting. ``` -------------------------------- ### Signature Configuration API Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Configure electronic signature images for users. Supports single and batch signature configuration. ```APIDOC ## Signature Configuration Configure the electronic signature image for a user. Signatures will be used during the signing process. Supports single and batch signature configuration. ### Single Signature Configuration ```objective-c // Single signature configuration [BjcaSignManager.bjcaShareBjcaSignManager bjcaSetStamp:@"your_client_id" curViewCtrl:self navColor:[UIColor redColor] navFontColor:[UIColor yellowColor]]; ``` ### Batch Signature Configuration (Multiple Sub-Vendors) ```objective-c // Batch signature configuration (multiple sub-vendors) NSArray *firmIdList = @[@"firm_id_1", @"firm_id_2", @"firm_id_3"]; [BjcaSignManager.bjcaShareBjcaSignManager bjcaSetStamp:@"your_client_id" firmIdList:firmIdList curViewCtrl:self navColor:nil navFontColor:nil]; ``` ``` -------------------------------- ### Manage Local Certificates Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Perform operations such as checking for the existence of a local certificate, removing it, or viewing its details. The detail view can be customized with navigation bar colors. ```objective-c // Check if a local certificate exists BOOL isCertExist = [BjcaSignManager bjcaExistsCert]; if (isCertExist) { NSLog(@"Certificate exists"); } else { NSLog(@"Certificate does not exist, please download it first"); } // Remove local certificate [BjcaSignManager bjcaRemoveCert]; // View certificate details page [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertDetail:@"your_client_id" curViewCtrl:self navColor:[UIColor redColor] navFontColor:[UIColor yellowColor]]; // View certificate details with sub-firm ID and default colors [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertDetail:@"your_client_id" firmId:@"sub_firm_id" curViewCtrl:self navColor:nil navFontColor:nil]; ``` -------------------------------- ### Enable Biometric Signing Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Integrates Touch ID or Face ID for secure signature verification. ```objective-c // 检查指纹签名开关状态 BOOL isFingerEnabled = [BjcaSignManager bjcaFingerState]; // 开启生物识别签名(Touch ID / Face ID) [BjcaSignManager.bjcaShareBjcaSignManager bjcaFingerSign:self]; // 关闭生物识别签名 [BjcaSignManager.bjcaShareBjcaSignManager bjcaFingerSignClose:self]; ``` -------------------------------- ### Download User Digital Certificate Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Initiate the download of a user's digital certificate after identity verification. This certificate is essential for electronic signatures. Supports download with and without a sub-firm ID. ```objective-c // Basic certificate download [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertDown:@"your_client_id" phoneNum:@"13800138000" curViewCtrl:self]; // Certificate download with sub-firm ID [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertDown:@"your_client_id" phoneNum:@"13800138000" firmId:@"sub_firm_id" curViewCtrl:self]; ``` -------------------------------- ### Automatic Signing API Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Enable automatic signing functionality. Once enabled, documents to be signed synchronized from the server will be automatically signed using personal hosted certificates without manual user intervention. ```APIDOC ## Automatic Signing Enable automatic signing functionality. Once enabled, documents to be signed synchronized from the server will be automatically signed using personal hosted certificates, without manual user intervention. ### Enable Automatic Signing ```objective-c // Enable automatic signing [BjcaSignManager.bjcaShareBjcaSignManager signForSignAuto:@"your_client_id" sysTag:@"system_tag_001" curViewCtrl:self]; ``` ### Get Automatic Signing Status ```objective-c // Get automatic signing status [BjcaSignManager.bjcaShareBjcaSignManager signAutoInfo:@"your_client_id"]; ``` ### Stop Automatic Signing ```objective-c // Stop automatic signing [BjcaSignManager.bjcaShareBjcaSignManager stopSignAuto:@"your_client_id" sysTag:@"system_tag_001"]; ``` ### Enable Automatic Signing with Sub-Vendor ID (Exclusive for YiWangXin APP) ```objective-c // YiWangXin APP exclusive: Enable automatic signing with sub-vendor ID [BjcaSignManager.bjcaShareBjcaSignManager signForSignAutoWithFirmId:@"sub_firm_id" clientId:@"your_client_id" sysTag:@"system_tag_001" curViewCtrl:self]; ``` ### Stop Automatic Signing with Sub-Vendor ID (Exclusive for YiWangXin APP) ```objective-c // YiWangXin APP exclusive: Stop automatic signing with sub-vendor ID [BjcaSignManager.bjcaShareBjcaSignManager stopSignAutoWithFirmId:@"sub_firm_id" clientId:@"your_client_id" sysTag:@"system_tag_001"]; ``` ``` -------------------------------- ### Certificate Status Check and Management Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Check for the existence of a local certificate, remove a local certificate, and view certificate details for certificate management operations. ```APIDOC ## Certificate Status Check and Management ### Description Check for the existence of a local certificate, remove a local certificate, and view certificate details for certificate management operations. ### Methods `bjcaExistsCert` `bjcaRemoveCert` `bjcaCertDetail:curViewCtrl:navColor:navFontColor:` `bjcaCertDetail:firmId:curViewCtrl:navColor:navFontColor:` ### Endpoint N/A (SDK methods) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```objective-c // Check if a local certificate exists BOOL isCertExist = [BjcaSignManager bjcaExistsCert]; if (isCertExist) { NSLog(@"Certificate exists"); } else { NSLog(@"Certificate does not exist, please download it first"); } // Remove local certificate [BjcaSignManager bjcaRemoveCert]; // View certificate details page [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertDetail:@"your_client_id" curViewCtrl:self navColor:[UIColor redColor] navFontColor:[UIColor yellowColor]]; // View certificate details with sub-firm ID [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertDetail:@"your_client_id" firmId:@"sub_firm_id" curViewCtrl:self navColor:nil navFontColor:nil]; ``` ### Response - `bjcaExistsCert`: Returns `BOOL` indicating certificate existence. - `bjcaRemoveCert`: No direct return value; operation is asynchronous. - `bjcaCertDetail`: N/A (Presents a UI view; results handled via `BjcaSignDelegate` callback. ``` -------------------------------- ### Password-Free Signing API Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Enable password-free signing. Once enabled, signing operations within a specified number of days will not require certificate password input, improving signing efficiency. ```APIDOC ## Password-Free Signing Enable password-free signing. Once enabled, signing operations within a specified number of days will not require certificate password input, improving signing efficiency. ### Check Current Password-Free Status ```objective-c // Check if currently in password-free state BOOL isFreePin = [BjcaSignManager bjcaExistsFreePin]; if (isFreePin) { NSLog(@"Currently in password-free state"); } ``` ### Enable Password-Free Signing ```objective-c // Enable password-free signing (parameter is the number of days, supports 1-60 days) int freePinDays = 7; [BjcaSignManager.bjcaShareBjcaSignManager bjcaFreePinSign:freePinDays clientId:@"your_client_id" curViewCtrl:self]; ``` ### Clear Password-Free Status ```objective-c // Clear password-free status [BjcaSignManager bjcaRemovePin]; ``` ``` -------------------------------- ### Batch Signing API Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Perform batch signing operations on multiple documents to be signed. Specify the list of documents to be signed using uniqueId arrays. ```APIDOC ## Batch Signing Perform batch signing operations on multiple documents to be signed, specifying the list of documents to be signed via uniqueId arrays. ### Standard Batch Signing ```objective-c // Prepare the list of uniqueIds to be signed NSMutableArray *uniqueIds = [NSMutableArray arrayWithArray:@[ @"unique_id_001", @"unique_id_002", @"unique_id_003" ]]; // Execute batch signing [BjcaSignManager.bjcaShareBjcaSignManager bjcaBatchSignList:uniqueIds userClientId:@"your_client_id" curViewCtrl:self]; ``` ### Batch Signing with Sub-Vendor ID (Exclusive for YiWangXin APP) ```objective-c // Sign with sub-vendor ID (YiWangXin APP exclusive) [BjcaSignManager.bjcaShareBjcaSignManager signWithFirmId:@"sub_firm_id" uniqueIds:uniqueIds userClientId:@"your_client_id" curViewCtrl:self]; ``` ``` -------------------------------- ### OAuth Login API Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Perform OAuth authorization login through the YiWangXin APP. ```APIDOC ## OAuth Login Perform OAuth authorization login through the YiWangXin APP. ### Start OAuth Login (APP Usage) ```objective-c // Start OAuth login (APP usage) [BjcaSignManager.bjcaShareBjcaSignManager startOauthLogin:@"request_uuid" grantOpenId:@"grant_open_id" grantUserName:@"授权人姓名"]; ``` ``` -------------------------------- ### Authorize Signing Permissions Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Grants signing authority to another user for a specific time period. ```objective-c // 开启授权签名 // firmId: 子厂商ID // grantedUserId: 被授权医生用户ID // timeOut: 授权时间(单位:小时) [BjcaSignManager.bjcaShareBjcaSignManager startGrantSign:@"your_client_id" firmId:@"sub_firm_id" grantedUserId:@"granted_doctor_user_id" timeOut:24 currentViewController:self]; ``` -------------------------------- ### Biometric Signature API Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Enable signature verification using Touch ID or Face ID, providing a more convenient and secure signing experience. ```APIDOC ## Biometric Signature Enable signature verification using Touch ID or Face ID, providing a more convenient and secure signing experience. ### Check Fingerprint Signing Switch Status ```objective-c // Check the status of the fingerprint signing switch BOOL isFingerEnabled = [BjcaSignManager bjcaFingerState]; ``` ### Enable Biometric Signature (Touch ID / Face ID) ```objective-c // Enable biometric signature (Touch ID / Face ID) [BjcaSignManager.bjcaShareBjcaSignManager bjcaFingerSign:self]; ``` ### Disable Biometric Signature ```objective-c // Disable biometric signature [BjcaSignManager.bjcaShareBjcaSignManager bjcaFingerSignClose:self]; ``` ``` -------------------------------- ### Authorization Signing API Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Enable authorization signing functionality, allowing signature permissions to be granted to specified authorized doctors who can sign on behalf of the user within a specified time frame. ```APIDOC ## Authorization Signing Enable authorization signing functionality, allowing signature permissions to be granted to specified authorized doctors, who can sign on behalf of the user within a specified time frame. ### Start Granting Signature Authority ```objective-c // Enable authorization signing // firmId: Sub-vendor ID // grantedUserId: User ID of the authorized doctor // timeOut: Authorization duration (in hours) [BjcaSignManager.bjcaShareBjcaSignManager startGrantSign:@"your_client_id" firmId:@"sub_firm_id" grantedUserId:@"granted_doctor_user_id" timeOut:24 currentViewController:self]; ``` ``` -------------------------------- ### Business Type Enum (Objective-C) Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Defines the enumeration for various business operations used in SDK callbacks. This helps in distinguishing the results of different business actions. ```objective-c // 业务类型枚举 BjcaBusinessType typedef NS_ENUM(NSInteger, BjcaBusinessType) { BjcaBusinessCertDown, // 证书下载 BjcaBusinessCertUpdate, // 证书更新 BjcaBusinessCertReset, // 证书密码重置 BjcaBusinessStamp, // 修改签章 BjcaBusinessSignList, // 批量签名 BjcaBusinessQrCode, // 二维码业务 BjcaBusinessFreePin, // 免密开启 BjcaBusinessUserInfo, // 用户信息 BjcaBusinessCertDetail, // 查看证书详情 BjcaBusinessFingerPin, // 开启指纹 BjcaBusinessFingerPinClose, // 关闭指纹 BjcaBusinessAutomationSign, // 业务自动签名 BjcaSignForSignAuto, // 开启自动签名 BjcaSignAutoInfo, // 获取自动签名状态 BjcaStopSignAuto, // 停止自动签名 BjcaOpenGrantSign, // 开启授权签名 BjcaShowPinWindow, // 显示密码输入 }; ``` -------------------------------- ### Reset Certificate Password Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Reset the password for a digital certificate, useful when the user forgets their password or wishes to change it. Supports reset with and without a sub-firm ID. ```objective-c // Basic certificate password reset [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertReset:@"your_client_id" curViewCtrl:self]; // Certificate password reset with sub-firm ID [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertReset:@"your_client_id" firmId:@"sub_firm_id" curViewCtrl:self]; ``` -------------------------------- ### Certificate Password Reset Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Reset the certificate password for scenarios where the user has forgotten their password or needs to change it. ```APIDOC ## Certificate Password Reset ### Description Reset the certificate password for scenarios where the user has forgotten their password or needs to change it. ### Method `bjcaCertReset:curViewCtrl:` `bjcaCertReset:firmId:curViewCtrl:` ### Endpoint N/A (SDK method) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```objective-c // Basic certificate password reset [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertReset:@"your_client_id" curViewCtrl:self]; // Certificate password reset with sub-firm ID [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertReset:@"your_client_id" firmId:@"sub_firm_id" curViewCtrl:self]; ``` ### Response N/A (Results are handled via the `BjcaSignDelegate` callback. ``` -------------------------------- ### Certificate Update Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Update expired or soon-to-expire digital certificates to maintain the validity of the certificate and continue using signature functionalities. ```APIDOC ## Certificate Update ### Description Update expired or soon-to-expire digital certificates to maintain the validity of the certificate and continue using signature functionalities. ### Method `bjcaCertUpdate:curViewCtrl:` `bjcaCertUpdate:firmId:curViewCtrl:` ### Endpoint N/A (SDK method) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```objective-c // Basic certificate update [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertUpdate:@"your_client_id" curViewCtrl:self]; // Certificate update with sub-firm ID [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertUpdate:@"your_client_id" firmId:@"sub_firm_id" curViewCtrl:self]; ``` ### Response N/A (Results are handled via the `BjcaSignDelegate` callback. ``` -------------------------------- ### Update Expired Digital Certificate Source: https://context7.com/yiwangxin/bjcasignsdk/llms.txt Update an existing digital certificate to maintain its validity for ongoing signature operations. This function can be called with or without a sub-firm ID. ```objective-c // Basic certificate update [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertUpdate:@"your_client_id" curViewCtrl:self]; // Certificate update with sub-firm ID [BjcaSignManager.bjcaShareBjcaSignManager bjcaCertUpdate:@"your_client_id" firmId:@"sub_firm_id" curViewCtrl:self]; ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.