ShiftSDK 1.1.16

ShiftSDK 1.1.16

Ivan Oliver 维护。



 
依赖项
Alamofire~> 4.7
SwiftyJSON~> 4.0
SnapKit~> 4.0
Bond~> 6.8
HTAutocompleteTextField~> 1.3
GoogleKit~> 0.3
PhoneNumberKit~> 2.5
TTTAttributedLabel~> 2.0
UIScrollView-InfiniteScroll~> 1.0
TrustKit~> 1.5
Stripe~> 12.0
Down~> 0.5
Plaid~> 1.1
PullToRefreshKit~> 0.8
SwiftToast~> 1.1
FTLinearActivityIndicator~> 1.1
AlamofireNetworkActivityIndicator~> 2.2
 

ShiftSDK 1.1.16

  • Ivan Oliver 和 Takeichi Kanzaki

Shift SDK

Shift iOS SDK。

更多信息,请参阅网站

要求

  • iOS 版本;10.0+

开发者指南

安装

  1. 在您的 Podfile 中添加以下依赖项
pod ShiftSDK

通过 Testflight 或 App Store 分发您的应用

Shift SDK 将 Plaid iOS SDK 作为依赖项,以处理与银行实体的通信。Plaid SDK 需要运行一个 壳脚脚本,该脚本会从框架中删除任何非 iOS 设备代码,该框架包括支持在 iOS 模拟器中运行其框架,但不可以通过 App Store 分发。

要运行此脚本,您必须在项目的构建阶段添加一个“新运行脚本阶段”,内容如下

LINK_ROOT=${PODS_ROOT:+$PODS_ROOT/Plaid/ios}
cp "${LINK_ROOT:-$PROJECT_DIR}"/LinkKit.framework/prepare_for_distribution.sh "${CODESIGNING_FOLDER_PATH "/Frameworks/LinkKit.framework/prepare_for_distribution.sh
"${CODESIGNING_FOLDER_PATH}"/Frameworks/LinkKit.framework/prepare_for_distribution.sh

更多详情请参考 Plaid SDK 文档

示例应用

有一个示例应用使用了此 SDK。您可以将示例应用安装以检查 Link 流程。

  1. Example/Demo/ViewControllers/MainViewController.swift 中,编辑组织和项目密钥(从沙盒)
  • 定义 <组织密钥>
  • 定义 <项目密钥>
  1. 选择方案 ShiftSDK Demo Sandbox
  2. 构建并运行 (CMD+R)

使用 SDK

要运行 SDK,首先您需要使用密钥和当前上下文对其进行设置

ShiftPlatform.defaultManager().initializeWithDeveloperKey("<Organization Key>",
                                                           projectKey: "<Project Key>")

这适用于 Link SDK 和 Card SDK。您可以选择是否启用证书固定、是否信任自签名证书,以及您要针对的环境(“沙盒”或“生产”)

ShiftPlatform.defaultManager().initializeWithDeveloperKey("<Organization Key>",
                                                          projectKey: "<Project Key>",
                                                          environment: .sandbox,
                                                          setupCertPinning: true)

设置完成后,您可以传递上下文来启动所需 SDK。

对于 Link 流程使用

let shiftSession = ShiftSession()
shiftSession.startLinkFlow(from: self)

对于 Shift 卡流程使用

let shiftSession = ShiftSession()
shiftSession.startCardFlow(from: self)

此外,您还可以使用现有的数据点初始化 SDK

let userDataPoints = DataPointList()
(... add datapoints to the datapoint list)

let shiftSession = ShiftSession()
shiftSession.startLinkFlow(from: self initialUserData: userDataPoints)
let userDataPoints = DataPointList()
(... add datapoints to the datapoint list)

let shiftSession = ShiftSession()
shiftSession.startCardFlow(from: self initialUserData: userDataPoints)

在所有上述情况中,您必须保持 shiftSession 对象。

平台代理

可以将一个代理设置到ShiftPlatform类中,以便在事件发生时接收通知。

ShiftPlatform.defaultManager().delegate = delegateObject

在SDK中发生重要事件时,会调用delegate方法。

  1. 当SDK初始化完成并且准备使用时(见使用SDK部分),会调用方法shiftSDKInitialized(developerKey:, projectKey:)
  2. 每当用户认证状态变更(注册、登录或登出)时,都会调用方法newUserTokenReceived(_:),使用户认证令牌或注销时的nil

ShiftPlatformDelegate中的另外两个方法是可选的,涉及处理网络可达性问题。这些方法是可选的,因为SDK已经实现了一种处理可达性问题的方式(显示一个带有消息的UI阻塞视图,并在连接恢复时自动关闭)。尽管如此,您仍然可以接收通知,并将处理问题的责任留给SDK,通过从方法networkConnectionError()的实现中返回false来做到这一点。

注意:一旦连接恢复,所有失败的任务都将自动独立发送,无论问题是否由您处理或由SDK处理。

  1. 当网络请求因可达性问题而失败时,我们会调用函数networkConnectionError() -> Bool。如前所述,您可以决定是否处理问题或将责任转交给Shift SDK。
  2. 一旦互联网连接恢复,我们会调用方法networkConnectionRestored()。在这种情况下,SDK的行为将取决于之前对networkConnectionError()的调用返回的值。

Github页

Github页网站存储在dev-gh-pages分支上。

授权

版权所有 Shift Financial, Inc (C) 2018。有关更多信息,请参阅授权文件。