先决条件
- 一个 Fluz 账户——你将在下面的步骤 1–2 中创建预发 API 凭据并铸造访问令牌。
- 请求发送到 沙盒 GraphQL 端点。此处不会对真实卡片收费——参见 预发 vs. 生产环境。
- 每个变更操作都需要唯一的
idempotencyKey(客户端生成的 UUID),以确保每个请求只被处理一次——参见 幂等性。
开始之前
每次调用都是向同一个 GraphQL 端点发起POST 请求。铸造令牌(步骤 2)使用你的 API Key 进行认证;其余所有调用都使用你的 Bearer 令牌进行认证:
全流程
用凭据换取访问令牌
使用你的 API Key 铸造一个短期、带作用域的用户访问令牌。此调用发送到相同的 GraphQL 端点,认证头为 保存返回的
Authorization: Basic <YOUR_API_KEY>;后续每次调用都使用返回的令牌作为 Bearer 凭据。token,并在下列每个请求中以 Authorization: Bearer <token> 发送。令牌为短期有效——请在服务端铸造它们,并在令牌过期时使用相同的变更再次铸造一个新的(参见 刷新已过期的访问令牌)。详情参见:API 凭据。向你的 Fluz 余额充值
预先向 Fluz 余额充值通常能让礼品卡购买更快,并可能绕过某些速率限制检查。你可以通过两种方式充值:
- 手动,通过 沙盒 Fluz 网站。
- 以编程方式,通过
depositCashBalance变更(如下所示)。
首先,获取支付方式 ID(getWallet)
首先,获取支付方式 ID(getWallet)
通过 API 进行充值时,你需要一个资金来源的 ID(例如 从响应中获取
bankCardId)。运行 getWallet 并保存你要使用的 ID。bankCardId 或 bankAccountId。通过 API 管理资金来源需要 MANAGE_PAYMENT 作用域。更多详情:查看资金来源。发起充值
使用depositCashBalance 变更。它接收一个 DepositCashBalanceInput 对象。入参说明
string
必填
唯一的客户端生成 UUID,确保充值仅被处理一次。
Float
必填
充值金额。
CashBalanceDepositType
目标余额。可为
CASH_BALANCE、GIFT_CARD_BALANCE 或 RESERVE_BALANCE。UUID
资金来源——提供 以下三者之一:
bankAccountId、bankCardId 或 paypalVaultId。Int
仅用于
GIFT_CARD_BALANCE。用于分类商家的四位数 MCC。使用 getMccList 获取合法取值。UUID
当选择
CASH_BALANCE 时,指定要充值的具体消费账户。示例响应
示例响应
充值可能会即时到账,或在 2–5 个工作日内结算,具体取决于资金来源和结算类型。响应中的
balances 对象反映你当前的可用余额。随时重新查询请参见 检查账户余额。浏览商户并选择一个优惠
余额就绪后,使用
getMerchants 拉取可用商户及其返现优惠的目录。常用参数
String
按名称筛选商户。
OffsetInput
{ limit, offset }。默认与最大 limit 为 20。OfferTypesInput
指定返回哪些优惠类型的布尔标记,例如
{ giftCardOffer: true, cardLinkedOffer: false }。FilterByInput
在每个商户内筛选优惠,例如按
deliveryFormat(URL、CODES、PIN_AS_CODE、PIN_WITH_URL)。分页: 响应可能返回少于你请求
limit 的结果。要拉取完整目录,请持续将 offset 以 limit 递增,直到 API 返回空数组([])。未筛选的目录很大——最多每天获取一次;针对性查询请使用 name 或 offerTypes。可选:获取某商户的单个最佳优惠(getOfferQuote)
可选:获取某商户的单个最佳优惠(getOfferQuote)
如果你已确定商户与金额,
getOfferQuote 能直接返回当前可用的最佳优惠——包含实时库存信息。merchantSlug 与 denomination 为必填。paymentMethod 默认为 FLUZPAY(你的 Fluz 余额),也可为 BANK_CARD、BANK_ACCOUNT、PAYPAL、APPLE_PAY 和 GOOGLE_PAY。购买礼品卡
使用
purchaseGiftCard 变更。你可以通过两种方式指定购买的内容:- 选项 A — 商户 slug(推荐)
- 选项 B — 指定优惠 ID
传入
merchantSlug,Fluz 会自动应用该商户当前可用的最佳优惠。入参说明
string
必填
唯一的客户端生成 UUID,确保该购买仅被处理一次。
UUID / String
必填
二选一提供。
merchantSlug 会自动选择最佳费率;offerId 则指向某个特定优惠。Float
必填
要购买的礼品卡金额。
UUID / Float
支付方式。使用
balanceAmount(Fluz 余额)、bankAccountId、bankCardId 或 paypalVaultId。你可以将 Fluz 余额与另一来源组合支付。Boolean
默认值:"true"
如果其他支付方式失败,则回退至你的 Fluz 余额。将其设为
false 可关闭该回退。Float
通过
merchantSlug 购买时可接受的最低返现比例。UUID
强制使用特定的专属费率。可在
getMerchants 中找到类型为 EXCLUSIVE_RATE_OFFER 的优惠对应的值。UUID
要扣款的消费账户(现金余额)。
示例响应
示例响应
请保存响应中的
giftCardId——你将在下一步用它来展示礼品卡。如果购买失败,请查看 礼品卡错误代码。展示礼品卡详情
最后,获取可用于兑换的详情(代码、PIN 和/或 URL)。
没有 giftCardId?先列出你的卡片(getGiftCards)
没有 giftCardId?先列出你的卡片(getGiftCards)
如果你刚在步骤 3 中拿到了 你可以使用
giftCardId,可跳过本节。否则,先列出你的礼品卡:status 与 userCashBalanceId 进行过滤,并通过 paginate 进行分页。展示兑换详情
使用giftCardId 调用 revealGiftCardByGiftCardId。示例响应
示例响应
兑换字段因商户而异。有些卡仅返回字母数字
code 而无 pin;另一些则仅返回 url。展示时应始终依据 getGiftCards 返回的 deliveryFormat(而非 getMerchants)进行渲染——商户的在售优惠可能在购买后发生变化,而 getGiftCards 反映的是该卡实际购买时的格式。大功告成 🎉
你已完成一次完整的交易流程——充值余额、浏览优惠、购买礼品卡并进行展示。接下来,探索更多 API 能力:Virtual Cards
发行并管理可被网络受理的虚拟卡。
Wallets & Transfers
开设消费账户并在其间转移资金。
Transaction Activity
拉取、筛选并标注交易历史。
Embedded Widgets
将 Fluz 的流程直接嵌入你的自有界面。
想了解更多? 发送邮件至 support@fluz.app 与我们的专家交流或申请演示。