跳转到主要内容

一次性订单

列出已完成订单

变量:

按日期范围过滤

通过你的业务编号(orderMerchantExternalId)查询一次性订单

传入你在 checkout 创建时附加的 orderMerchantExternalId。
变量:

SDK 示例


订阅订单

列出活跃订阅

过滤取消中的订阅

通过你的业务编号(orderMerchantExternalId)查询订阅订单

传入你在 checkout 创建时附加的 orderMerchantExternalId。每次续期支付都会继承相同的值,因此一个业务号能串起整个订阅生命周期。
变量:

查询订阅当前在第几期

该订阅此刻所处的计费周期,取自通道通知并原样存储 —— Waffo 不计算、不推算。首期为 1, 第 N 期为 N;0 表示通道已授权但尚未扣款。扣款失败同样递增,因此它不是成功扣款次数。 第一条通道通知到达前为 null,本字段上线前创建的订阅同样为 null。 与 webhook 的 data.periodNumber、Payment.periodNumber 是同一个概念,只是锚点不同 —— 见字段说明。本字段随订阅续期前移,而 Payment.periodNumber 冻结在它所属的那笔扣款上。

订阅的优惠

用优惠券或促销码购买的订阅,订单上保留标价;每笔支付记录该期自己的预期金额。期数如何计算见优惠与促销,更换方案对优惠的影响见更换方案。
Variables:
这些字段上线前记录的支付回落为 listTotal = total、discountAmount = 0。

支付

列出成功的支付

snapshotAmountDetails.total 是这笔支付的预期金额(含优惠后)。listTotal 与 discountAmount 分别是优惠前价格与优惠额,满足 listTotal − discountAmount = total;无优惠时 discountAmount 为 0。

按日期范围过滤

通过 Waffo 支付 ID 查询支付

变量:

通过你的业务编号(orderMerchantExternalId)查询支付

传入你在 checkout 创建时附加的 orderMerchantExternalId(与 webhook 载荷字段 data.orderMerchantExternalId 同名)。
变量:
对于订阅订单,每笔续期支付都继承相同的 orderMerchantExternalId。上述查询返回同一业务编号下的全部支付历史,按 createdAt DESC 排序。

查询某笔扣款属于第几期

periodNumber 是这笔扣款所属的周期 —— 首期为 1,第 N 次续费为 N —— 与订阅支付 webhook 为它下发的值相同。扣款失败同样占用一期,因此它不是成功扣款次数。一次性支付与本字段上线前创建的 支付为 null。 它冻结在自己那笔扣款上:一笔当前在第 3 期的订阅,其首期支付上仍是 periodNumber: 1。 想知道订阅今天在第几期,请用 SubscriptionOrder.currentPeriodNumber。
变量:

聚合与排序

按天聚合支付

paymentsAggregate 返回命中全部行的 count 及金额指标 amount(sum、avg、min、max),可选按至多 2 个维度分组。可用维度:status、currency、payment_method_type、card_brand、store,以及时间维度 created_period。granularity(day、week、month、quarter、year;默认 day)仅作用于时间维度。
聚合的 amount 值为最小货币单位(如分)的整数字符串。金额按命中 filter 的所有行求和,因此涉及多币种时应按 currency 分组或过滤。分组按 count 降序、上限 100 组(isTruncated 标记是否被截断);顶层的 count/amount 始终覆盖全部命中行。其它实体暴露相同结构:refundsAggregate、onetimeOrdersAggregate、subscriptionOrdersAggregate、payoutTicketsAggregate、settlementBatchesAggregate、webhookDeliveriesAggregate、emailDeliveriesAggregate。

使用 orderBy 排序

支持排序的列表查询接受 orderBy: [XxxOrderBy!](枚举白名单),默认 created_at DESC。支付可用选项为 created_at_desc、created_at_asc、amount_desc、amount_asc。

退款(执行的记录)

退款记录(order.refunds)在 PSP 确认退款后写入。它们与退款工单分离 — 工单承载请求生命周期,退款记录承载执行结果。

通过 Waffo 退款 ID 查询退款

Refund 上两个业务号以扁平字段公开:orderMerchantExternalId(从原始订单继承)和 refundTicketMerchantExternalId(从原始退款工单继承) — 与 webhook 载荷同名。
变量:
Refund 上有两个金额。amount 是 Money 对象,按最小货币单位计(USD 49.00 是 "4900",display 给出 "49.00");pspAmountDetails.amount 是支付通道实际退给买家的金额,本身就是展示格式字符串("49.00")。与通道账单对账请用 pspAmountDetails;申请金额与通道金额不一致时 isAmountMismatch 为 true。

通过支付(Waffo 支付 ID)查询退款

通过你的业务编号查询退款

按退款工单业务号(创建退款工单时附加的)匹配 — 使用 refundTicketMerchantExternalId filter:
或按订单业务号匹配(返回所有挂在此 reference 下的支付的全部退款,适合订阅续期场景)— 在 payment 层 filter 并读取其 nested refunds:

退款工单

列出所有退款工单

过滤待处理退款

特定支付的退款

变量:

通过你的业务编号(refundTicketMerchantExternalId)查询退款工单

变量:
RefundTicket(请求)和 Refund(执行记录)是两个不同的 GraphQL 类型,但它们的业务侧标识跟 webhook 载荷同名:RefundTicket 和 Refund 都暴露 refundTicketMerchantExternalId;Refund 额外暴露 orderMerchantExternalId(从原始订单继承)。Webhook 载荷上携带相同的两个值 data.orderMerchantExternalId 与 data.refundTicketMerchantExternalId。