Headless SDK Enrollment (安卓系统)
本页为您提供 YunoHeadless SDK Android 注册指南。
适用于 Android 的 YunoHeadless SDK 为注册支付方式和标记卡提供了灵活、无用户界面的解决方案。
该 SDK 可完全控制付款方式注册流程,非常适合有以下需求的商家:
- 需要全面控制用户界面和用户体验
- 希望实施自定义注册流程
- 需要先进的集成能力
Headless SDK 包括以下核心功能:
- 卡片标记化
- 安全的付款方式注册
- 直接访问应用程序接口
- 自定义错误处理
对于需要预建用户界面解决方案或更简单集成的商家,可考虑使用我们的其他 SDK 实施方案:
要求
在开始 Yuno Android SDK 集成之前,请确保您的项目符合技术要求。此外,还要确保具备以下先决条件:
- 您必须拥有一个激活的 Yuno 帐户
- 您需要 Yuno API 凭据:
account_idpublic-api-keyprivate-secret-key
您可以从Yuno 面板的 "开发人员 "部分获取这些证书。需要这些证书才能
- 创建一个
customer在注册付款方式前必须填写 - 创建一个
customer_session初始化报名流程
SDK 版本信息通过访问发布说明或访问Yuno Android SDK 资源库来验证当前的 SDK 版本。
步骤 1:创建客户
在注册付款方式之前,使用创建客户 endpoint 创建客户。
先决条件
- 活跃的 Yuno 账户
- 应用程序接口凭据
要求:
- 识别注册付款方式的人
- 启用保存的付款方式功能
- 跟踪注册历史
- 安全存储客户 ID,以备下一步使用。
步骤 2:创建客户会话
创建一个新的 customer_session 使用 创建客户会话 endpoint:
先决条件
- 步骤 1 中的客户 ID
- 应用程序接口凭据
必须采取的行动:
- 在请求中包含客户 ID
- 存储返回的
customer_session身份证 - 生成一个新的
customer_session为每种付款方式注册。
第 3 步:将 SDK 添加到项目中
先决条件
- 安卓项目设置
- Gradle 配置访问
- 添加版本库源:
maven { url "https://yunopayments.jfrog.io/artifactory/snapshots-libs-release" }- 添加 SDK 依赖关系:
dependencies {
implementation 'com.yuno.payments:android-sdk:{last_version}'
}
需要互联网许可Yuno SDK 自动包含
INTERNET权限,这是网络请求所必需的。确保 AndroidManifest.xml 包含以下内容:
<uses-permission android:name="android.permission.INTERNET" />
步骤 4:使用公钥Initialize Headless SDK
从Yuno 面板读取公共 API 密钥。
如果还没有实施自定义应用程序,请创建一个。在 onCreate() 方法,调用initialize 函数 (Yuno.initialize):
class CustomApplication : Application() {
override fun onCreate() {
super.onCreate()
Yuno.initialize(
this,
PUBLIC_API_KEY,
config: YunoConfig,
)
}
}步骤 5:创建客户会话
开始注册程序:
endpoint 响应将提供 customer_session 注册所需的值。
客户会话生成您需要生成一个新的
customer_session每次注册付款方式时都要填写。
步骤 6:创建注册付款方式对象
使用 "注册付款方式 "endpoint 创建注册付款方式对象,以便为注册设置Headless SDK 集成。创建该对象时,请指定客户可以注册的支付方式类型。目前,Headless SDK 只支持CARD支付方式类型。
卡片验证若要在注册前验证卡片(零值授权),请将
verify对象。 了解更多
第 7 步:启动注册程序
使用 apiClientEnroll 函数来启动注册流程。该功能需要配置参数来定义如何处理注册。下表描述了所需参数:
下面的代码块显示了一个参数配置示例:
override fun onCreate(savedInstanceState: Bundle?) {
val apiClientEnroll = Yuno.apiClientEnroll(
country_code = "CO",
customerSession = "eec6578e-ac2f-40a0-8065-25b5957f6dd3",
context = this
)
}步骤 8:生成保险库token
收集所有必要的客户信息后,创建一个 vaulted_token 使用 apiClientEnroll.continueEnrollment 函数。由于这是一个异步函数,因此使用 try/catch 块来处理可能出现的任何错误。下面的示例展示了如何创建一个 vaulted_token:
apiClientEnroll.continueEnrollment(
collectedData = EnrollmentCollectedData(
customerSession = "customer_session",
paymentMethod = 注册方式(
类型 = "CARD",
卡片 = 卡片数据(
保存 = true,
详情 = 详情(
有效期月 = 11,
有效期年 = 55,
卡号 = "4111111111111111",
securityCode = "123",
holderName = "Firstname Lastname",
type = CardType.DEBIT
),
customer = Customer(
id = "id",
merchantCustomerId = "merchant_customer_id",
firstName = "firstName",
email "[email ]",
country = "CO",
document = Document(
documentType = "PAS",
documentNumber = "PAS12312"
),
phone = Phone(
number = "321123321123",
country_code = "57"
)
)
)
),
context = this
)
"(《世界人权宣言》) apiClientEnroll.continueEnrollment 函数返回一个扩展了 LiveData.您可以观察到作为标准 LiveData 有类型 SingleLiveEvent<Map<String, Any?>>.这 LiveData 只发射一次,并返回一个 Map 包含完整的响应。下面是调用 apiClientEnroll.continueEnrollment:
{
"vaulted_token": "9104911d-5df9-429e-8488-ad41abea1a4b",
"status": "SUCCEEDED",
"customer": {
"session": "eec6578e-ac2f-40a0-8065-25b5957f6dd3"
}
}下面的代码块显示了一个观察响应的示例:
apiClientPayment.continueEnrollment(data, context).observe(context) { response -> val status = response["status"] as String?
val status = response["status"] as String?
val vauldtedtoken = response["vaulted_token"] as String?
}
Webhook 状态跟踪考虑使用通过Webhooks 收到的注册状态。Yuno 建议始终使用该状态作为平台业务决策的基础。
3 个月前已更新