如何在商家平台查看预授权冻结、解冻及转支付订单?
结论
登录商家平台,进入 交易订单 或 卖出的订单,把业务类型设为 预授权,即可在线查询预授权冻结、解冻和转支付订单。常用筛选条件有:
- 创建时间或交易时间
- 商户订单号
- 平台交易号
- 预授权号
- 业务类型
- 订单状态
- 门店、终端或操作员
商家平台、账号权限和产品版本不同,页面显示的菜单和字段也可能不同。请以实际页面提供的筛选项为准。
为什么要按业务类型和状态筛选
预授权不是普通消费,而是由多个关联操作组成:
- 冻结:暂时冻结消费者账户中的指定金额。
- 解冻:释放全部或部分冻结金额。
- 转支付:将全部或部分冻结金额转为实际支付。
如果只查普通支付订单,可能看不到完整的预授权流水。查询时,先选择“预授权”业务类型,再根据订单状态、预授权号或原商户订单号查找相关记录。
操作步骤
1. 进入订单查询页面
登录对应的商家平台,在交易管理区域查找以下入口之一:
- 交易订单
- 卖出的订单
- 订单管理
如果页面没有这些菜单,请确认当前账号是否有交易查询权限,或联系主账号管理员授权。
2. 设置查询时间
先选择预授权操作发生的大致时间。时间跨度过大时,平台可能限制查询范围、分页显示结果,或只返回部分数据。
同时确认页面使用的是哪种时间条件:
- 订单创建时间
- 冻结时间
- 完成时间
- 最近更新时间
查询解冻或转支付记录时,如果按冻结时间查不到结果,可以改用操作发生时间或更新时间。
3. 选择预授权业务
在“业务类型”“产品类型”或类似筛选项中选择:
预授权
有些平台会进一步区分:
预授权冻结
预授权解冻
预授权转支付
如果页面没有单独列出动作类型,可以查看订单状态或进入订单详情确认具体操作。
4. 输入订单标识
如果知道订单编号,优先使用精确查询。常见标识有:
- 商户订单号
- 平台交易号
- 预授权号
- 原冻结订单号
- 商户请求号
冻结、解冻和转支付可能分别生成不同的业务流水号,但通常可以通过预授权号或原冻结订单号关联起来。只查询某次解冻或转支付的商户订单号,未必能看到完整的交易链路。
5. 按状态缩小范围
根据需要选择相应的订单状态,例如:
- 冻结成功
- 冻结处理中
- 冻结失败
- 已解冻
- 部分解冻
- 已转支付
- 部分转支付
- 已关闭
各平台使用的状态名称可能不同。例如,“转支付成功”也可能显示为“已完成”或“支付成功”。判断时应结合订单详情中的业务类型和金额变化。
6. 查看订单详情
打开查询结果中的订单详情,重点核对:
- 冻结金额
- 已解冻金额
- 已转支付金额
- 剩余冻结金额
- 冻结时间
- 解冻或转支付时间
- 商户订单号
- 平台交易号
- 预授权号
- 当前状态
各项金额通常应符合以下关系:
原冻结金额 = 已转支付金额 + 已解冻金额 + 剩余冻结金额
如果平台允许部分解冻或部分转支付,同一笔预授权下可能有多条后续流水。核对金额时应合并计算,不能只看其中一条。
常用筛选条件
| 筛选条件 | 适用场景 |
|---|---|
| 时间范围 | 不清楚订单号,只知道大致发生时间 |
| 商户订单号 | 查询商户系统发起的某次冻结、解冻或转支付 |
| 平台交易号 | 根据支付平台返回的交易流水精确定位 |
| 预授权号 | 关联冻结及其后续解冻、转支付记录 |
| 业务类型 | 区分预授权订单和普通支付订单 |
| 订单状态 | 查找成功、失败、处理中或已关闭的订单 |
| 门店或终端 | 在多门店、多收银设备场景下缩小范围 |
| 操作员 | 核对某位员工发起的业务操作 |
| 金额 | 订单号未知时辅助定位,但通常不能单独确认订单 |
代码示例
在线查看订单不需要编写代码。如果已经从平台导出订单数据,可以按预授权号汇总冻结、解冻和转支付金额。下面是一个通用示例,不是特定平台的官方接口代码:
from collections import defaultdict
from decimal import Decimal
records = [
{"auth_no": "AUTH001", "type": "FREEZE", "amount": "500.00"},
{"auth_no": "AUTH001", "type": "UNFREEZE", "amount": "100.00"},
{"auth_no": "AUTH001", "type": "CAPTURE", "amount": "350.00"},
]
summary = defaultdict(lambda: {
"freeze": Decimal("0"),
"unfreeze": Decimal("0"),
"capture": Decimal("0"),
})
for record in records:
auth_no = record["auth_no"]
amount = Decimal(record["amount"])
if record["type"] == "FREEZE":
summary[auth_no]["freeze"] += amount
elif record["type"] == "UNFREEZE":
summary[auth_no]["unfreeze"] += amount
elif record["type"] == "CAPTURE":
summary[auth_no]["capture"] += amount
for auth_no, amounts in summary.items():
remaining = (
amounts["freeze"]
- amounts["unfreeze"]
- amounts["capture"]
)
print(auth_no, {
**amounts,
"remaining": remaining,
})
实际导出文件的字段名和业务类型值可能不同,需要按照平台提供的字段说明进行映射。
注意事项
- 优先使用预授权号或原冻结订单号查询,这两类编号更适合关联完整的业务链路。
- 冻结、解冻和转支付可能对应不同的流水,不一定只生成一条订单记录。
- 处理中的订单可能存在状态同步延迟,可以稍后刷新,并结合异步通知或账单核对。
- 页面查询结果不能代替财务对账。确认资金时,还要核对订单详情、账单和商户系统记录。
- 如果查不到订单,请检查时间范围、业务类型、订单号类型、所属门店和当前账号的数据权限。
- 不要通过重复发起解冻或转支付来验证订单状态,以免产生重复请求或业务冲突。
备注:内容仅供参考。
