card.io-iOS-SDK核心组件详解:CardIOCreditCardInfo与Delegate机制

张开发
2026/4/20 6:41:17 15 分钟阅读

分享文章

card.io-iOS-SDK核心组件详解:CardIOCreditCardInfo与Delegate机制
card.io-iOS-SDK核心组件详解CardIOCreditCardInfo与Delegate机制【免费下载链接】card.io-iOS-SDKcard.io provides fast, easy credit card scanning in mobile apps项目地址: https://gitcode.com/gh_mirrors/ca/card.io-iOS-SDKcard.io-iOS-SDK是一款专为iOS应用打造的信用卡扫描工具它能帮助开发者快速集成信用卡信息扫描功能让用户无需手动输入即可完成支付信息填写。本文将深入解析该SDK的两大核心组件CardIOCreditCardInfo数据模型和Delegate回调机制帮助开发者轻松掌握其使用方法。CardIOCreditCardInfo信用卡信息的容器CardIOCreditCardInfo是card.io-iOS-SDK中用于存储信用卡信息的数据模型它定义在CardIOCreditCardInfo.h文件中。这个类包含了信用卡的各种关键信息让开发者能够方便地获取和处理扫描结果。核心属性解析CardIOCreditCardInfo类提供了丰富的属性来存储信用卡信息cardNumber完整的信用卡号码redactedCardNumber经过脱敏处理的信用卡号码只显示最后四位数字expiryMonth有效期月份1-12expiryYear有效期年份四位数字cvv安全码可能为nil取决于是否请求了安全码信息postalCode邮政编码可能为nil取决于是否请求了邮政编码信息cardholderName持卡人姓名可能为nil取决于是否请求了持卡人姓名信息scanned布尔值表示信用卡号码是扫描获取还是手动输入cardImage扫描到的信用卡图像通常为428x270像素cardType信用卡类型如Visa、MasterCard等信用卡类型枚举CardIOCreditCardInfo中定义了CardIOCreditCardType枚举用于表示不同的信用卡类型typedef NS_ENUM(NSInteger, CardIOCreditCardType) { CardIOCreditCardTypeUnrecognized 0, // 无法识别的卡类型 CardIOCreditCardTypeAmbiguous 1, // 模糊的卡类型如只输入了少数几位数字 CardIOCreditCardTypeAmex 3, // 美国运通卡 CardIOCreditCardTypeJCB J, // 日本JCB卡 CardIOCreditCardTypeVisa 4, // Visa卡 CardIOCreditCardTypeMastercard 5, // 万事达卡 CardIOCreditCardTypeDiscover 6 // 发现卡 };实用工具方法除了属性外CardIOCreditCardInfo还提供了两个实用的工具方法 (NSString *)displayStringForCardType:usingLanguageOrLocale:根据信用卡类型和语言/地区返回适合显示的卡类型名称 (UIImage *)logoForCardType:返回指定信用卡类型的36x25像素logo图片Delegate机制扫描流程的控制中心card.io-iOS-SDK采用Delegate模式来处理扫描流程中的各种事件主要通过CardIOPaymentViewControllerDelegate协议来实现该协议定义在CardIOPaymentViewControllerDelegate.h文件中。核心协议方法CardIOPaymentViewControllerDelegate协议定义了两个必须实现的方法1. 用户取消扫描- (void)userDidCancelPaymentViewController:(CardIOPaymentViewController *)paymentViewController;当用户取消扫描时该方法会被调用。开发者需要在这个方法中处理取消逻辑通常是关闭扫描界面。2. 用户提供信用卡信息- (void)userDidProvideCreditCardInfo:(CardIOCreditCardInfo *)cardInfo inPaymentViewController:(CardIOPaymentViewController *)paymentViewController;当用户成功完成扫描或手动输入信用卡信息后该方法会被调用。参数cardInfo是一个CardIOCreditCardInfo对象包含了用户提供的信用卡信息。开发者需要在这个方法中处理获取到的信用卡信息例如进行支付处理然后关闭扫描界面。实现Delegate的步骤要使用CardIOPaymentViewControllerDelegate开发者需要完成以下步骤在视图控制器中声明遵循CardIOPaymentViewControllerDelegate协议实现协议的两个必须方法在创建CardIOPaymentViewController实例时将其delegate属性设置为当前视图控制器实际应用示例下面是一个简单的示例展示了如何在iOS应用中使用CardIOCreditCardInfo和CardIOPaymentViewControllerDelegate// 在视图控制器中声明遵循协议 interface PaymentViewController () CardIOPaymentViewControllerDelegate end implementation PaymentViewController // 启动信用卡扫描 - (IBAction)scanCardButtonTapped:(id)sender { CardIOPaymentViewController *scanViewController [[CardIOPaymentViewController alloc] initWithPaymentDelegate:self]; [self presentViewController:scanViewController animated:YES completion:nil]; } // 实现Delegate方法用户取消扫描 - (void)userDidCancelPaymentViewController:(CardIOPaymentViewController *)paymentViewController { [paymentViewController dismissViewControllerAnimated:YES completion:nil]; } // 实现Delegate方法用户提供信用卡信息 - (void)userDidProvideCreditCardInfo:(CardIOCreditCardInfo *)cardInfo inPaymentViewController:(CardIOPaymentViewController *)paymentViewController { // 处理获取到的信用卡信息 NSLog(扫描到的信用卡信息%, cardInfo.redactedCardNumber); // 关闭扫描界面 [paymentViewController dismissViewControllerAnimated:YES completion:nil]; } end总结CardIOCreditCardInfo和CardIOPaymentViewControllerDelegate是card.io-iOS-SDK的两个核心组件。前者提供了便捷的信用卡信息存储和处理方式后者则通过Delegate模式实现了扫描流程的控制。掌握这两个组件的使用能够帮助开发者快速集成信用卡扫描功能提升应用的用户体验。如果你想了解更多关于card.io-iOS-SDK的信息可以查看项目中的README.md文件或者参考SampleApp和SampleApp-Swift目录下的示例代码。【免费下载链接】card.io-iOS-SDKcard.io provides fast, easy credit card scanning in mobile apps项目地址: https://gitcode.com/gh_mirrors/ca/card.io-iOS-SDK创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

更多文章