Skip to main content
预备环境的虚拟卡是具有真实 BIN 的真实卡片记录,但不在实时支付网络上——没有商户可以刷它们。为验证你的消费、余额和对账逻辑,Fluz 会通过发卡方处理器的测试环境向你的卡注入一次授权。从那一点开始的所有下游路径都是生产代码路径:相同的授权服务、相同的消费控制、相同的总账分录、相同的 webhooks。
仅限预备环境模拟交易仅存在于预备环境(https://transactional-graph.staging.fluzapp.com/api/v1/graphql)。不会发生资金流动,不会产生交换费,也不会向 Mastercard 提交任何内容。在生产环境中,交易只会来自真实的商户活动。
由 Fluz 触发模拟没有公共的 mutation 可以将交易注入到卡片上。授权模拟发生在发卡方处理器的控制台中,该控制台位于 Fluz 的 PCI 环境内,不对合作伙伴公开。请通过你的集成渠道(共享 Slack 频道或 partnerships@fluz.app)告知我们所需的交易,我们会将其运行在你的卡上,通常在同一工作日完成。本页其余内容——发卡、读取结果——均可自助完成。

在你请求模拟之前

一次授权会经过完整的控制堆栈,因此未正确设置的卡片会因与你的测试无关的原因而被拒。
1

账户已通过 KYC

只有已验证的账户才能发卡——也才能通过授权。参见 测试 KYC 流程 获取会通过的身份信息。
2

你拥有一张 ACTIVE 卡

使用 createVirtualCard 并选择来自Test Virtual Card Offers的一个 offer 来发卡。保存好 virtual_card_id——我们通过它来定位卡片。
3

卡已注资且未锁定

该卡从你的 Fluz 余额中支取。确认消费限额覆盖你的测试金额,并且卡片未被锁定、未过期、未透支。getVirtualCardBalance 可以一眼看到 remainingBalance

你可以模拟什么

根据所需选择生命周期中的任意环节。每种情况都会在你这边映射到不同的记录和 webhook。
基本情形:在你指定的商户,以你指定的金额进行一次消费。卡片的可用余额会立即减少,交易进入待处理状态。使用它来验证消费控制、余额递减,以及你的 TRANSACTION_CREATE 处理器的行为。
跟随授权之后的结算环节,在真实世界中可能会延后几天。我们既可以与授权同步一步完成捕获,也可以让授权保持打开,以便你观察待处理状态,然后再单独请求捕获。第二种方式更贴近生产的演练。
被授权服务拒绝的交易。告诉我们你想看到哪种拒付——由控制导致的拒付(超出消费限额、品牌锁定卡在错误商户、被锁定的卡)或认证拒付(CVV 不匹配)。拒付会包含 declineReasondeclineCategory;完整列表见拒付代码
在清算前被释放的授权——例如商户放弃了交易,或终端超时。被占用的金额会返还到卡上。如果你的对账基于授权而非清算,值得测试该情况。
购买清算后全额或部分退回到卡片的金额。它会以 REFUND 交易类型出现,而不是减少原交易金额,因此你的总账需要将其作为独立记录处理。
一些商户会在扣款前用 0.000.00 或 0.01 的授权探测卡片。它们会作为独立记录出现,并在稍后被撤销。如果你的对账会汇总授权,请测试此情形——它是造成重复计数的常见来源。

需要你提供什么

提供得越全,往返就越少。

验证结果

一旦我们确认模拟已运行,所有内容都可以通过 API 读取。读取模拟交易与读取真实交易没有任何区别。
一笔模拟购买应显示为一条 PURCHASE 记录,并伴随 remainingBalance 的相应减少。拒付会以 DECLINE 类型出现,并且不影响余额——拒付也可以通过获取拒付交易单独查询。
卡级别查询只覆盖卡片活动。若要在账户统一总账中与存款和转账一同查看相同事件,请使用 getTransactions——参见交易概览

Webhooks

模拟交易会触发与真实交易相同的事件,这使其成为端到端测试你端点的最简洁方式: 如果你请求了不带单步清算的授权,你应当先单独看到 TRANSACTION_CREATE,而 TRANSACTION_UPDATE 只会在捕获运行后出现。有关负载和签名校验,见 Webhooks

故障排查

后续步骤

你的第一笔虚拟卡消费

完整的成功路径——选择一个项目、发卡、揭示卡片信息,并跟踪其消费。

获取虚拟卡交易

按类型与日期范围筛选卡片活动,并读取交易上的每个字段。

拒付代码

每一种拒付原因与类别,以及你的应用应如何处理。

Webhooks

订阅交易事件、验证签名,并处理重试。
想了解更多? 请通过 partnerships@fluz.app 联系我们。与我们的专家交流以获取更多信息或请求演示。