线上卖券单查询
线上卖券单查询用来查小程序上买券包产生的每一笔单:谁在什么时候买了哪个券包、券发出去了没有、支付状态怎么样。它唯一的写操作是「作废」——把已经送出但还没使用的券收回来。
一、功能概述
菜单位置:O2O业务 → 微信商城 → 线上卖券单查询(页面地址 /admin/o2o/wx_salecouponbill_qry/)
| 用途 | 说明 |
|---|---|
| 追溯卖券单 | 按下单时间、会员编号、状态筛出券包销售单 |
| 看券明细 | 双击单据行看这张单具体发了哪些券 |
| 作废未用券 | 对「已发券」的单执行作废,券收回、单据转作废 |
| 导出 | 一键导出 Excel 对账 |
单据上的金额与收款不在本页处理:作废只收回券,不退钱。
二、界面布局说明

| 区域 | 内容 |
|---|---|
| 工具栏 | 刷新、条件、作废、导出Excel |
| 主表 | 行号、下单时间、状态、单据id、单号、券包id、价格、会员卡编号、会员名、支付状态、支付状态改变时间、异常信息 |
| 子表 | 标题「券明细(双击行查看券编号)」,列为 行号、券名、券类型编号、状态、数量、送券业务GUID;未选中主表行时提示「请选择单据行查看券明细」 |
| 条件回显 | 「查询条件: 最近30天 | 状态:生效」,另有「记录数: N」 |
三、业务操作步骤
步骤 1:筛单
点「条件」,可筛:
| 项 | 取值 |
|---|---|
| 下单时间 | 今天 / 昨天 / 本月 / 上月 / 最近 N 天(7、15、30、60、90、180、365)/ 指定时段(起止日期+时间) |
| 会员编号 | 输入框占位「会员卡编号(精准)」,只支持精准匹配 |
| 状态 | 生效(默认)/ 无效 / 所有 |
默认口径是「最近 30 天 + 状态:生效」。条件按人记忆,下次进页自动带出。
主表「状态」列与筛选里的「生效/无效」是同一套:生效=已发券,无效=除已发券以外的一切(草稿、作废、退单异常、发券异常等)。
步骤 2:看这张单发了哪些券
双击主表某一行,下方券明细表列出该单送出的每种券:券名、券类型编号、状态、数量、送券业务GUID。送券业务GUID 是后续作废时定位券的依据,异常信息里也会带它。
步骤 3:作废
在主表选中一张已发券的单。
点「作废」。系统先检查这张单里的券,弹「作废确认」框:
- 顶部提示「可作废券 N 张,不可作废券 M 张」;
- 两个页签 可作废(N) / 不可作废(M),列 券名、券类型编号、券编号、状态;
- 按钮 取消 / 确认作废;没有可作废券时「确认作废」是灰的。
点「确认作废」后再弹一次最终确认,原文:
作废已送出并且未使用的券,不退款项
如需退款需要到微信商家后台根据单号进行退款
确认作废?
执行成功后回显「作废完成」,单据状态转作废,券状态转作废;关联的会员礼包赠送期记录一并置为已作废(作废原因记「退单回收券异常作废」同类口径由系统写入)。
执行失败时单据转退单异常,并把失败原因写进「异常信息」列,提示「作废失败:具体原因」。
只有已发券状态的单能作废,其它状态直接报「只有【已发券】状态的单据才能作废」。没选行时提示「请先选择单据」。
券侧只有状态为已发放(未使用)的券可以收回;已使用、已作废、消费退回的券会出现在「不可作废」页签里。
四、字段详细说明
| 界面字段 | 含义与取值 |
|---|---|
| 状态 | 关闭 / 草稿 / 已发券 / 作废 / 退单异常 / 发券异常 / 没有满足条件的发券方案 / 超时未支付关闭订单 / 超时未支付关闭订单失败 |
| 支付状态 | 等待支付 / 支付成功 / 订单关闭 / 查询支付订单失败(例如单号不对)/ 支付失败(含已撤销、支付错误、已退款) |
| 支付状态改变时间 | 支付通道回调的时间,用于核对「显示已支付但没发券」这类问题 |
| 券包id / 价格 | 对应线上卖券里配置的券包与其售价 |
| 单号 | 小程序卖券单号,退款要到微信商家后台按这个号操作 |
| 异常信息 | 发券或作废失败时写入的原因文本 |
| 券明细-状态 | 在库 / 领出 / 已发放(可作废)/ 发放退回 / 已使用 / 代理商领出 / 消费退回 / 已赠送 / 作废;映射不到时显示「[锁定]」 |
| 券明细-送券业务GUID | 该券归属于哪一次送券动作,作废按它定位 |
数据来源是卖券单主表与明细表,券本身落在电子券/蛋糕券的券明细表里,作废时两边同步更新。
五、典型使用场景
场景一:券包卖贵了要收回。 活动配置错价格,客户已付款、券已发放。本页筛出这批单,逐张「作废」把未使用券收回;退款到微信商家后台按单号原路退。
场景二:客户投诉券没到账。 按会员卡编号精准查单,看「状态」是不是发券异常、「异常信息」写的是什么;若是「没有满足条件的发券方案」,说明礼包方案与会员条件不匹配,回到线上卖券 改方案后由门店补发。
场景三:月底对账。 状态选「所有」,时间选上月,「导出Excel」,用「价格」列合计与微信支付商户号对账,用状态列剔除超时未支付的单。
六、权限控制与前置条件
- 本页是纯查询页,写操作只有「作废」一项,且作废会连带改动券表——建议只给能做售后的角色开放。
- 页面无独立 ERP 菜单权限映射项(Django 新增页面),可见性跟随 O2O业务 分组。
- 前置条件:小程序卖券功能已启用(线上卖券 里有生效中的券包),否则本页永远查不到单。
七、常见问题
问:为什么筛不出刚买的单? 答:筛选状态默认「生效」,只出已发券的单。付款后发券还没跑完的单是草稿或发券异常状态,把状态改成「所有」再看。
问:作废之后钱会自动退吗? 答:不会。确认框写得很明确——「作废已送出并且未使用的券,不退款项」,退款需到微信商家后台按单号操作。
问:「确认作废」按钮为什么点不动? 答:这张单里没有可作废的券(券已使用或已作废),「可作废(0)」页签为空时按钮禁用。
问:日期填了查不出来? 答:时间格式不对时接口直接报「日期格式不正确」,指定时段要用日期控件选,不要手敲。
