You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress集成Stripe Webhook端点:400响应设置失效问题求助

问题分析与解决方案

核心问题:执行\Stripe\StripeClient(STRIPE_TEST_KEY);时触发了致命错误,导致PHP脚本直接终止,后续设置400响应码、输出内容的代码根本没有机会执行,所以Stripe收到的是服务器默认的200响应(或错误页面的状态码)。

以下是具体排查和解决方向:

1. 验证STRIPE_TEST_KEY常量有效性

  • 确认STRIPE_TEST_KEY是否在执行StripeClient实例化前已正确定义,检查是否拼写错误(比如漏了sk_test_前缀、大小写错误)。如果常量未定义,PHP会抛出致命错误直接终止脚本。
  • 临时添加调试代码验证:
    var_dump(defined('STRIPE_TEST_KEY'), STRIPE_TEST_KEY);
    exit;
    \Stripe\StripeClient(STRIPE_TEST_KEY);
    

2. 检查Stripe SDK加载路径与完整性

  • 确认require_once('wp-content/plugins/myplugin/stripe/init.php');的路径是否正确,相对路径在WordPress不同运行环境下可能失效。建议改用WordPress内置常量构建绝对路径:
    require_once(WP_PLUGIN_DIR . '/myplugin/stripe/init.php');
    
  • 检查Stripe SDK文件是否完整,有没有缺失核心类文件,导致StripeClient类不存在触发致命错误。

3. 调整WordPress与Stripe库的加载顺序

你当前先加载Stripe SDK再加载wp-load.php,可能引发环境冲突:WordPress初始化时的全局函数、常量会干扰Stripe库,或者Stripe依赖的PHP扩展未被WordPress环境正确初始化。
修改加载顺序,先初始化WordPress环境:

require_once( dirname( __FILE__ ) . '/wp-load.php' );
require_once(WP_PLUGIN_DIR . '/myplugin/stripe/init.php');

4. 开启错误日志定位具体问题

生产环境通常关闭错误显示,致命错误不会直接输出到页面。可以临时开启错误显示排查:

error_reporting(E_ALL);
ini_set('display_errors', 1);

或者查看服务器的PHP错误日志,里面会记录StripeClient实例化时触发的具体错误(比如缺少curl/openssl扩展、文件权限不足等)。

内容的提问来源于stack exchange,提问作者Benzait Sofiane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:20:57