VepaySDK 1.0.0

VepaySDK 1.0.0

‘Bogdan’VEPAY Ltd. 维护。



VepaySDK 1.0.0

  • By
  • Богдан Грозян

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'

请求

顺序

  1. 首先,您需要 创建账户;作为回应,您将获得一个带有 账户标识符 的 VepayInvoice
  2. 根据获得的 uuid,您 支付账单
  3. 接下来,为了获取支付状态更新,配置 SSE 连接
  4. 如果需要,通过 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 类的方法

func request(sessionHandler: VepaySessionHandler, completion: @escaping @Sendable (Data?, URLResponse?, Error?) -> Void)

  • SDK 中的每个请求都符合 VepayRequest 协议,该协议中有便捷的方法

request(sessionHandler: VepaySessionHandler, success: @escaping (ResponseType) -> Void, error: @escaping (VepayError) -> Void)

您还可以重写 sessionHandler 参数:VepaySessionHandler
默认使用 VepayDefaultSessionHandler,该对象是 Singleton

Vepay3DSController

这是包含全屏 UIWebView 的 UIViewController

建议将控制器作为 childController 使用
使用 Vepay3DSController 的示例

控制器的使用周期

  1. 初始化 Vepay3DSController()
  2. 设置 SSE,如果您想,您可以使用[内置 SSE](#处理 SSE)
  3. 设置 [显示 3DS](#显示 3DS)

同时,您可以调用 [start](#启动 Vepay3DSController),它将执行 3DS 并返回配置的控制台

启动

有2种启动方式

  • start - 只执行VepayMake3DS请求
  • getAndStart - 获取支付状态数据,如果需要支付则执行支付

这两种方法都返回设置了显示3DS控件的控制器

工作与SSE

在Vepay3DSController中,通过startSSE方法来设置SSE

可以有两种方式来处理它

  1. 在方法中,将与handler关联的自定义处理程序插入,并在其中覆盖new(event:)方法
  2. 在方法中,将handler参数留空(即delegate = nil),那么控制器将负责获取状态,您只需要覆盖控制器本身的handler

在显示3DS之前设置SSE是最可靠的

显示3DS

使用show3DS方法来设置3DS的显示

您可以在start方法中查看显示的示例

计划中的改进

(即将) 可以保存和获取保存的卡

(即将) 可以使用摄像头扫描卡片

(即将) 改进UI定制化

(计划) 将SSE移动到独立的库中,以便可以作为独立库使用

(目前研究) 通过NFC扫描卡片的可行性

如何获得X-User

X-User插入到HTTP头部,并在Vepay系统中作为身份验证方法。

针对新客户

  1. 请前往网站填写
  2. https://vepay.online/ 上填写申请并提交给我们的经理
  3. 经理将与客户讨论可用的渠道、利率和条件,如果客户同意,经理将要求客户提供必要的文件(根据所需的服务)并向银行收银员发出请求
  4. 如果银行收银员同意与客户合作,则将签署三方协议,并颁发工作通道
  5. 客户将获得对 vepay 技术支持的 api 和工作台的测试访问权限,创建技术聊天并开始集成过程
  6. 当客户在其端完成测试调试后,将通过电子邮件发送包含战斗访问权限的存档,其中包含 X-User

对于已经与本公司合作的客户

您可以联系经理以获取 X-User