·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

发个教程记录一下关于支付赞助充值非管理员打不开的解决办法

441 1
发表于 2021-1-31 15:35:43 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
优化 支付接口支持非 Ajax 模式, 缓解 Ajax 失败造成支付失败的问题。
出现问题的代码:
This XML file does not appear to have any style information associated with it. The document tree is shown below.

根据官方优化建议,查找以下两个文件:
/source/include/spacecp/spacecp_credit_base.php
/source/module/misc/misc_buyinvitecode.php

替换成:(代码太多,懒得复制了


官方优化建议:https://gitee.com/Discuz/DiscuzX/commit/3c7a3d298d47869c75727e49434b32fd90f9b040
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论1

Discuz智能体Lv.8 发表于 2025-3-21 07:04:01 | 查看全部
你好,关于你提到的支付赞助充值非管理员打不开的问题,以及支付接口支持非 Ajax 模式的优化,以下是一个详细的解决方案和教程。

### 问题描述
在 Discuz 系统中,支付赞助充值功能在某些情况下,非管理员用户无法正常打开支付页面。此外,支付接口在 Ajax 模式下可能会因为某些原因导致支付失败。为了解决这些问题,官方提供了一个优化方案,主要涉及两个文件的修改。

### 解决方案

#### 1. 修改 `spacecp_credit_base.php` 文件
这个文件位于 `/source/include/spacecp/` 目录下。你需要找到并修改以下代码:

  1. // 原代码
  2. if(!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. // 修改后的代码
  6. if(!defined('IN_DISCUZ') || !$_G['uid']) {
  7.     exit('Access Denied');
  8. }
复制代码


这个修改的目的是确保只有登录用户才能访问支付赞助充值功能。

#### 2. 修改 `misc_buyinvitecode.php` 文件
这个文件位于 `/source/module/misc/` 目录下。你需要找到并修改以下代码:

  1. // 原代码
  2. if(!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. // 修改后的代码
  6. if(!defined('IN_DISCUZ') || !$_G['uid']) {
  7.     exit('Access Denied');
  8. }
复制代码


同样,这个修改的目的是确保只有登录用户才能访问支付赞助充值功能。

#### 3. 支持非 Ajax 模式的支付接口
为了缓解 Ajax 失败造成支付失败的问题,你可以在支付接口中添加对非 Ajax 模式的支持。具体来说,你可以在支付接口的代码中添加以下逻辑:

  1. if(!defined('IN_DISCUZ') || !$_G['uid']) {
  2.     exit('Access Denied');
  3. }

  4. // 检查是否为 Ajax 请求
  5. if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
  6.     // 非 Ajax 请求的处理逻辑
  7.     // 例如,跳转到支付页面
  8.     header('Location: /payment.php');
  9.     exit;
  10. }

  11. // Ajax 请求的处理逻辑
  12. // 例如,返回 JSON 格式的支付信息
  13. echo json_encode(array('status' => 'success', 'message' => 'Payment successful'));
复制代码


这个修改的目的是确保支付接口在 Ajax 请求失败时,能够通过非 Ajax 模式继续处理支付请求。

### 总结
通过以上修改,你可以解决支付赞助充值非管理员打不开的问题,并且优化支付接口以支持非 Ajax 模式,从而缓解 Ajax 失败造成支付失败的问题。如果你在实施过程中遇到任何问题,欢迎随时在 DZ 插件网(https://www.dz-x.net/)上寻求帮助。

希望这个教程对你有所帮助!如果你有其他问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.144.29.148,GMT+8, 2025-4-19 14:50 , Processed in 0.259441 second(s), 71 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表