{{ item.title }} {{ item.title }}
{{ currentAdmin.username || '管理员' }} 退出登录
{{ tab.title }} ×
今日收入(元)
{{ formatMoney(stats.today_revenue) }}
今日订单 {{ stats.today_orders || 0 }} 笔 · 已付 {{ stats.today_paid_orders || 0 }} 笔
本月收入(元)
{{ formatMoney(stats.month_revenue) }}
本月订单 {{ stats.month_orders || 0 }} 笔
累计收入(元)
{{ formatMoney(stats.revenue) }}
已支付 {{ stats.paid_orders || 0 }} 笔
支付转化率
{{ stats.pay_rate || 0 }}%
客单价 ¥{{ formatMoney(stats.avg_order_price) }}
订单总数
{{ stats.orders || 0 }}
用户 {{ stats.users || 0 }} 人
客服充值累计
{{ formatMoney(stats.recharge_total) }}
今日充值 {{ formatMoney(stats.recharge_today) }}
小程序数量
{{ stats.apps || 0 }}
商品数量
{{ stats.products || 0 }}
近30日趋势(订单量 / 收入)
各小程序收入对比
订单支付状态分布
支付方式分布(已支付)
数据摘要
昨日收入¥ {{ formatMoney(stats.yesterday_revenue) }}
今日收入¥ {{ formatMoney(stats.today_revenue) }}
本月收入¥ {{ formatMoney(stats.month_revenue) }}
累计收入¥ {{ formatMoney(stats.revenue) }}
待支付订单{{ dashboardData.order_status?.pending_pay || 0 }} 笔
已支付订单{{ dashboardData.order_status?.paid || 0 }} 笔
已取消订单{{ dashboardData.order_status?.cancelled || 0 }} 笔
已退款订单{{ dashboardData.order_status?.refunded || 0 }} 笔
热销商品 TOP10
商品名称 订单数 已支付 收入(元)
暂无数据
{{ row.title }} {{ row.orders }} {{ row.paid_orders }} {{ formatMoney(row.revenue) }}
最近订单
时间 订单号 商品 小程序 金额 支付状态 支付方式
暂无订单
{{ row.created_at }} {{ row.order_no }} {{ row.product_title }} {{ row.app_name || '-' }} {{ formatMoney(row.price) }} {{ payStatusText(row.pay_status) }} {{ payTypeText(row.pay_type) }}
暂无会话
{{ s.nickname || s.openid }}
{{ csSessionPreview(s) }}
{{ s.last_msg_at || s.updated_at }}
{{ activeCsSession.openid }}
{{ activeCsSession.nickname || '未命名用户' }} · {{ activeCsSession.app_id }}
客服消息截止 {{ activeCsSession.reply_deadline }}(用户发消息后 48 小时内可回复)
请从左侧选择会话开始接待
添加小程序前,请先在微信小程序后台配置服务器域名
配置路径:微信公众平台 → 开发 → 开发管理 → 开发设置 → 服务器域名
request 合法域名(小程序接口请求)
填到微信后台「request 合法域名」,须带 https://{{ miniAppDomainGuide.apiUrl }}
uploadFile / downloadFile 合法域名(商品图片等静态资源)
填到微信后台「uploadFile 合法域名」和「downloadFile 合法域名」,须带 https://{{ miniAppDomainGuide.ossUrl }}
审核版本仅展示「审核商品库」商品(全局复用),下单走真实支付;支付版本展示正常商品并真实支付;客服版本展示正常商品,点击「立即下单」进入客服。新建小程序默认为支付版本。
ID 名称 AppID 线上版本 状态 操作
暂无数据,点击右上角新增小程序
{{ row.id }} {{ row.name }} {{ row.app_id }} {{ row.status ? '启用' : '禁用' }}
{{ appForm.id ? '编辑小程序' : '新增小程序' }}
基础信息
首页展示
按顺序展示在小程序首页顶部,建议尺寸 750×360 左右,可上传多张。
商品详情黄色说明(本小程序全局)
对该小程序下所有商品详情页统一生效,无需在每个商品里单独配置。
微信支付
商户号、APIv3 密钥、证书等请在左侧菜单 「微信支付」 中全局配置,所有小程序共用同一套微信支付商户参数。
各小程序可单独开关是否允许使用微信支付。
微信虚拟支付(wx.requestVirtualPayment)
配置项来自微信公众平台 → 虚拟支付 → 支付基础配置(OfferID / AppKey)。
若报 OFFER_ID_INVALID:OfferID 须与该小程序 AppID 绑定,并完成商户授权/进件;开发者工具测试可切「沙箱环境」+ 沙箱 AppKey。
现网环境 沙箱环境 代币充值 道具直购
商品定价须为整元;道具直购模式需在商品中配置「虚拟道具ID」
1 人民币 = {{ appForm.virtual_coin_rate || 1 }} 代币,须与微信后台「虚拟支付 → 代币配置」完全一致。 常见:1(1元=1代币)或 100(1元=100代币)。填错会导致实付金额异常。
请在微信后台配置消息推送;代币现金单可接收 xpay_goods_deliver_notify;回调:{{ notifyUrl }}
全局默认配置
新建小程序时将自动填充以下配置,可在创建前按需修改;不影响已创建的小程序。
首页展示
商品详情黄色说明
支付默认开关
现网环境 沙箱环境
用户在小程序「我的」页面复制账户编号后,在此查询并办理余额充值。
用户信息

账户编号:{{ rechargeUser.user_code }}

内部ID:{{ rechargeUser.id }}

昵称:{{ rechargeUser.nickname || '未设置' }}

小程序:{{ rechargeUser.app_name || '-' }}({{ rechargeUser.wx_app_id || '-' }})

当前余额:¥ {{ rechargeUser.balance }}

OpenID:{{ rechargeUser.openid }}

充值金额
备注
最近充值记录
时间 账户编号 内部ID 昵称 小程序 金额 充值后余额 备注 操作人
暂无记录
{{ row.created_at }} {{ row.user_code || '-' }} {{ row.user_id }} {{ row.nickname || '-' }} {{ row.app_name || '-' }} +{{ row.amount }} {{ row.balance_after }} {{ row.remark || '-' }} {{ row.admin_username || '-' }}
正常商品全局共用,所有小程序在「支付版本 / 客服版本」下展示同一套商品。
已选 {{ productSelectedIds.length }} 项
ID 商品名称 价格 销量 状态 操作
暂无商品
{{ row.id }} {{ row.title }} {{ row.price }} {{ row.sales }}
审核商品全局复用,小程序切换为「审核版本」时在 C 端展示;下单走真实支付流程。
审核版下单须知(全局)
全部小程序处于「审核版本」时,商品详情页展示此处内容;审核版本不显示黄色说明区域。支付/客服版本仍使用各小程序编辑页中的「下单须知」。
已选 {{ auditProductSelectedIds.length }} 项
ID 商品名称 价格 销量 状态 操作
暂无审核商品
{{ row.id }} {{ row.title }} {{ row.price }} {{ row.sales }}
待支付订单超过15分钟自动取消;除已支付外,未完成订单保留30天后自动清理。上方按钮可手动删除7天前的未完成订单。
全部{{ orderStats.total || 0 }}
待支付{{ orderStats.pending || 0 }}
已取消{{ orderStats.cancelled || 0 }}
已退款{{ orderStats.refunded || 0 }}
筛选金额合计 ¥{{ formatMoney(orderStats.total_amount) }} · 已付 ¥{{ formatMoney(orderStats.paid_amount) }}
{{ orderDateRangeText }}
快速选择
{{ mon.year }}年 {{ mon.monthLabel }}月
{{ w }}
{{ day.getDate() }}
订单号 小程序 商品 金额 游戏ID 支付方式 支付状态 下单时间 操作
加载中...
暂无订单
{{ row.order_no }} {{ row.app_name || '-' }} {{ row.product_title }} {{ row.price }} {{ row.game_id }} {{ row.pay_type_text || payTypeText(row.pay_type) }} {{ payStatusText(row.pay_status) }} 退款审核中 {{ row.created_at }} 主动退款 -
共 {{ orderTotal }} 条,当前第 {{ orderPage }} / {{ orderTotalPages }} 页
用户提交退款申请后在此审核。通过/拒绝均需密码或微信扫码二次验证。余额支付自动退回账户;微信支付、虚拟支付自动调用微信退款接口。
全部{{ refundStats.total || 0 }}
待审核{{ refundStats.pending || 0 }}
已拒绝{{ refundStats.rejected || 0 }}
退款单号 订单号 小程序 商品 金额 支付方式 申请原因 状态 申请时间 操作
加载中...
暂无退款申请
{{ row.refund_no }} {{ row.order_no }} {{ row.app_name || '-' }} {{ row.product_title }} {{ row.amount }} {{ row.pay_type_text || payTypeText(row.pay_type) }} {{ row.reason }} {{ row.status_text || refundStatusText(row.status) }} {{ row.created_at }} {{ row.admin_remark }} -
共 {{ refundTotal }} 条,当前第 {{ refundPage }} / {{ refundTotalPages }} 页
此处配置对所有小程序生效,参数保存在数据库中。各小程序在「设置」中可单独开关是否启用微信支付;虚拟支付仍在各小程序设置里单独配置。
配置完整 可正常使用微信支付
商户号已填写,还需保存 APIv3 密钥商户 API 私钥 后才能使用(留空表示不修改已保存的密钥)
商户平台 → 账户中心 → API安全 → API证书 → 查看证书 → 证书序列号
已保存 APIv3 密钥,留空表示不修改
已保存商户私钥,留空表示不修改
APIv3 回调(HTTPS,路径中勿带 ? 参数):
{{ globalWechatNotifyUrl }}
每个小程序使用各自 AppID 路径,例:/api/index.php/pay/notify/小程序AppID
保存
客服异常、小程序 access_token 失败、消息推送签名校验失败、微信违规处罚推送(wxa_punish_event)用户申请退款、OSS 上传失败、API 异常等将自动发邮件(异常类告警 5 分钟内最多 1 封)。
SSL
您只能查看和修改自己的账号信息;新增、删除其他账号需使用 admin 账号登录。微信登录由统一认证平台管理,无需在此填写 OpenID。
ID 用户名 微信 OpenID 状态 最后登录 创建时间 操作
暂无账号
{{ u.id }} {{ u.username }} {{ u.wechat_openid || '-' }} {{ u.status === 1 ? '启用' : '禁用' }} {{ u.last_login_at || '-' }} {{ u.created_at }}
修改我的密码
操作日志与错误日志保留 {{ logRetentionDays }} 天,超出自动清除。
时间 分类 操作人 标题 摘要 操作
暂无日志
{{ row.created_at }} {{ row.category || '-' }} {{ row.admin_username || '-' }} {{ row.title }} {{ logSummary(row) }}
共 {{ logTotal }} 条
第 {{ logPage }} 页
小程序:{{ csAppName }}
超链接须用双引号,整段 <a>...</a> 写在同一行,例如:
您好,欢迎联系在线客服。
<a href="https://work.weixin.qq.com/ca/xxx">联系人工客服</a>
<a href="https://work.weixin.qq.com/ca/xxx">点我下单</a>
单引号 href='...' 会导致微信显示 HTML 源码而不是蓝色可点链接。
用户发送纯数字(如 1、2)时自动回复对应内容;人工接待时 FAQ 仍会回复。
欢迎卡片
网页填完整 URL;小程序页面填 pages 路径(须配置图标 URL)
+
点击上传
上传中
消息推送(回填微信公众平台)
路径:开发 → 开发管理 → 消息推送。消息加密方式选 明文模式,数据格式选 XML
每个小程序在微信后台单独配置;URL 使用 callback.php?wx_app_id=AppID 格式(无需 Nginx 路径重写),用于区分不同小程序的消息。
Token / EncodingAESKey 自动保存在数据库表 wechat_push_config;底部「保存」只保存客服文案,不含消息推送配置。重新生成后须同步更新微信后台。
明文模式也需填写此项;须为 43 位字母或数字(不含 + / 等符号)。重新生成后须同步更新微信后台配置。
{{ csForm.push_encrypt_mode_label || '明文模式' }} {{ csForm.push_data_format || 'XML' }}

时间:{{ logDetail.created_at }}

标题:{{ logDetail.title }}

分类:{{ logDetail.category }}

操作人:{{ logDetail.admin_username }}

IP:{{ logDetail.ip }}

请求:{{ logDetail.request_uri }}

内容:
{{ logDetail.content }}
上下文:
{{ JSON.stringify(logDetail.context, null, 2) }}
订单号:{{ adminRefundOrder.order_no }}
商品:{{ adminRefundOrder.product_title }}
金额:¥{{ adminRefundOrder.price }} · {{ adminRefundOrder.pay_type_text || payTypeText(adminRefundOrder.pay_type) }}
密码验证 扫码验证
需启用微信登录且账号已绑定 OpenID
{{ secScanVerified ? '已验证' : '打开扫码窗口' }} 等待扫码,请在弹出窗口中完成验证… 扫码验证通过
退款单号:{{ refundAuditRow.refund_no }}
订单号:{{ refundAuditRow.order_no }} · ¥{{ refundAuditRow.amount }}
支付方式:{{ refundAuditRow.pay_type_text || payTypeText(refundAuditRow.pay_type) }}
确认通过后将自动调用微信退款接口(余额支付退回账户)。
密码验证 扫码验证
需启用微信登录且账号已绑定 OpenID
{{ secScanVerified ? '已验证' : '打开扫码窗口' }} 等待扫码,请在弹出窗口中完成验证… 扫码验证通过
全局审核商品 全局正常商品
封面预览
+
点击上传封面
上传中...
仅支持正整数(元),不支持小数
首页卡片划线价,填 0 不显示
随机生成