VepaySDK
基于 Vepay 技术的跨境转账库
适用于 iOS 12 及以上版本
开始使用
授权
要在 Vepay 系统中进行授权,您需要 X-User。
有关获取 X-User 的信息,请参阅 如何获取 X-User 部分。
连接
您可以通过克隆 Git 仓库或使用 CocoaPods 连接 SDK。
通过 CocoaPods 连接
pod 'VepaySDK', :git => 'https://github.com/vepayteam/processing-sdk-swift'
请求
顺序
- 首先,您需要 创建账户;作为回应,您将获得一个带有 账户标识符 的 VepayInvoice
- 根据获得的 uuid,您 支付账单
- 接下来,为了获取支付状态更新,配置 SSE 连接
- 如果需要,通过 3DS
H2H
创建账单
在创建发票时,您需要 externalID: String,您可以使用 UUID().uuidString 来完成
作为回应,您将获得一个 VepayInvoice,其中包含 两个账单标识符
- uuid - 主要标识符,所有请求都使用此标识符
- id - 已过时
操作都通过这两个标识符进行
VepayInvoiceCreate(invoice: VepayInvoice, xUser: String)
获取账单对象
根据其标识符返回账单
VepayInvoiceGet(uuid: String, xUser: String)
执行账单支付
在参数form中,您需要输入将显示3DS(WebView边界)屏幕的大小
您将获取VepayPaymentResponse,其中指明是否需要进行3DS操作
您可以使用readable属性,以便更容易地查看响应
VepayInvoicePayment(uuid: String, form: VepayPayment, xUser: String)
VepayInvoicePayment(invoice: VepayInvoice, form: VepayPayment, xUser: String)
VepayInvoicePayment(invoice: VepayInvoice, card: VepayPaymentCard, specificIPVersion: VepayUtils.IPVersion?, size: CGSize, xUser: String)
获取支付对象
返回一个包含支付对象,如果需要,还可以包含执行3DS所需的数据
VepayInvoiceGetPayment(uuid: String, xUser: String)
执行3DS
3DS的数據從付款回應中獲得,在 VepayPaymentResponse.Redirect 對象中
VepayMake3DS(url: String, method: String, postParameters: [String: String]?)
VepayInvoiceRefund(uuid: String, amount: Int, xUser: String)
VepayInvoiceRefundGet(uuid: String, xUser: String)
VepayInvoiceCancel(uuid: String, xUser: String)
在SDK中存在一个名为Event Source的对象,它是Server-sent events的实现
要处理此对象,您需要一个跟踪状态的链接,并重写委托,您可以在初始化时或通过方法set(delegate:)做到这一点
总的来说,Event Source相当独立,因此您可以简单地重写new(event:)方法
为了简化SSE的工作,库中还有一个Vepay3DSController
实用技巧
请求
有以下两种方法执行请求
- 通过 VepayBaseRequest 类的方法
- SDK 中的每个请求都符合 VepayRequest 协议,该协议中有便捷的方法
request(sessionHandler: VepaySessionHandler, success: @escaping (ResponseType) -> Void, error: @escaping (VepayError) -> Void)
您还可以重写 sessionHandler 参数:VepaySessionHandler
默认使用 VepayDefaultSessionHandler,该对象是 Singleton
Vepay3DSController
这是包含全屏 UIWebView 的 UIViewController
建议将控制器作为 childController 使用
使用 Vepay3DSController 的示例
控制器的使用周期
- 初始化 Vepay3DSController()
- 设置 SSE,如果您想,您可以使用[内置 SSE](#处理 SSE)
- 设置 [显示 3DS](#显示 3DS)
同时,您可以调用 [start](#启动 Vepay3DSController),它将执行 3DS 并返回配置的控制台
启动
有2种启动方式
- start - 只执行VepayMake3DS请求
- getAndStart - 获取支付状态数据,如果需要支付则执行支付
这两种方法都返回设置了显示3DS控件的控制器
工作与SSE
在Vepay3DSController中,通过startSSE方法来设置SSE
可以有两种方式来处理它
- 在方法中,将与handler关联的自定义处理程序插入,并在其中覆盖new(event:)方法
- 在方法中,将handler参数留空(即delegate = nil),那么控制器将负责获取状态,您只需要覆盖控制器本身的handler
在显示3DS之前设置SSE是最可靠的
显示3DS
使用show3DS方法来设置3DS的显示
您可以在start方法中查看显示的示例
计划中的改进
(即将) 可以保存和获取保存的卡
(即将) 可以使用摄像头扫描卡片
(即将) 改进UI定制化
(计划) 将SSE移动到独立的库中,以便可以作为独立库使用
(目前研究) 通过NFC扫描卡片的可行性
如何获得X-User
X-User插入到HTTP头部,并在Vepay系统中作为身份验证方法。
针对新客户
- 请前往网站填写
- 在 https://vepay.online/ 上填写申请并提交给我们的经理
- 经理将与客户讨论可用的渠道、利率和条件,如果客户同意,经理将要求客户提供必要的文件(根据所需的服务)并向银行收银员发出请求
- 如果银行收银员同意与客户合作,则将签署三方协议,并颁发工作通道
- 客户将获得对 vepay 技术支持的 api 和工作台的测试访问权限,创建技术聊天并开始集成过程
- 当客户在其端完成测试调试后,将通过电子邮件发送包含战斗访问权限的存档,其中包含 X-User
对于已经与本公司合作的客户
您可以联系经理以获取 X-User