仅限预备环境模拟交易仅存在于预备环境(
https://transactional-graph.staging.fluzapp.com/api/v1/graphql)。不会发生资金流动,不会产生交换费,也不会向 Mastercard 提交任何内容。在生产环境中,交易只会来自真实的商户活动。在你请求模拟之前
一次授权会经过完整的控制堆栈,因此未正确设置的卡片会因与你的测试无关的原因而被拒。1
账户已通过 KYC
只有已验证的账户才能发卡——也才能通过授权。参见 测试 KYC 流程 获取会通过的身份信息。
2
你拥有一张 ACTIVE 卡
使用
createVirtualCard 并选择来自Test Virtual Card Offers的一个 offer 来发卡。保存好 virtual_card_id——我们通过它来定位卡片。3
卡已注资且未锁定
该卡从你的 Fluz 余额中支取。确认消费限额覆盖你的测试金额,并且卡片未被锁定、未过期、未透支。
getVirtualCardBalance 可以一眼看到 remainingBalance。你可以模拟什么
根据所需选择生命周期中的任意环节。每种情况都会在你这边映射到不同的记录和 webhook。授权(通过)
授权(通过)
基本情形:在你指定的商户,以你指定的金额进行一次消费。卡片的可用余额会立即减少,交易进入待处理状态。使用它来验证消费控制、余额递减,以及你的
TRANSACTION_CREATE 处理器的行为。清算(捕获)
清算(捕获)
跟随授权之后的结算环节,在真实世界中可能会延后几天。我们既可以与授权同步一步完成捕获,也可以让授权保持打开,以便你观察待处理状态,然后再单独请求捕获。第二种方式更贴近生产的演练。
拒付
拒付
被授权服务拒绝的交易。告诉我们你想看到哪种拒付——由控制导致的拒付(超出消费限额、品牌锁定卡在错误商户、被锁定的卡)或认证拒付(CVV 不匹配)。拒付会包含
declineReason 和 declineCategory;完整列表见拒付代码。撤销
撤销
在清算前被释放的授权——例如商户放弃了交易,或终端超时。被占用的金额会返还到卡上。如果你的对账基于授权而非清算,值得测试该情况。
退款
退款
购买清算后全额或部分退回到卡片的金额。它会以
REFUND 交易类型出现,而不是减少原交易金额,因此你的总账需要将其作为独立记录处理。零金额和 AVS 校验
零金额和 AVS 校验
一些商户会在扣款前用 0.01 的授权探测卡片。它们会作为独立记录出现,并在稍后被撤销。如果你的对账会汇总授权,请测试此情形——它是造成重复计数的常见来源。
需要你提供什么
提供得越全,往返就越少。验证结果
一旦我们确认模拟已运行,所有内容都可以通过 API 读取。读取模拟交易与读取真实交易没有任何区别。PURCHASE 记录,并伴随 remainingBalance 的相应减少。拒付会以 DECLINE 类型出现,并且不影响余额——拒付也可以通过获取拒付交易单独查询。
Webhooks
模拟交易会触发与真实交易相同的事件,这使其成为端到端测试你端点的最简洁方式:
如果你请求了不带单步清算的授权,你应当先单独看到
TRANSACTION_CREATE,而 TRANSACTION_UPDATE 只会在捕获运行后出现。有关负载和签名校验,见 Webhooks。
故障排查
后续步骤
你的第一笔虚拟卡消费
完整的成功路径——选择一个项目、发卡、揭示卡片信息,并跟踪其消费。
获取虚拟卡交易
按类型与日期范围筛选卡片活动,并读取交易上的每个字段。
拒付代码
每一种拒付原因与类别,以及你的应用应如何处理。
Webhooks
订阅交易事件、验证签名,并处理重试。