payment_center 2.5.2 — 支付宝/微信/易支付充值中心
官方接口
支付宝开放平台 RSA2:面对面支付
alipay.trade.precreate二维码,以及电脑/手机网站支付。微信支付 API v3:JSAPI、Native、H5。
微信 JSAPI 使用
snsapi_base获取 openid;Native 内置二维码;H5 跳转官方h5_url。支付宝 POST 通知验证 RSA2;微信 POST 通知验证平台证书签名并使用 API v3 Key 解密 AES-256-GCM 资源。
2.5.1 前台标签调整
“到账资产”改为“充值类型”。
“固定充值金额”改为“充值金额”。
2.5.0 固定充值与赠送
前台到账资产和支付方式之间新增 6 个固定充值金额选项,默认 1、5、10、30、50、100 元。
后台可分别设置 6 个固定金额及对应赠送数量;赠送数量按用户当前选择的 RMB、积分或金币资产发放。
固定金额和赠送数量在服务端重新校验并写入订单快照,支付完成后与基础兑换数量一起幂等入账。
保留自定义充值金额;自定义金额不享受固定选项赠送。
2.4.7 支付宝成功自动返回
支付宝面对面二维码页面每 4 秒安全查询一次当前订单状态,最长持续 30 分钟。
确认支付并完成幂等入账后,浏览器自动跳回支付中心
paycenter地址。支付宝网页/手机网站支付从官方返回地址回来后,也会立即跳回支付中心。
2.4.6 支付宝主动查单补偿
新增支付宝官方
alipay.trade.query主动查单,并验证支付宝查询响应的 RSA2 签名。用户从支付宝返回或重新进入支付中心时,会对最近一笔待支付支付宝订单执行查单;确认成功后按原订单快照幂等入账。
即使服务器异步通知被防火墙、CDN 或安全策略拦截,官方支付宝订单也可在用户返回后完成到账。
2.4.5 支付回调与到账修复
修复使用未定义的站点地址变量生成相对通知地址,导致支付平台无法回调、订单一直待支付的问题。
支付宝、微信官方接口和易支付统一生成带协议、域名及子目录的绝对回调地址。
易支付同步返回增加签名验证后的补偿入账;异步通知仍是主要到账通道,入账保持幂等。
2.4.4 设置页布局调整
微信支付 API v3 移至支付宝开放平台下方、易支付上方。
易支付 V2 平台公钥移至左侧,V2 商户私钥移至右侧,字段功能保持对应。
易支付接口地址的默认值改为空,由管理员自行填写。
2.4.3 易支付安全验证兼容
易支付 V1 改用浏览器跳转支付接口
submit.php,不再通过mapi.php发起下单。修复易支付微信提示“本次支付需要安全验证,请使用跳转支付接口发起支付”的问题。
请求参数仍使用商户密钥进行 MD5 签名,异步通知验签及幂等入账逻辑保持不变。
2.4.2 外部支付跳转修复
修复 XIUNOX 默认拦截外部域名跳转,导致点击充值后返回论坛首页的问题。
支付链接仍经过协议白名单校验,仅允许安全的 HTTPS、微信和支付宝支付协议。
2.4.1 易支付地址兼容修复
改用 URL 解析验证 HTTPS,不再使用过于严格的正则表达式。
支持大写
HTTPS://、端口、子目录,以及粘贴submit.php、mapi.php或 V2 下单地址;插件会自动规范化为接口根地址。
2.4.0 易支付 V1 / V2
新增易支付支付宝、易支付微信两个前台渠道。
V1:
mapi.php+ MD5 签名;V2:api/v2/pay/create+ SHA256WithRSA 签名与回调验签。支持
payurl、qrcode、urlscheme三种下单结果。回调校验 PID、支付状态、支付类型、订单金额和签名后,复用原有幂等入账逻辑。
易支付接口地址、版本、PID、V1 密钥、V2 商户私钥和平台公钥均在插件设置中配置。
2.3.2 后台版权信息
支付中心插件设置底部增加居中的渐变动画版权信息,并链接至金小颖论坛。
2.3.1 首页栏入口开关
插件基础设置新增“首页栏入口”开关;关闭后隐藏用户首页栏中的“支付中心”入口,但充值路由、支付回调和后台订单不受影响。
旧配置升级后默认保持显示。
2.3.0 多资产充值
支持充值到核心
user.rmbs、user.credits、user.golds。后台分别设置 RMB、积分、金币的“1 元兑换数量”,取值 1–100000。
下单时将到账资产和数量写入订单快照,之后修改比例不会影响已创建订单。
支付成功后通过核心
CreditsService入账并写入credits_log;积分充值会触发核心用户组重新计算。前台显示三种资产余额、充值目标、兑换比例与预计到账数量。
2.2.8 筛选与清理交互
删除“筛选”和“重置”按钮;订单状态、支付渠道选择后自动筛选,订单号输入后按回车筛选。
“清理选择状态”仅在已选择具体状态且该状态确实存在订单时启用。
2.2.7 修复
订单状态下拉框变化时立即同步“清理选择状态”的隐藏状态值,并实时启用或禁用按钮,无需先点击筛选。
2.2.6 订单清理增强
“清理待支付”改为“清理选择状态”,可清理当前筛选状态的订单;全部状态下按钮禁用。
清理订单记录不会修改用户 RMB 余额和核心积分日志。
2.2.4 工具栏重排
状态、渠道、订单号、筛选、重置组成紧凑左侧筛选组。
订单号输入框按约 28 个英文数字字符设置为 270px。
清理待支付和全部清理固定为右侧操作组。
2.2.3 布局调整
将订单号筛选框缩短为约 170px,为清理按钮预留同排空间。
2.2.2 修复
筛选提交时直接读取并白名单校验
$_POST,避免旧 URL 查询参数优先导致状态筛选被锁定。四个操作按钮统一
btn-sm高度,并置于同一条工具栏、底部对齐。
2.2.1 修复
筛选表单改为 POST 后重定向,兼容
url_rewrite_on=0,避免 GET 表单覆盖路由参数导致 404。筛选、重置按钮改为与清理按钮一致的描边按钮和 Tabler 图标。
2.2.0 管理增强
支付订单支持按状态、支付渠道和订单号筛选。
新增“清理待支付”和“全部清理”按钮;只清理插件订单记录,不修改用户余额及核心
credits_log。
2.1.0 修复
新增支付宝面对面支付模式,调用
alipay.trade.precreate获取官方qr_code并在站内生成二维码。后台支付宝“接口模式”默认选择“面对面支付(二维码)”。
修复面对面应用没有网站支付权限时,立即支付无法进入收银台的问题。
安装/升级
上传目录到
plugin/payment_center/。点击插件“升级”;2.3.0 会新增
credit_type、credit_amount并把旧订单按 RMB 1:1 补齐。清理
tmp/model.min.php,启用插件。填写支付宝 AppID/应用私钥/支付宝公钥;填写微信 AppID/AppSecret/商户号/证书序列号/商户私钥/API v3 Key/平台证书。
平台回调 URL 使用后台对应站点生成的:
paycenter-notify-alipay、paycenter-notify-wechat与paycenter-notify-epay。在插件设置中配置 RMB、积分、金币兑换比例。
分别用 1 元订单测试三种资产的下单、回调和入账。
安全
易支付 V1 使用 MD5 且仅接受 HTTPS 网关;V2 使用 SHA256WithRSA,并校验平台签名、时间戳和订单创建时快照的接口版本。
支付通知在全局 CSRF 之前进入专用路由,但必须通过密码学验签、商户/AppID、订单金额及状态校验。
重复回调使用订单状态条件更新保证幂等,最终入账统一调用核心
CreditsService。密钥表单使用
param(..., FALSE),留空不覆盖旧密钥。



测试地址:
https://www.52jiny.com/paycenter.htm
下载地址: