Skip to main content

一次性订单

列出已完成订单

变量:

按日期范围过滤

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

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

SDK 示例


订阅订单

列出活跃订阅

过滤取消中的订阅

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

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

查询订阅当前在第几期

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

支付

列出成功的支付

按日期范围过滤

通过 Waffo 支付 ID 查询支付

变量:

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

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

查询某笔扣款属于第几期

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

聚合与排序

按天聚合支付

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

使用 orderBy 排序

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

退款(执行的记录)

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

通过 Waffo 退款 ID 查询退款

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

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

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

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

退款工单

列出所有退款工单

过滤待处理退款

特定支付的退款

变量:

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

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