Discuz! X3.5积分对接实战:API调用时的5个隐藏大坑
上周给公司论坛做积分系统对接,原本以为调用几个API就完事了,结果在用户发帖积分同步这个基础功能上就踩了一堆坑。分享一下那些文档里没写的细节,给准备做类似对接的站长提个醒。
第一个坑是异步处理导致的延迟。测试时发现用户发帖后积分要等3-5秒才更新,查源码才发现Discuz的积分变更走的是任务队列。解决方法要么改同步处理,要么前端做延迟展示。
第二个坑是重复调用问题。我们起初在帖子保存成功的钩子里直接调积分接口,结果用户编辑帖子时会重复加积分。后来改成在帖子表新增状态字段,用定时任务扫描未处理的新帖才解决。
最坑的是第五个接口权限问题。本地测试正常的积分扣除接口,上线后部分用户报错。排查半天发现是Discuz的积分变动接口对用户组有隐藏限制,官方文档完全没提这事,最后只能改数据库直接操作积分字段。
现在想想,这种老牌系统的二次开发真是处处有"惊喜"。建议做类似对接的站长一定要在测试环境把所有用户组都跑一遍,别像我这样上线后才发现问题。
最新打赏

