payment_center 2.5.2 — 支付宝/微信/易支付充值中心【插件】

管理员组

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.phpmapi.php 或 V2 下单地址;插件会自动规范化为接口根地址。

2.4.0 易支付 V1 / V2

  • 新增易支付支付宝、易支付微信两个前台渠道。

  • V1:mapi.php + MD5 签名;V2:api/v2/pay/create + SHA256WithRSA 签名与回调验签。

  • 支持 payurlqrcodeurlscheme 三种下单结果。

  • 回调校验 PID、支付状态、支付类型、订单金额和签名后,复用原有幂等入账逻辑。

  • 易支付接口地址、版本、PID、V1 密钥、V2 商户私钥和平台公钥均在插件设置中配置。

2.3.2 后台版权信息

  • 支付中心插件设置底部增加居中的渐变动画版权信息,并链接至金小颖论坛。

2.3.1 首页栏入口开关

  • 插件基础设置新增“首页栏入口”开关;关闭后隐藏用户首页栏中的“支付中心”入口,但充值路由、支付回调和后台订单不受影响。

  • 旧配置升级后默认保持显示。

2.3.0 多资产充值

  • 支持充值到核心 user.rmbsuser.creditsuser.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 并在站内生成二维码。

  • 后台支付宝“接口模式”默认选择“面对面支付(二维码)”。

  • 修复面对面应用没有网站支付权限时,立即支付无法进入收银台的问题。

安装/升级

  1. 上传目录到 plugin/payment_center/

  2. 点击插件“升级”;2.3.0 会新增 credit_typecredit_amount 并把旧订单按 RMB 1:1 补齐。

  3. 清理 tmp/model.min.php,启用插件。

  4. 填写支付宝 AppID/应用私钥/支付宝公钥;填写微信 AppID/AppSecret/商户号/证书序列号/商户私钥/API v3 Key/平台证书。

  5. 平台回调 URL 使用后台对应站点生成的:paycenter-notify-alipaypaycenter-notify-wechatpaycenter-notify-epay

  6. 在插件设置中配置 RMB、积分、金币兑换比例。

  7. 分别用 1 元订单测试三种资产的下单、回调和入账。

安全

  • 易支付 V1 使用 MD5 且仅接受 HTTPS 网关;V2 使用 SHA256WithRSA,并校验平台签名、时间戳和订单创建时快照的接口版本。

  • 支付通知在全局 CSRF 之前进入专用路由,但必须通过密码学验签、商户/AppID、订单金额及状态校验。

  • 重复回调使用订单状态条件更新保证幂等,最终入账统一调用核心 CreditsService

  • 密钥表单使用 param(..., FALSE),留空不覆盖旧密钥。

QQ截图20260723175536.png
QQ20260723-175624.png
QQ20260723-175613.png

测试地址:

https://www.52jiny.com/paycenter.htm

下载地址:

https://pan.quark.cn/s/833882996ff9

最新回复

请先登录后再回复 登录

uid:1 管理员组
关注
发帖 9
评论 0
粉丝 0
关注 0
发新帖
目录
payment_center 2.5.2 — 支付宝/微信/易支付充值中心【插件】