Headless SDK (报名 iOS)


👍

推荐的 SDK

我们建议使用iOSSeamless SDK,以获得流畅的集成体验。该选项提供了灵活的支付解决方案,预置了用户界面组件和自定义选项。

Yuno 的 Headless iOS SDK 可让您注册支付方式并标记银行卡,将其保存起来以备将来使用。

下面的步骤介绍了使用 Yuno 的Headless SDK 注册支付方法。

📘

入学指南

本页面提供使用Headless SDK 注册付款方式的所有步骤。如需了解包括客户创建在内的全面指南,请访问Headless SDK (注册)

要求

要执行注册程序,您需要提供 customer_session 开始在 步骤 3.获得 customer_session您需要

  1. 创建客户:客户必须注册付款。使用 创建客户 endpoint 来创建新客户。在响应中,您将收到客户 id用于创建客户会话。
  2. 创建客户会话:使用客户 id创建客户会话 endpoint 接收 customer_session.

Headless SDK (注册)中介绍了完整的注册流程。

第 1 步:在项目中加入程序库

第一步是在 iOS 项目中安装 Yuno SDK。

📘

检查 iOS SDK 版本

要查看所有可用版本,请访问 Yuno iOS SDK 软件源上的发布页面

您可以通过两种方式安装 Yuno SDK:

  • 茧足动物:如果您没有 Podfile,请按照 CocoaPods 指南创建一个 Podfile。创建 Podfile 后,在 Podfile 中添加下面一行,即可将 Yuno SDK 与 Cocoapods 集成:
    pod "YunoSDK","~> {last_version}
  • Swift 软件包管理器:设置 Swift 软件包,然后将 Yuno SDK 添加为依赖项,如下代码块所示:
    dependencies: [
        .package(url: "https://github.com/yuno-payments/yuno-sdk-ios.git", .upToNextMajor(from: "{last_version}"))
    ]

步骤 2:使用公钥Initialize Headless SDK

要initialize Headless SDK,您需要导入 Yuno 并提供一个有效的 PUBLIC_API_KEY.如果您没有 API 凭据,请访问开发人员(凭据)页面,查看如何从仪表板检索凭据

🚧

UISceneDelegate 初始化

如果您的应用程序使用 UISceneDelegate,确保将 Yuno 初始化代码放在 SceneDelegate. 了解更多

下面的代码块提供了一个导入和初始化 Yuno.

导入 Yuno

Yunoinitialize(
    apiKey:PUBLIC_API_KEY"
)

步骤 3:创建客户会话

要开始注册程序,您需要提供 customer_session.首先,您需要创建一个客户。您需要一个客户来注册付款。使用 创建客户 endpoint 来创建新客户。在响应中,您将收到客户 id用于创建客户会话。

创建客户后,可以创建客户会话。使用客户 id创建客户会话 endpoint。端点 customer_session 将在回复中提供。您需要一个新的 customer_session 每次您注册新的付款方式时,都会收到该信息。

步骤 4:创建注册付款方式对象

您需要一个注册付款方式对象,以便为注册设置Headless SDK 集成。您可以使用 "注册付款方式"(Enroll Payment Method)endpoint创建一个对象。创建支付方式对象时,您需要定义客户可以注册的支付方式。目前,只有 CARD 可用于Headless SDK。

📘

卡片验证

要在注册前验证零值授权卡,请将 verify 对象。

步骤 5:开始注册程序

接下来,您将使用 apiClientEnroll 函数,提供必要的配置参数。参数

下表列出了所有必填参数及其说明。

参数说明
countryCode该参数用于确定正在配置支付流程的国家。支持的国家及其 countryCode 可在 国家覆盖范围 page.
customer_session指当前注册的客户会话,是对创建客户会话 endpoint的响应。Example: '438413b7-4921-41e4-b8f3-28a5a0141638'

下一个代码块将举例说明参数配置。

var apiClientEnroll:YunoEnrollHeadless?

apiClientEnroll = Yuno.apiClientEnroll(
   countryCode:"CO"、
    customer_session:"eec6578e-ac2f-40a0-8065-25b5957f6dd3"
)

步骤 6:生成保险库token

收集完所有用户信息后,就可以开始注册了。首先,您需要创建一个 vaulted_token 使用函数 apiClientEnroll.continueEnrollment.由于这是一个异步函数,您可以使用 do/catch 以确保正确处理触发的错误。下面是创建 vaulted_token:

让 enrollmentCollectedData:EnrollmentCollectedData = EnrollmentCollectedData(
    customerSession:"eec6578e-ac2f-40a0-8065-25b5957f6dd3",
    paymentMethod:CollectedData(
        类型"CARD"、
        card:CardData(
            detail:CardData.Detail(
                number: "41111111111111"、
                expirationMonth:12,
                expirationYear: 25、
                securityCode:"123",
                持有人姓名"Andrea"、
                类型:.credit
            )
        ),
        客户:客户()
    )
)

let result = try await apiClientEnroll.continueEnrollment(data: enrollmentCollectedData)

注册新卡后,您将收到 vaulted_token您可以用它来进行支付,而无需询问客户的银行卡信息。下面的代码块提供了一个来自 apiClientEnroll.continueEnrollment 功能。响应是一个类型为 [String: Any].

[
 vaulted_token: "9104911d-5df9-429e-8488-ad41abea1a4b",
 状态"ENROLLED"、

   EXPIRED、
   REJECTED、
   
 准备就绪、
    正在注册
    取消注册、
    IN_PROCESS、
    已注册、
   DECLINED
    取消、
   ERROR、
    未登记;
 客户:[
   session:"eec6578e-ac2f-40a0-8065-25b5957f6dd3"
 ]
]
📘

使用 Webhooks 查看注册状态

考虑使用通过Webhooks 收到的注册状态。Yuno 建议始终使用该状态作为平台业务决策的基础。

📘

访问演示应用程序

除提供的代码示例外,您还可以访问Yuno 存储库,获取 Yuno iOS SDK 的完整实现。