Risk iOS 软件包

CocoaPods Compatible GitHub release (latest by date) Platform license

该软件包帮助商家收集设备数据,无论是直接集成(独立)该软件包,还是使用 Checkout 的 Frames iOS 软件包

目录

要求

文档

使用指南

  1. 添加 Risk 作为软件包依赖项 - 请参阅 安装指南,了解如何通过 SPM 或 Cocoapods 在您的 iOS 应用程序中添加我们的 SDK。

  2. Checkout 控制面板 获取公共 API 密钥。

  3. 使用公共 API 密钥和环境 Risk.init(config: yourConfig) 尽早初始化 Risk 软件包。

    类型定义
    public struct RiskConfig {
        let publicKey: String
        let environment: RiskEnvironment
        let framesMode: Bool
        
        public init(publicKey: String, environment: RiskEnvironment, framesMode: Bool = false) {
            self.publicKey = publicKey
            self.environment = environment
            self.framesMode = framesMode
        }
    }
    
    public enum RiskEnvironment {
        case qa
        case sandbox
        case production
    }
  4. 使用 configure 完成您的设置,然后在闭包中使用 publishData 方法发布设备数据。

    类型定义
    public struct PublishRiskData {
        public let deviceSessionId: String
    }
    
    public enum RiskError: LocalizedError, Equatable {
        case configuration(Configuration)
        case publish(Publish)
    }
    
    public enum RiskError {
        case configuration(Configuration)
        case publish(Publish)
    }
    
    public extension RiskError {
        enum Configuration: LocalizedError {
            case integrationDisabled
            case couldNotRetrieveConfiguration
            
            public var errorDescription: String? {
                switch self {
                case .integrationDisabled:
                    return "Integration disabled"
                    
                case .couldNotRetrieveConfiguration:
                    return "Error retrieving configuration"
                }
            }
        }
        
        enum Publish: LocalizedError {
            case couldNotPublishRiskData
            case couldNotPersisRiskData
            case fingerprintServiceIsNotConfigured
            
            public var errorDescription: String? {
                switch self {
                case .couldNotPublishRiskData:
                    return "Error publishing risk data"
                    
                case .couldNotPersisRiskData:
                    return "Error persisting risk data"
                    
                case .fingerprintServiceIsNotConfigured:
                    return "Fingerprint service is not configured. Please call configure() method first."
                }
            }
        }
    }

请参阅下面的示例

import Risk

// Example usage of package
let yourConfig = RiskConfig(publicKey: "pk_qa_xxx", environment: RiskEnvironment.qa)

self.riskSDK = Risk.init(config: yourConfig)  

self.riskSDK.configure { configurationResult in

	switch configurationResult {
	case .failure(let errorResponse):
		print(errorResponse.localizedDescription)
	case .success():
		self.riskSDK.publishData { result in
			
			switch result {
			case .success(let response):
				print(response.deviceSessionId)
			case .failure(let errorResponse):
				print(errorResponse.localizedDescription)
			}
		}
	}
	
}   

公共 API

除了通过 init 方法实例化之外,该软件包还公开了两种方法

  1. configure - 此方法在初始化后完成您的设置。 调用该方法时,将对 Checkout 的内部 API 进行初步检查,以检索收集设备数据所需的其他配置。如果检查失败或商家被禁用,将返回并记录错误。您也可以在开发模式下在 Xcode 控制台中查看更多信息。

    类型定义
    public func configure(completion: @escaping (Result<Void, RiskError.Configuration>) -> Void) {
        ...
    }
  2. publishData - 用于发布和持久化设备数据。

    类型定义
    public func publishData (cardToken: String? = nil, completion: @escaping (Result<PublishRiskData, RiskError.Publish>) -> Void) {
            ...
    }

其他资源

演示项目

我们的示例应用程序展示了我们预构建的 UI 以及我们的 SDK 如何工作。 一旦您克隆了存储库(无论是直接通过 git 还是通过建议的集成方法),您就可以在本地运行它。

我们的演示应用程序还测试了支持的集成方法(SPM,Cocoapods),因此,如果您在这些方面有任何问题,它们应该提供一个可行的示例。 您将在存储库的根目录中找到它们,位于各自的文件夹中

更新日志

在此处查找我们的 CHANGELOG.md 这里

贡献

在此处查找我们开始贡献的指南 这里

许可证

Risk iOS 在 MIT 许可证下发布。 查看 LICENSE 了解详情。