Yuno 测试Gateway
为了测试一般的银行卡支付,Yuno 提供了Yuno Test PaymentGateway。它可以作为连接使用,但只能在沙盒环境中使用。
与 Yuno 联系
通过 Yuno 集成时的必填字段:
Yuno Test 支付Gateway 不需要任何密钥。
一般信息
国家:
货币:
所有货币均可使用。
卡片类型
测试数据:
集成配置
仪表板配置:
- 登录dashboard.y.uno。
- 单击连接,然后选择Yuno Test PaymentGateway。
- 单击连接。
- 介绍姓名。
- 点击连接
生产环境
商家上线的具体流程:
设置 Yuno 测试支付Gateway
- 完成测试支付Gateway 集成配置。
- 建立连接后,您必须在路由部分指定 Yuno Test PaymentGateway 为您的银行卡支付提供商。访问 Yuno 控制面板上的 "路由",选择 "未发布",找到 "卡 "选项,然后单击 "设置"。
- 为 卡片.如果您不确定如何创建,请查看 配置动态路由.
- 在路由仪表板上,添加触发银行卡支付的条件。例如,您可以使用银行卡品牌或国家作为触发条件。
- 在创建的条件中,添加 Yuno Test 支付Gateway。
- 对于所有其他支付选项,请选择取消选项。下图展示了一个路由配置示例,其中使用了银行卡品牌条件,接受威士卡和万事达卡品牌的付款。
- 现在,您需要让卡片可供测试。访问 Yuno 控制面板上的结账生成器。 激活卡片的切换按钮,并使用发布按钮发布结账。
使用创建支付指南了解如何测试银行卡支付。
使用 Yuno 测试Gateway测试银行卡支付
在本页,您将看到使用Yuno TestingGateway 创建银行卡支付的操作指南。
Yuno TestingGateway是 Yuno 用来测试一般银行卡支付的解决方案。它可以作为连接使用。不过,它只能在沙盒环境中使用。
要求
在开始执行本指南所述步骤之前,您需要
- 访问您的 应用程序接口凭据 在 Yuno Dashboard 上,它们由以下部分组成:
public-api-keyprivate-secret-keyaccount_id
- 在您的 Yuno Dashboard 账户上设置 Yuno TestingGateway 连接。您可以在 "集成配置 "部分找到连接该网关的分步指南。
- 为 Yuno TestingGateway 创建一个路由,将其定义为您的银行卡支付提供商。您可以在 "设置Yuno TestingGateway "部分找到分步指南。
- 配置结账生成器,使 Yuno TestingGateway 可用。
步骤摘要
创建付款流程通常需要完成以下四个步骤。
创建payment
1.创建客户
使用 创建客户 注册客户信息。您需要提供个人客户信息。此外,您还需要提供 merchant_customer_id客户的唯一标识符。
客户补充信息创建客户时,某些信息不是必须提供的,但提供这些信息可以改善用户的支付体验。电话、账单地址和送货地址就是可以提供的非必填数据。如果添加了可选信息,请注意必填字段。
在创建客户流程结束时,您将收到一份 id在 Yuno 系统中识别用户。使用 id 来initialize 结账。
如果您要为先前创建的现有用户创建付款,而该用户已经有一个 id您可以跳过这一步。
2.创建结账会话
客户注册后,您就可以创建一个结账会话。结账是指客户最终完成订单,并开始为他们想要购买的产品或服务付款。因此,在这一阶段,您将提供有关付款金额和创建地点的信息。
路由条件过滤创建路由时,可以定义作为筛选器的条件。如果使用国家作为条件,请检查创建结账会话时提供的国家是否在条件列表中。否则,Yuno TestingGateway 可能无法处理银行卡支付。
使用 创建结账会话 endpoint。请注意 customer_id 执行请求所需的 id 中创建客户时收到的 步骤 1.
从请求响应到 创建结账会话 endpoint,您将收到 checkout_session 信息。该信息将用于创建一次性token (OTT)和下一步的支付。
3.创建一次性token (OTT)
OTT 是 Yuno 为保护客户隐私和安全而生成的唯一标识符。它是支付详情的标识符,可防止敏感数据存储在您的服务器上。因此,您可以使用 OTT 让您的客户轻松重复支付,而无需重新输入支付信息,使支付过程更加安全和方便。
在您的生产应用程序中,您将始终从 Yuno SDK 获得 OTT。不过,为了方便您测试付款创建过程,Yuno 提供了 创建 OTT endpoint。您需要提供 checkout_session 收到 步骤 2 并将付款类型定义为 CARD 通过 type 参数。 在响应中,您将收到 one-time-token您将使用它来创建付款。
4.创建付款
您将使用创建付款 endpoint创建付款。下面将深入介绍如何创建付款。
4.1 提供所需的属性
提供与客户相关的信息,包括 checkout_session 从步骤 2 到 checkout.session 和 customer_payer 对象,该对象包含 id 从步骤 1 开始。
创建付款时,某些对象不是必须提供的。但是,如果您提供了这些信息,用户的支付体验将得到改善。如果您希望提供这些信息,请注意必填字段。
4.2 选择捕捉类型
Yuno 提供两种付款采集选项:
- 单步式:授权和采集同时进行。您只需创建付款。授权和采集将自动执行。对于单步式选项,您需要发送
capture属性为true请求。 - 两个步骤:授权和抓取在不同时刻进行。创建付款后,您需要执行授权请求和捕获请求。
capture作为false创建付款后,使用 授权Payment 和 采集授权 以完成该过程。
4.3 确定付款工作流程
创建付款时,您需要告知正在使用 Yuno 的哪个集成。创建付款时,您必须通过 workflow 属性,可以是
CHECKOUT:如果您使用 Yuno SDK 创建付款。DIRECT:如果使用背对背集成。要使用此工作流程,您需要符合 PCI 标准。REDIRECT:如果使用背对背集成和提供商重定向。
4.4 提供付款方式信息
通过对象告知付款方式信息 payment_method.在这里,您将提供 one-time-token 通过属性 token 并选择付款 type 等于 CARD在 步骤 3根据 付款类型列表.此外,您还需要在对象上添加卡片信息 detail.card.
在使用 Yuno Test PaymentGateway 测试支付时,您可以使用支付描述或具体的银行卡数据来获得所需的结果。下面将详细介绍每种方法。
Yuno 系统流程Yuno 系统遵循一个顺序过程,首先检查卡片数据,然后评估所提供的说明。因此,如果卡数据显示的状态与测试付款的描述不一致,Yuno 将优先考虑并反映与卡数据相关的状态。
4.4.1 - 付款说明
要使用付款描述获得所需的付款结果,需要将预期结果定义为所创建付款的描述。例如,如果您正在测试付款并期望得到成功的结果,那么付款描述应为SUCCEEDED"(SUCCEEDED)。您可以在交易代码部分找到所有可用选项。
4.4.2 - 贺卡详情
另一种获得预期支付结果的方法是使用 Yuno 提供的测试卡。在下表中,您可以找到使用 Yuno 测试Gateway时要用到的卡及其数据详情列表。交易响应代码列定义了使用相应卡时返回的支付状态。
签证
| 数量 | 有效期 | 安全代码 | 持卡人姓名 | 交易响应代码 |
|---|---|---|---|---|
| 4507990000000002 | 11/28 | 123 | 无名氏 | SUCCEEDED |
| 4507990000000010 | 11/28 | 123 | 无名氏 | 资金不足 |
| 4507990000000028 | 11/28 | 123 | 无名氏 | DECLINED |
| 4507990000000036 | 11/28 | 123 | 无名氏 | 不表彰 |
| 4507990000000044 | 11/28 | 123 | 无名氏 | 无效安全码 |
| 4507990000000051 | 11/28 | 123 | 无名氏 | 无效卡数据 |
| 4507990000000069 | 11/28 | 123 | 无名氏 | 报失 |
| 4507990000000077 | 11/28 | 123 | 无名氏 | ERROR |
万事达卡
| 数量 | 有效期 | 安全代码 | 持卡人姓名 | 交易响应代码 |
|---|---|---|---|---|
| 5252440000000002 | 11/28 | 123 | 无名氏 | SUCCEEDED |
| 5252440000000010 | 11/28 | 123 | 无名氏 | 资金不足 |
| 5252440000000028 | 11/28 | 123 | 无名氏 | DECLINED |
| 5252440000000036 | 11/28 | 123 | 无名氏 | 不表彰 |
| 5252440000000044 | 11/28 | 123 | 无名氏 | 无效安全码 |
| 5252440000000051 | 11/28 | 123 | 无名氏 | 无效卡数据 |
| 5252440000000069 | 11/28 | 123 | 无名氏 | 报失 |
| 5252440000000077 | 11/28 | 123 | 无名氏 | ERROR |
美国运通
| 数量 | 有效期 | 安全代码 | 持卡人姓名 | 交易响应代码 |
|---|---|---|---|---|
| 370000000000002 | 11/28 | 1234 | 无名氏 | SUCCEEDED |
| 370000000000010 | 11/28 | 1234 | 无名氏 | 资金不足 |
| 370000000000028 | 11/28 | 1234 | 无名氏 | DECLINED |
| 370000000000036 | 11/28 | 1234 | 无名氏 | 不表彰 |
| 370000000000044 | 11/28 | 1234 | 无名氏 | 无效安全码 |
| 370000000000051 | 11/28 | 1234 | 无名氏 | 无效卡数据 |
| 370000000000069 | 11/28 | 1234 | 无名氏 | 报失 |
| 370000000000077 | 11/28 | 1234 | 无名氏 | ERROR |
餐厅
| 数量 | 有效期 | 安全代码 | 持卡人姓名 | 交易响应代码 |
|---|---|---|---|---|
| 3647166000000002 | 11/28 | 123 | 无名氏 | SUCCEEDED |
| 3647166000000010 | 11/28 | 123 | 无名氏 | 资金不足 |
| 3647166000000028 | 11/28 | 123 | 无名氏 | DECLINED |
| 3647166000000036 | 11/28 | 123 | 无名氏 | 不表彰 |
| 3647166000000044 | 11/28 | 123 | 无名氏 | 无效安全码 |
| 3647166000000051 | 11/28 | 123 | 无名氏 | 无效卡数据 |
| 3647166000000069 | 11/28 | 123 | 无名氏 | 报失 |
| 3647166000000077 | 11/28 | 123 | 无名氏 | ERROR |
UATP
| 数量 | 有效期 | 安全代码 | 持卡人姓名 | 交易响应代码 |
|---|---|---|---|---|
| 1139000000000002 | 11/28 | 123 | 无名氏 | SUCCEEDED |
| 1139000000000010 | 11/28 | 123 | 无名氏 | 资金不足 |
| 1139000000000028 | 11/28 | 123 | 无名氏 | DECLINED |
| 1139000000000036 | 11/28 | 123 | 无名氏 | 不表彰 |
| 1139000000000044 | 11/28 | 123 | 无名氏 | 无效安全码 |
| 1139000000000051 | 11/28 | 123 | 无名氏 | 无效卡数据 |
| 1139000000000069 | 11/28 | 123 | 无名氏 | 报失 |
| 1139000000000077 | 11/28 | 123 | 无名氏 | ERROR |
4.4.3 - 3DS 测试卡
使用这些卡和OTP代码,通过我们的预览环境,使用Netcetera Demo Merchant (NDM)模拟器测试3DS流程,该模拟器的配置是模拟目录服务器和/或带有预定义方案和测试卡号的ACS。它不能连接外部测试目录服务器和/或 ACS,只能帮助完成用于测试目的的 3DS 流程。
运通
| 卡号 | 预期响应 3DS 2.x | 预期响应 3DS 1.x DS (VERes) | 预期响应 3DS 1.x ACS (PARes) |
|---|---|---|---|
| 341502098634895 | 无摩擦认证应用程序 | ENROLLED_Y | 交易状态 |
| 348638267931507 | 浏览器挑战 | ENROLLED_Y | 交易挑战 |
| 345695399207589 | 未经验证的无障碍应用程序 | ENROLLED_Y | 交易状态 |
| 349531373081938 | 应用挑战 | ENROLLED_Y | 交易状态 |
| 342316317472410 | 应用程序_challenge_sdk_trans_id_invalid_format_格式无效 | ENROLLED_Y | 交易状态 |
| 347899129656655 | 无限制认证浏览器 | ENROLLED_Y | 交易状态 |
| 345197771649926 | 未验证的无限制浏览器 | ENROLLED_Y | 交易状态 |
| 372021106351394 | 浏览器挑战 | ENROLLED_Y | 交易挑战 |
| 3734123412340000 | ENROLLED_Y | 交易状态 | |
| 3434567891111005 | ENROLLED_Y | 交易挑战 | |
| 3794521996036850 | ENROLLED_Y | 交易挑战 |
万事达卡
| 卡号 | 预期响应 3DS 2.x | 预期响应 3DS 1.x DS (VERes) | 预期响应 3DS 1.x ACS (PARes) |
|---|---|---|---|
| 5333259155643223 | 无摩擦认证应用程序 | ENROLLED_Y | 交易状态 |
| 5306889942833340 | 浏览器挑战 | ENROLLED_Y | 交易挑战 |
| 5328720384582224 | 未经验证的无障碍应用程序 | ENROLLED_Y | 交易状态 |
| 5267648608924299 | 应用挑战 | ENROLLED_Y | 交易状态 |
| 5187434643593002 | 应用程序_challenge_sdk_trans_id_invalid_format_格式无效 | ENROLLED_Y | 交易状态 |
| 5512459816707531 | 无限制认证浏览器 | ENROLLED_Y | 交易状态 |
| 5487971631330522 | 未验证的无限制浏览器 | ENROLLED_Y | 交易状态 |
| 5424184049821670 | 浏览器挑战 | ENROLLED_Y | 交易挑战 |
| 5204240438720050123 | 浏览器挑战 | ENROLLED_Y | 交易挑战 |
| 5250548692069390 | ENROLLED_Y | 交易挑战 | |
| 5641523891636636 | ENROLLED_Y | 交易挑战 |
签证
| 卡号 | 预期响应 3DS 2.x | 预期响应 3DS 1.x DS (VERes) | 预期响应 3DS 1.x ACS (PARes) |
|---|---|---|---|
| 4556557955726624 | 无摩擦认证应用程序 | ENROLLED_Y | 交易状态 |
| 4916994064252017 | 浏览器挑战 | ENROLLED_Y | 交易挑战 |
| 4556104160382032 | 未经验证的无障碍应用程序 | ENROLLED_Y | 交易状态 |
| 4024007189449340 | 应用挑战 | ENROLLED_Y | 交易状态 |
| 4024007179872394 | 应用程序_challenge_sdk_trans_id_invalid_format_格式无效 | ENROLLED_Y | 交易状态 |
| 4929251897047956 | 无限制认证浏览器 | ENROLLED_Y | 交易状态 |
| 4716429323842524 | 未验证的无限制浏览器 | ENROLLED_Y | 交易状态 |
| 4234123412340003 | ENROLLED_Y | 交易挑战 | |
| 4604633194219929 | ENROLLED_Y | 交易挑战 | |
| 4485436455354151 | browser_frictionless_missing_ds_trans_id | ||
| 4556962659911995 | 无摩擦应用程序_丢失的数据集_trans_id | ENROLLED_Y | 交易状态 |
| 4539837572943550 | browser_frictionless_missing_ds_trans_id | ENROLLED_Y | 交易状态 |
| 4024007176265022 | 浏览器_挑战_缺少的 ACS_URL | ENROLLED_Y | 交易状态 |
| 4716125059847899 | THREE_RI | ENROLLED_Y | 交易状态 |
| 4556362626719763 | PROTOCOL_ERROR | ENROLLED_Y | 交易状态 |
| 4234123412340000 | ENROLLED_Y | 交易状态 | |
| 4234123412340006 | ENROLLED_Y | 交易状态 | |
| 4234123412340007 | ENROLLED_Y | 交易状态 a | |
| 4234123412340001 | ENROLLED_N | ||
| 4234123412340002 | 未登记(VeRes 为错误 404 "在目录服务器的卡范围中找不到卡账号")。 | enrolled_n (不适用) | |
| 4234123412340100 | MISSING_ROOT | ||
| 4234123412340101 | 缺失信息 | ||
| 4234123412340102 | 无效信息 | ||
| 4234123412340103 | 缺失版本 | ||
| 4234123412340104 | 非法版本 | ||
| 4234123412340105 | MISSING_URL | ||
| 4234123412340106 | ILLEGAL_URL | ||
| 4234123412340107 | 缺失注册 | ||
| 4234123412340108 | 非法注册 | ||
| 4234123412340109 | 非法扩展 | ||
| 4234123412340200 | ERROR | ||
| 4234123412340201 | ERROR | ||
| 4234123412340202 | ERROR | ||
| 4234123412340203 | ERROR | ||
| 4234123412340204 | ERROR | ||
| 4234123412340205 | ERROR | ||
| 4234123412340206 | ERROR | ||
| 4234123412340220 | ERROR | ||
| 4234123412340250 | ERROR | ||
| 4234123412340251 | ERROR | ||
| 4234123412340252 | ERROR | ||
| 4234123412340253 | ERROR | ||
| 4234123412340258 | ERROR | ||
| 4234123412340298 | ERROR | ||
| 4234123412340299 | ERROR | ||
| 4234123412340300 | IREQ_CUSTOM | ||
| 4234123412340301 | ireq_enrolled_y | ||
| 4234123412340350 | IREQ_50 | ||
| 4234123412340351 | IREQ_51 | ||
| 4234123412340352 | IREQ_52 | ||
| 4234123412340353 | IREQ_53 | ||
| 4234123412340354 | IREQ_54 | ||
| 4234123412340355 | IREQ_55 | ||
| 4234123412340356 | IREQ_56 | ||
| 4234123412340358 | IREQ_58 | ||
| 4234123412340398 | IREQ_98 | ||
| 4234123412340399 | IREQ_99 | ||
| 4234123412340400 | 不支持的版本 | ||
| 4234123412340401 | 未识别的关键扩展名 | ||
| 4234123412340402 | 服务器错误 | ||
| 4234123412340403 | 超时 |
餐厅
| 卡号 | 预期响应 3DS 2.x | 预期响应 3DS 1.x DS (VERes) | 预期响应 3DS 1.x ACS (PARes) |
|---|---|---|---|
| 3095000000000000 | 无摩擦认证应用程序 | ENROLLED_Y | 交易状态 |
| 3095000000000001 | 浏览器挑战 | ENROLLED_Y | 交易挑战 |
| 3095000000000002 | 未经验证的无障碍应用程序 | ENROLLED_Y | 交易状态 |
| 3095000000000005 | 无限制认证浏览器 | ENROLLED_Y | 交易状态 |
| 3095000000000006 | 未验证的无限制浏览器 | ENROLLED_Y | 交易状态 |
JCB
| 卡号 | 预期响应 3DS 2.x | 预期响应 3DS 1.x DS (VERes) | 预期响应 3DS 1.x ACS (PARes) |
|---|---|---|---|
| 3528000000000000 | 无摩擦认证应用程序 | ENROLLED_Y | 交易状态 |
| 3528000000000001 | 浏览器挑战 | ENROLLED_Y | 交易挑战 |
| 3528000000000002 | 未经验证的无障碍应用程序 | ENROLLED_Y | 交易状态 |
| 3528000000000005 | 无限制认证浏览器 | ENROLLED_Y | 交易状态 |
| 3528000000000006 | 未验证的无限制浏览器 | ENROLLED_Y | 交易状态 |
范围
| 起始范围 | 终端范围 | 计划 |
|---|---|---|
| 340000000000000 | 349999999999999 | 运通 |
| 370000000000000 | 379999999999999 | 运通 |
| 2221000000000000 | 2223000000000022 | 万事达卡 |
| 2223000000000024 | 2720999999999999 | 万事达卡 |
| 5100000000000000 | 5111111111111117 | 万事达卡 |
| 5111111111111119 | 5599999999999999 | 万事达卡 |
| 4000000000000000 | 4111110000000210 | 签证 |
| 4111110000000212 | 4234123412339999 | 签证 |
| 4234123412350000 | 4999999999999999 | 签证 |
| 3000000000000000 | 3099999999999999 | 餐厅 |
| 3528000000000000 | 3589009999999999 | JCB |
3DS2 OTP 代码
| OTP 代码 | 交易状态 | 交易状态原因 | ECI | 验证值 |
|---|---|---|---|---|
| 1234 | Y | / | 01 | JAmi21makAifmwqo2120cjq1AAA= |
| 1111 | N | 01 | 01 | / |
| 2222 | R | 01 | 01 | / |
| 3333 | U | 01 | 01 | / |
| 4444 | A | 01 | 01 | Qm181okmdyqh6yQmYuq1890QAAA= |
相同的 OTP 代码适用于 Visa、Mastercard 和 Amex 方案。
3DS1 OTP 代码
| OTP 代码 | 交易状态 | CAVV | CAVV 算法 | ECI |
|---|---|---|---|---|
| 1234 | Y | VGhpcyBpcyBhIHRlc3QgYmFzZTY= | 7 | 05 |
| 1111 | N | / | / | / |
5.查看付款状态
在向 创建Payment您可以通过分析 status 和 sub_status 从答复中删除。检查 Payment 状态 页面,查看创建付款请求后可能收到的所有选项。
根据处理器和付款方式的不同,状态更新可能需要一些时间。因此,您可能需要使用endpoints 来恢复付款状态。要执行这项任务,可以使用按 ID 检索付款或按商家订单号 检索 付款 endpoints。另一种方法是使用 webhooks 在每个事件发生后接收通知。Yuno 建议您使用 Webhooks 来更好地监控异步支付。查看Webhooks指南,了解如何配置 Yuno 提供的 Webhooks 解决方案。
3 个月前已更新