支付中心运维管控
详情介绍
一、插件简介
| 项目 | 说明 |
|---|---|
| 插件标识 | payment |
| 版本 | 1.0.78 |
| 分类标签 | 交易 |
| 前台入口 | 充值 /payment/recharge、提现 /payment/withdraw、积分兑换 /payment/exchange(若社区开启伪静态,路径带后缀,如 /payment/recharge.html)。会员中心「立即充值」可弹窗完成充值。 |
| 后台入口 | 应用中心 → 插件列表 → 支付中心;菜单「支付中心」/admin/payment_order |
| 回调地址 | /payment/notify/{channel}、/payment/return/{channel}(channel 为 alipay / wechat / xunhu / epay / usdt 等) |
独立支付插件,为社区金币充值、VIP 现金购买、勋章付费、付费内容等业务提供统一下单、异步回调与履约能力。支持支付宝官方、微信支付官方、虎皮椒、易支付、USDT;可配置积分/金币前台名称(全站插件共用)、沙箱模式、弹窗扫码、免登录购买,以及提现/积分兑换。
二、核心能力
| 能力 | 说明 |
|---|---|
| 多通道支付 | 支付宝官方、微信官方、虎皮椒、易支付、USDT,可多选启用。前台按渠道展示支付宝/微信/QQ/USDT,实际走已勾选接口 |
| 金币充值 | 阶梯充值套餐与自定义金额,按汇率换算到账金币 |
| 积分/金币名称 | 后台配置前台展示名;社区、积分商城、抽奖、签到等插件统一读取。未填则显示「积分」「金币」 |
| 沙箱/模拟支付 | 联调时可不走真实通道,使用模拟支付完成订单 |
| 弹窗/跳转支付 | 弹窗展示二维码扫码,或关闭后跳转收银台/电脑网站支付 |
| 免登录购买 | 游客可用现金购买金币标价的付费帖、隐藏内容、网盘资源;成功后按金币价给作者入账并解锁 |
| 异步回调 | 各通道 notify/return 统一处理订单状态与业务履约 |
| 提现审核 | 用户申请金币提现,管理员在后台审核通过/拒绝 |
| 积分兑换 | 积分与金币双向兑换(需安装社区插件) |
| 订单管理 | 后台查看充值记录、手动补单、删除订单 |
| 插槽扩展 | member_asset_tabs:在「我的资产」页注入兑换/提现 Tab |
三、依赖与安装
- 将插件目录置于
plugins/payment/。 - 在应用中心安装「支付中心」。
- 安装时自动创建
payment_order表并注册后台菜单。 - 硬依赖:社区插件
community,提供金币/积分账户、资产流水与提现表。 - 软依赖:消息中心(充值成功通知);VIP、勋章、付费阅读、隐藏内容、网盘、积分商城、抽奖、签到、广告、任务中心、应用市场、发卡商城等通过本插件收款或读取积分/金币名称。未安装不影响支付中心本身。
- 配置各支付通道密钥后,将回调 URL 填入支付平台(格式:
https://你的域名/payment/notify/alipay等)。站点需公网可访问;回调优先使用社区站点域名,避免内网 Host 导致无法到账。
四、应用中心基础配置
在应用中心 → 支付中心 → 配置,字段来自 configSchema:
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| 启用支付 | 开关 | 开 | 关闭后业务插件无法发起付费/充值 |
| 沙箱模式 | 开关 | 开 | 开启后不走真实通道,可用「模拟支付」完成订单(联调推荐) |
| 弹窗支付 | 开关 | 开 | 开启后前台弹出二维码扫码;关闭后直接跳转支付链接 |
| 免登录购买 | 开关 | 开 | 游客可用现金购买金币标价内容;积分标价不支持游客现金购 |
| 可用支付接口 | 多选 | — | 可多选。前台只展示支付宝/微信等渠道(USDT 为独立入口)。弹窗扫码时优先易支付、其次虎皮椒;跳转支付时优先官方通道 |
| 默认币种 | 文本 | CNY | 默认结算币种 |
| 积分名称 | 文本 | 积分 | 前台展示名,空则显示「积分」。各插件统一读取 |
| 金币名称 | 文本 | 金币 | 前台展示名,空则显示「金币」。各插件统一读取 |
| 金币汇率 | 数字 | 10 | 1 元默认兑换多少金币(可含小数);到账金币四舍五入为整数;套餐可单独覆盖 |
| 充值套餐 | 套餐 | 6:60 等 | 按阶梯逐条添加:金额(元)与到账金币 |
| 支付宝 AppId | 文本 | — | 勾选支付宝时显示 |
| 支付宝应用私钥 | 多行文本 | — | RSA2 私钥,可带或不带 BEGIN 头 |
| 支付宝公钥 | 多行文本 | — | 支付宝开放平台「支付宝公钥」,非应用公钥 |
| 支付宝沙箱网关 | 开关 | 关 | 仅支付宝官方通道使用沙箱环境网关 |
| 微信 AppId | 文本 | — | 勾选微信时显示 |
| 微信商户号 | 文本 | — | |
| 微信 API 密钥 | 密码 | — | 商户平台设置的 API 密钥(V2) |
| 虎皮椒微信 AppId / AppSecret / 网关 | 文本/密码 | 网关有默认 | 勾选虎皮椒时显示;可与支付宝应用分开配置 |
| 虎皮椒支付宝 AppId / AppSecret / 网关 | 文本/密码 | 网关有默认 | 勾选虎皮椒时显示 |
| 虎皮椒通用 AppId / AppSecret / 网关 | 文本/密码 | 网关有默认 | 旧配置兼容;微信/支付宝分项未填时回退使用 |
| 易支付接口地址 | 文本 | — | 如 https://pay.example.com,不要末尾斜杠 |
| 易支付商户ID | 文本 | — | |
| 易支付商户密钥 | 密码 | — | V1 接口填 MD5 密钥 |
| 易支付可用方式 | 多选 | alipay,wxpay | 决定前台能否出现对应渠道(含 QQ 钱包) |
| USDT 网络 | 单选 | TRC20 | TRC20 / ERC20 / BEP20 |
| USDT 收款地址 | 文本 | — | 勾选 USDT 时显示 |
| USDT 汇率 | 数字 | 7.2 | 1 USDT 折合人民币,再按金币汇率入账 |
| USDT 小数位 | 数字 | 2 | 转账金额精度,需与提示文案一致以便识别 |
| USDT 支付提示 | 多行文本 | 有默认文案 | 展示在支付弹窗中的说明 |
| USDT 回调密钥 | 密码 | — | 可选。配置后可用 POST /payment/notify/usdt 回调入账;也可在充值记录手动补单 |
| 开启提现 | 开关 | 关 | 开启后用户可在金币页面申请提现 |
| 最低提现金币 | 数字 | 100 | 每次提现至少需要多少金币 |
| 单次最高提现 | 数字 | 0 | 0 表示不限制 |
| 提现金币汇率 | 数字 | 10 | 多少金币兑换 1 元人民币 |
| 每日提现限额 | 数字 | 0 | 0 表示不限制,每日累计提现金币上限 |
| 开启积分兑换 | 开关 | 关 | 开启后用户可在前台将积分与金币互相兑换 |
| 兑换比例 | 数字 | 10 | 多少积分兑换 1 金币(双向同比例) |
| 最低兑换积分 | 数字 | 10 | 积分换金币时,单次至少消耗多少积分 |
| 最低兑换金币 | 数字 | 1 | 金币换积分时,单次至少消耗多少金币 |
| 每日兑换限额 | 数字 | 0 | 0 表示不限制;按积分等值累计当日兑换消耗 |
五、后台重点配置
支付通道对接
- 支付宝官方:在开放平台创建应用,配置 RSA2 密钥,将异步通知地址设为
/payment/notify/alipay。 - 微信支付官方:配置 AppId、商户号、API 密钥,通知地址
/payment/notify/wechat。 - 虎皮椒:微信、支付宝可分别填写 AppId、AppSecret 与网关;分项留空则回退通用配置。通知地址
/payment/notify/xunhu。 - 易支付:填写接口地址、商户 ID、密钥,并勾选可用支付方式。通知地址
/payment/notify/epay。 - USDT:填写网络、收款地址与汇率。可选配置回调密钥后使用
/payment/notify/usdt;未配置时也可在充值记录手动补单。
充值套餐
在应用中心按「金额:金币」格式配置阶梯,例如 6:60 表示 6 元到账 60 金币。套餐金币可覆盖全局汇率。自定义金额按「金币汇率」折算。
积分/金币名称
填写后,社区侧栏、资产明细、悬赏打赏、积分商城、抽奖、签到、广告、任务中心、应用市场、发卡商城等前台文案统一使用该名称。插件菜单名(如「积分商城」)不随此修改。
提现审核
菜单「支付中心」内可查看提现记录,执行审核通过或拒绝(路由 community_withdraw)。通过后金币不再退回;拒绝后金币退回用户账户。
六、前台用户流程
- 金币充值:进入「我的资产」或侧栏「立即充值」→ 选择套餐或自定义金额 → 选择支付渠道 → 弹窗扫码或跳转支付 → 支付成功后金币到账。
- 沙箱联调:开启沙箱模式后,可使用模拟支付按钮完成充值测试。
- 积分兑换(需开启):进入
/payment/exchange→ 选择积分换金币或金币换积分 → 输入数量 → 确认兑换。 - 金币提现(需开启):进入
/payment/withdraw→ 填写提现金币数与收款信息 → 提交申请 → 等待管理员审核。 - 游客购买(需开启免登录购买):未登录用户打开金币标价内容 → 选择现金支付 → 成功后解锁,作者按金币价入账。
七、后台审核与运维
| 功能 | 路径 | 说明 |
|---|---|---|
| 充值记录 | /admin/payment_order | 查看所有支付订单 |
| 订单列表 API | GET /admin/payment_order/list | 分页查询 |
| 手动补单 | POST /admin/payment_order/fulfill | 对未履约订单手动完成业务并发放金币 |
| 删除订单 | POST /admin/payment_order/delete | 删除记录;已发放金币不受影响 |
| 提现列表 | /admin/community_withdraw | 查看提现申请 |
| 审核通过 | POST /admin/community_withdraw/approve | 通过后金币不再退回 |
| 审核拒绝 | POST /admin/community_withdraw/reject | 拒绝后金币退回用户 |
前台路由
| 方法 | 路径 | 说明 |
|---|---|---|
| GET/POST | /payment/notify/:channel | 异步回调 |
| GET/POST | /payment/return/:channel | 同步跳转 |
| GET | /payment/cashier | 收银台 |
| GET | /payment/status | 订单状态查询 |
| GET | /payment/guest/methods | 游客可用支付方式 |
| POST | /payment/guest/simulate | 游客模拟支付 |
| GET | /payment/recharge | 充值页 |
| GET | /payment/recharge/meta | 充值弹窗元数据 |
| POST | /payment/recharge/pay | 发起充值支付 |
| GET | /payment/recharge/result | 充值结果 |
| POST | /payment/recharge/simulate | 模拟支付 |
| GET | /payment/withdraw | 提现页 |
| POST | /payment/withdraw/submit | 提交提现 |
| GET | /payment/exchange | 积分兑换页 |
| POST | /payment/exchange/submit | 提交兑换 |
八、特殊说明
- 插槽:
member_asset_tabs— 在会员资产页注入「积分兑换」「金币提现」Tab(文案随配置名称变化)。 - 静态资源:
/static/payment/payment.css、recharge-modal.js、guest-pay.js;充值/兑换/提现页由社区布局承载。 - 数据表:
payment_order— 统一支付订单,含业务类型biz_type、履约状态fulfilled。提现记录使用社区提现表。 - 名称约定:配置中的积分名称、金币名称仅影响前台展示,不改变数据字段
coins/gold。 - 旧配置兼容:历史
channel字段自动迁移为enabled_providers;epay_type迁移为epay_types;虎皮椒通用项在分项未填时回退。
九、推荐上线清单
- 关闭沙箱模式,配置真实支付密钥
- 在支付平台配置正确的 notify/return 回调 URL(HTTPS、公网可访问)
- 设置合理的金币汇率与充值套餐
- 按需填写积分名称、金币名称
- 测试支付宝、微信各至少一笔真实小额支付;若启用 USDT,用小额核对汇率与到账
- 若开启提现,设置最低/最高限额与汇率,并明确审核人员
- 若开启积分兑换,确认社区积分体系正常
- 若开放游客购买,确认仅金币标价内容可走现金购
- 确认 PHP 与服务器可接收 POST 回调(无防火墙拦截)
十、常见问题
Q:支付成功但金币未到账? 检查订单 fulfilled 状态;可在后台手动补单。确认回调 URL 可被支付平台访问,且使用公网站点域名。
Q:前台没有支付方式? 确认已启用支付、已勾选通道且密钥完整。沙箱模式下走模拟支付,不展示真实通道。
Q:易支付弹窗支付失败? 部分易支付平台已升级 V2 RSA,需关闭弹窗支付改用跳转,或联系平台开通 V1 mapi。
Q:积分、金币名称没变? 以本插件「积分名称」「金币名称」为准,保存后刷新前台。留空则显示默认「积分」「金币」。插件菜单名不会跟着改。
Q:前台不显示兑换/提现 Tab? 需在应用中心分别开启「开启积分兑换」「开启提现」,且社区插件已安装。
Q:游客无法购买? 需开启「免登录购买」,且内容必须为金币标价。积分标价不支持游客现金购。
Q:沙箱模式与支付宝沙箱网关的区别? 全局「沙箱模式」使用模拟支付;「支付宝沙箱网关」仅让支付宝官方通道走沙箱环境,二者可独立配置。
Q:提现审核在哪里? 后台「支付中心」菜单内,非独立菜单项。
更新记录 (11)
-
v1.0.84
2026-10-25
1、修复充值未支付返回入账BUG漏洞
-
v1.0.83
2026-10-16
1、修复深色模式下配色不一致问题 2、修复.js错误加载充值弹出
-
v1.0.81
2026-10-14
1、新增CNY字段 2、新增提现货币类型 3、新增CNY字段充值金币
-
v1.0.8
2026-10-06
1、新增:插件配置项「积分名称」「金币名称」。 2、优化:充值、兑换、提现、会员中心充值弹窗及到账提示,统一读取上述配置名称。 3、说明:未配置时仍显示「积分」「金币」。 4、增强游客免登录支付逻辑
-
v1.0.7
2026-09-24
版本优化
-
v1.0.6
2026-09-23
1、优化后台表单,兼容新版后台UI框架 2、优化前端及后端加载逻辑
-
v1.0.5
2026-09-11
1、新增USDT充值方式 2、优化充值弹窗及UI样式
-
v1.0.4
2026-09-08
优化加载速度
-
v1.0.3
2026-09-07
1、修好虎皮椒支持微信/支付宝两套 AppId、Secret、网关;弹窗直接展示付款码图,不再二次生成「跳转二维码」; 2、新增自定义充值金额,可自填金额(1–50000 元),按汇率折算金币并下单支付。
-
v1.0.2
2026-09-06
1、游客免登录购买(仅金币标价):guest_checkout、GuestCheckout、履约入账 2、支持帖子 / 隐藏 / 网盘;方法选择 → 下单 → 扫码/沙箱 3、前台:guest-pay.js + 确认支付弹层(对齐充值页) 修:自动选第一渠道、脚本编码损坏、关弹窗清掉下单上下文、4、提现后台类名 Withdraw 4、充值/兑换/提现 + 扫码/游客支付样式拆到 payment.css
-
v1.0.1
2026-08-24
首次发布
QQ官方交流群