- Linked Product:
- Version Number: 5.0.2
- Release Type: 测试版
- Security Update: No
更新支付页面显示逻辑
适配在暗色页面的显示效果
跟随系统明暗色系的转换
A better way to browse. Learn more.
A full-screen app on your home screen with push notifications, badges and more.
更新支付页面显示逻辑
适配在暗色页面的显示效果
跟随系统明暗色系的转换
升级后自动清理旧文件:从 2.6.5 升级到 2.6.6 时,按 <span>hashes.json</span> 删除已淘汰的遗留 PHP 文件。
补全积分事件扩展:投票、个人动态、私信、举报、主题关注、奖杯等场景正式注册并适配 。
会员过期体验修复:资源页显示购买按钮;「已购买资源」列表状态显示正确。
资源付费 / 会员下载
修复「免积分下载会员」过期后,资源页仍显示「下载」、点击却无法下载的问题;过期后改为显示购买按钮。
「已购买资源」列表中,会员过期的临时授权不再误显示为绿色「有效」,改为显示已过期。
会员到期时,临时授权购买记录会自动删除(同步清理,无需等定时任务)。
修复 hn_resource_view_header_button 模板语法错误,避免安装/升级时报「预期 elseif,却找到 if」。
修复 XFRM 付费下载流程与官方不一致的问题(多文件选择、永久重定向、下载记录等)。
统一资源积分价格字段类型,与数据库及高精度计算一致,避免价格精度问题。
支付与购买
修复后台支付日志部分订单 handler 为空时打开报错。
修复后台转账功能与新版服务 API 不对齐的问题。
修复团购退款在撤销/拒付时积分未正确退回(改用标准 reversePurchase 流程)。
修复积分充值在支付撤销(chargeback)时未扣回已发积分的问题。
后台与迁移
修复后台模板语法错误导致部分页面渲染异常。
修复从 MJ Credits 迁移时部分 SQL 错误导致失败。
修复批量导入用户积分时列名错误、数据写不进去。
修复后台重置积分大批量任务不稳定的问题。
权限与安全
补全缺失权限:查看他人积分、查看隐藏积分、转账;新安装时 registered 用户组默认获得转账权限。
后台事件管理增加 POST 校验,降低误操作与 CSRF 风险。
卸载与清理
卸载时同步清理团购、奖励等相关数据库字段,避免残留。
移除无效/重复的类扩展注册及对应死代码文件,降低与 XF 2.3 冲突风险。
兼容性与架构(XF 2.3)
新增并启用 9 处类扩展(含 PollRepository、ThreadWatchRepository、TrophyRepository 等),替换旧版错误父类写法。
删除已从系统中淘汰的扩展文件;升级后由 postUpgrade() 自动清理服务器上的旧文件副本。
资源会员权限可按分类控制
管理员现在可以为不同资源分类设置不同的绕过购买权限,例如 XenForo 会员只免费下载 XenForo 分类资源,IPS 会员只免费下载 IPS 分类资源。
资源批量定价支持后台队列
当批量处理的资源较多时,系统会自动加入后台任务,不再因为一次性处理过多资源导致页面卡住或超时。
资源授权与撤销流程增强
后台手动授权/撤销资源访问权限时,可更完整地处理积分购买与法币购买记录,适合客服补发、人工授权、售后撤销等场景。
资源购买与续购流程更稳定
优化了积分购买、续购、过期后再购买等流程,减少重复判断,提高购买记录与库存记录的一致性。
绕过购买下载更准确
拥有会员绕过权限的用户首次下载付费资源时,系统会更准确地记录授权与作者收益,避免重复结算。
批量定价反馈更清晰
批量操作现在会明确提示未找到资源、没有可更新内容、任务已加入后台队列、分类免费模式不可批量设置付费价格等结果。
下载计次逻辑优化
资源下载计次统一到更稳定的记录流程,减少付费下载、绕过下载重复计次的情况。
限量库存逻辑统一
限量资源现在按“剩余可购数量”管理,购买时扣减,撤销、过期或删除购买记录时恢复。
代码结构与稳定性优化
对资源购买、批量定价、绕过下载、手动授权等核心流程进行了整理,减少历史遗留代码,提高维护性。
修复资源批量改价可能不生效、保存后无提示的问题。
修复大批量资源改价时可能页面超时或无法完成的问题。
修复资源过期购买记录未正确标记为已过期的问题。
修复交易回滚后资源购买权限没有正确撤销的问题。
修复后台部分缓存重建操作缺少安全校验的问题。
修复资源下载计次可能重复的问题。
修复限量库存计数在部分撤销、过期、删除场景下不一致的问题。
修复若干历史遗留的状态值、语法和无效代码问题。
分类会员下载权限
后台进入:资源管理器 → 分类 → 选择分类 → 权限
为指定用户组设置资源分类权限中的绕过购买权限。
资源批量定价
后台进入:积分 → 设置 → 资源批量定价
选择分类、应用规则和价格字段后执行批量更新。
绕过购买下载次数限制
VIP/指定用户组在选定资源分类下,免费下载付费资源有次数上限(按父分类独立计次)
滚动恢复:每占 1 个名额,按设置的小时数陆续恢复
同一资源重复下载不重复扣次
资源页标签栏右侧显示剩余次数
修复
法币付费资源下载限额不生效
分类多选配置不生效
其他错误
使用提示
后台开启「启用绕过购买下载限制」并勾选分类
用户组设置「下载次数上限」;所有所属组都勿选「无限制」
在 2.6.2「按分类绕过资源购买」 基础上,为拥有绕过权限的用户增加 免费下载付费资源 的次数管控,降低扫货倒卖、刷分套利风险:
只限制该限制的人:仅有「绕过资源购买」权限的用户会被计次;正常积分/现金购买下载 不受影响。
按资源父分类单独配额:例如 XenForo 一线 10 次、IPS 一线另 10 次;同一父分类下所有子分类 共享 次数,不会父类、子类各算一遍。
滚动恢复:每占用 1 个「不同付费资源」名额,经过设定小时数后 单独恢复(非每天 0 点清零)。
同一资源重复下载:在有效期内再次下载 同一资源,不重复扣次。
修复部分站点安装/升级插件时,因权限标识过长导致的 导入失败 问题。
同步 英文语言包(本功能相关后台选项、权限说明与前台提示)。
批量设置更可靠:在后台批量改资源积分价、折扣、付费方式时,预览后点「执行」会按你勾选的条件真正生效,不再出现「点了没反应」或只改了一部分的情况。
操作更直观:只有勾选「设置积分价格」「设置折扣」等选项时才会写入对应字段,避免误改未勾选的项。
筛选更准确:可按资源当前状态、付费方式等条件筛选后再批量处理,减少误操作范围。
权限更合理:作者批量设优惠时,会按资源所在分类的「提供资源优惠」权限判断,不再误用全站权限,分类权限配置会真正生效。
有价的资源也能设折扣:不再要求资源必须是「免费」类型;只要资源已设置价格,在允许的情况下即可配置折扣。
在「资源批量管理」里,请先勾选要执行的项(如设置积分价、设置折扣),再填写数值后预览并执行。
若使用作者批量优惠,请在对应资源分类里为用户组开启「提供资源优惠」权限。
付费资源「会员免费下载」现在可以按资源分类单独配置,不再只能全站生效。
适用场景示例:
站点有 XenForo、IPS、WordPress 等多个资源板块
XenForo 付费会员 → 仅 XenForo 板块付费资源可免费下载
下载 IPS 板块内容 → 需积分购买,或开通 IPS 板块会员
配置位置:
板块会员(推荐)
资源管理器 → 选择分类 → 权限 → 绕过资源购买(本分类)
全站 VIP(超级会员 / 管理员)
用户组 → HuoNiu 积分权限 → 绕过资源购买(全站)
会员到期更精准:会员到期后,只回收该会员对应分类的免费下载权益;若同时持有多个板块会员,其他板块权益不受影响
权限说明更清晰:后台两处 bypass 权限均补充了说明,便于区分「全站」与「本分类」的用法
原有配置继续有效:已勾选「绕过资源购买(全站)」的用户组,行为与升级前一致
如需按板块区分会员权益,请改用「本分类」权限,并取消对应用户组的全站 bypass
法币升级价格完全跟随 XenForo 原生「费用 / 货币」,积分支付作为独立扩展,不再覆盖或替代默认定价
同一升级可同时支持 PayPal、支付宝、微信、积分等多种支付方式
当支付网关不支持默认货币时(如默认 CNY + PayPal),按 USD ↔ CNY 汇率自动换算,并在前台显示实付金额预览
换算时可叠加各网关在「支付手续费设置」中配置的费率
前台升级页:仅在选择对应支付方式后显示价格信息(积分价 / 法币换算价),未选择时不显示
支付提示采用 XenForo 标准警告样式,自动适配明暗主题
修复积分购买升级后,收据与通知显示错误法币单位的问题(如「¥10」→「10 积分」)
后台勾选积分支付通道时,必须填写大于 0 的积分价格才能保存
游客访问升级页时,不再显示「余额不足」提示
同步更新英文语言包
优化升级页数据加载性能
修复升级购买奖励积分在支付回调重发时可能重复发放的问题
修复积分升级购买通知在回调重发时可能重复推送的问题
修复资源法币购买成功后,收据邮件因模板语法错误无法发送的问题
用户组升级页保持 XenForo 原生表单与购买流程
兼容优惠码、税费等第三方插件:折扣 / 税费先作用于原生价格,再进行货币换算与手续费计算
重新启用并扩展 积分支付网关
用户升级
现在可使用积分支付网关,
升级页面现在只锚定网关配置来进行设置
支持第三方扩展支付使用积分支付
积分支付网关可增加多种后台积分货币(只要添加了货币列表)
优化一些性能,修复小错误。
在资源授权与记录展示方面,新增了作者资源下载历史,作者现在可以更直观地查看自己的资源被哪些用户下载,以及下载来源情况,方便核对资源分发与收益逻辑。后台查看用户下载详情时,也新增了“授权类型”展示,用于区分普通购买、会员权益、临时授权等不同来源,让管理排查更加清晰。
在稳定性与兼容性方面,修复了部分 XenForo 环境下积分中心页面显示异常的问题,同时优化了购买记录中“临时授权”相关状态的处理逻辑,减少前后台状态不一致的情况,整体显示与业务判断更加准确。
在购买链路与扩展兼容方面,进一步增强了用户组升级购买流程,完善了多货币价格处理与优惠券折扣场景下的兼容表现,使升级购买、折扣计算、支付回调与后续奖励流程衔接得更稳定,降低重复处理、价格覆盖异常等问题的出现概率。
此外,本次版本还对部分底层处理逻辑进行了优化,包括高并发场景下的积分扣除、购买处理与数据索引表现,进一步提升大型站点或高频交易场景下的运行稳定性与响应效率。
本次更新重点
新增作者资源下载历史,提升资源授权与收益来源可见性。
后台新增授权类型展示,管理排查更直观。
修复部分环境下积分中心显示异常问题。
优化临时授权相关状态与购买记录逻辑。
强化用户组升级购买流程,对多货币与优惠券折扣场景兼容更好。
优化部分底层性能与并发处理表现,提升整体稳定性。
更新中英语言包
管理员可为每个升级套餐独立配置「购买奖励积分」数量和奖励货币
用户通过法币成功购买升级后,系统自动到账指定积分
使用积分购买升级不会触发此奖励,避免双重激励
配置入口对所有商家可见,无需提前开启「积分支付升级」选项
修复:通过 XenForo 原生支付方式(PayPal、Stripe 等)购买升级时,奖励积分不发放的问题。现在无论使用 HuoNiu 多通货定价还是原生支付,均能正常触发奖励
优化:升级套餐编辑页的「赠送积分」表单不再依赖「积分支付升级」开关,只要站点存在虚拟货币即可配置
进入「ACP → 用户 → 用户升级 → 编辑套餐」,确认「赠送积分」表单已显示
用测试账号通过法币付费购买升级,确认账户对应虚拟货币余额增加
用积分购买升级,确认不会获得额外奖励
在用户的交易记录中可看到一条「Bonus credits awarded for purchasing upgrade: 套餐名」入账
新功能
限时折扣角标:资源列表(列表视图 / 网格视图 / 两列视图)中,当资源设有有效限时折扣时,缩略图右上角自动显示红色对角丝带角标,醒目展示折扣幅度(如 -10%)。无折扣时不显示,不影响原有布局。
1. 平台补贴折扣差额
管理员为分类或用户组配置的折扣,现在由平台承担差额——买家按优惠价支付,资源作者仍按原价到账。折扣不再由贡献者"自掏腰包"。
2. 免费下载权限自动为作者结算
拥有"免费下载"权限的用户,每次首次下载付费资源时,系统将自动为资源作者结算等值收益(平台补贴,买家不扣积分),并创建购买记录防止重复结算。
3. 购买用户组升级赠送积分
管理员可以为每个升级套餐独立配置"购买奖励积分",用户通过法币成功购买升级后,系统自动赠送指定数量的积分。积分购买升级不触发此奖励。
修正了 bypass 用户绕过所有付款逻辑直接下载、作者无任何收益的问题
修正了分类折扣错误地降低作者实际收入的问题
目的: 彻底防止同一积分事件被重复执行/入账。
upgrade2050600Step1)xf_hn_transaction.transaction_hash 字段新增唯一索引 transaction_hash_unique
升级时自动修复历史数据:
空 hash 的旧记录 → 生成确定性 hash(sha256('legacy-empty:' + transaction_id))
hash 重复的旧记录 → 生成去重 hash(sha256('legacy-duplicate:' + transaction_id))
采用分批处理(每批 10000 条),兼容大数据量
Service/Event/Trigger.php)每次触发事件前先计算 幂等性键(idempotency key),并据此生成 transaction_hash
写入数据库时捕获 DuplicateKeyException —— 若 hash 已存在,返回错误而非重复入账
transaction['extra_data'] 中同步记录 idempotency_key,便于审计
重新更新:
修正:自动(全场景模式)下,只要后台存在对应事件配置,所有分类均可正常显示完整支付选项;事件中的「适用分类」限 制仅影响积分奖励的触发,不再影响支付选项的可见性。
修复:编辑已发布资源时,积分货币选择列表在某些分类下不显示。
优化:显示逻辑,打开资源发布/编辑页面时,「积分」「法币」「积分/法币」选项下的价格输入区域会短暂闪烁显示后再隐藏;「要求发布多少个资源」输入框同样存在此问题,现已全部修复,页面加载时直接呈现正确的隐藏状态。
优化:文件支付类型选项变更为横排模式,优化显示逻辑。
补充遗漏的阶梯价格及英文包
现已经同步阶梯价格的涨价及降价
前台价格信息部分将显示提示说明
使用说明将在发布文件页面显示
同步英文语言包
管理员在资源分类中设定的销售模式(积分 / 法币 / 积分+法币 / 免费)现在会直接作用于该分类下的发布页面:
默认选中:进入发布页时,支付类型自动预选为该分类所设定的模式,无需手动选择。
唯一选项:发布页仅显示分类指定的那一种支付类型,不再出现其它选项,避免用户绕过分类规则发布不符合要求的资源。
自动(全场景)模式不受影响:分类设为"自动"时,所有支付类型仍正常显示,由用户自行选择。
团购不受分类模式限制:只要分类后台勾选了"允许团购",无论分类销售模式是积分、法币还是免费,团购选项均会出现。
修复:免费分类下团购表单不展开:此前在"免费"分类下点击"团购项目",下方团购价格表单必须刷新页面才能显示;现已修复,点击后立即展开。
编辑已发布资源时,支付类型保持该资源原有的设定值不变,分类模式不会覆盖已保存的选项。重新覆盖安装此版本即可。
修复:分类销售模式设为「自动(全场景模式)」时,支付选项的显示错误地依赖了「事件」中的分类限制配置——若某分类未被加入对应事件的适用分类列表,该分类下的积分/法币支付选项将不显示。现已修正:自动模式下,只要后台存在对应事件配置,所有分类均可正常显示完整支付选项;事件中的「适用分类」限制仅影响积分奖励的触发,不再影响支付选项的可见性
修复:编辑已发布资源时,积分货币选择列表在某些分类下不显示
修复:打开资源发布/编辑页面时,「积分支付」「法币」「积分/法币」选项下的价格输入区域会短暂闪烁显示后再隐藏;「要求发布多少个资源」输入框同样存在此问题,现已全部修复,页面加载时直接呈现正确的隐藏状态
There are no reviews to display.