WooCommerce PayPal支付报错wc-ajax=ppc-create-order 404及Unexpected token求解
你遇到的两个报错为因果关系:?wc-ajax=ppc-create-order接口返回404时,服务器输出的是HTML格式的404页面,首字符为<,因此前端解析JSON响应时抛出语法错误,核心问题是该PayPal支付创建订单的Ajax接口无法正常访问,可按以下方向排查:
- 重写规则刷新校验
进入WordPress后台→设置→固定链接,无需修改配置直接点击「保存更改」,强制刷新站点重写规则后重试支付。使用Apache服务器的话确认站点根目录的.htaccess为WordPress默认规则,且文件权限允许站点写入,排查是否存在自定义规则拦截了带wc-ajax参数的请求。 - PayPal Payments插件配置校验
进入WooCommerce→设置→支付→PayPal Payments,先断开现有沙箱连接,重新完整走一遍沙箱账号接入流程,确认沙箱客户端ID、密钥无多余空格或字符,再进入插件高级设置,开启「兼容模式」后重试。另外你当前使用的1.6.1版本插件存在已知的沙箱环境路由兼容缺陷,可直接降级到1.6.0版本测试,该版本的沙箱接口路由稳定性更高。 - 全插件冲突排查
你此前仅切换了主题未排查插件冲突,可临时禁用除WooCommerce、WooCommerce PayPal Payments之外的所有插件,重试支付:- 若恢复正常,逐个启用剩余插件定位冲突项,从你提供的插件列表来看,优先级排查Themify WooCommerce Product Filter、Elementor Pro两款插件,若冲突来自Elementor,可先用默认未被Elementor编辑的WooCommerce结账页测试。
- 若仍然报错,继续下一步排查。
- 站点配置一致性校验
确认PayPal插件内填写的站点地址,和WordPress后台设置的「WordPress地址(URL)」「站点地址(URL)」完全一致,检查域名拼写、HTTP/HTTPS协议头是否匹配,避免接口请求域名和站点实际域名不符导致的404。 - 错误日志定位
临时开启WordPress调试模式:在wp-config.php中修改WP_DEBUG为true、WP_DEBUG_LOG为true,复现一次支付错误后,查看wp-content/debug.log、WooCommerce→状态→日志内的paypal-payments相关日志,可定位到具体的PHP层面报错原因。
内容的提问来源于stack exchange,提问作者user31929
相关产品推荐
相关产品推荐

