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

Magento 1.9.3 CE Chrome浏览器Guest checkout时PayPal Express运费报错

解决Magento 1.9.3 CE + PayPal Pro(Express)Chrome访客结账运费场景报错问题

我之前帮几个客户排查过完全相同的问题——Magento 1.9.3 CE集成了带Express结账的PayPal Pro,唯独在Chrome浏览器的访客结账场景下,只要商品需要收取运费,用户登录PayPal后就会看到那句“We’re Sorry. Things don’t appear to be working at the moment.”的报错,免运费时却一切正常。下面是我亲测有效的排查和解决方向:

1. 先排查Chrome浏览器的本地缓存与权限限制

Chrome对第三方Cookie和缓存的管控比其他浏览器严格很多,这是最常见的触发点:

  • 让测试用户打开Chrome设置,找到隐私和安全→网站设置→查看所有网站数据和权限,删除你的店铺域名以及paypal.com的相关数据;
  • 关闭Chrome的「阻止第三方Cookie」选项,或者把你的店铺域名和PayPal域名加入例外列表;
  • 用Chrome无痕模式测试,如果无痕模式下正常,那基本可以确定是本地缓存/Cookie的问题,引导用户清理或调整浏览器设置即可。

2. 检查Magento传递给PayPal的运费参数格式

Magento 1.9.3的PayPal Express模块在访客结账+运费的场景下,偶尔会出现参数格式化错误,导致PayPal接口拒绝请求:

  • 开启Magento的PayPal日志:进入系统→配置→付款方式→PayPal Express Checkout→高级设置,开启「启用日志」;
  • 重现报错场景后,查看var/log/paypal_express.log里的请求参数,重点核对AMT(订单总金额)、SHIPPINGAMT(运费金额)这两个字段,确保格式符合PayPal要求:必须是两位小数,用点作为分隔符,不能有逗号或货币符号;
  • 如果发现参数异常,不要直接修改核心文件,建议创建自定义模块重写app/code/core/Mage/Paypal/Model/Api/Nvp.php中的_exportShippingInfo方法,确保运费金额被正确格式化。

3. 验证PayPal商家账户的运费与货币设置

PayPal账户端的设置和Magento冲突也会引发这类报错:

  • 登录PayPal商家后台,检查是否开启了「自动计算运费」,或者设置了和Magento重复的运费规则,建议暂时关闭PayPal端的自动运费计算,完全由Magento控制运费;
  • 确保PayPal账户的默认货币和Magento的默认货币完全一致(比如都是USD或CNY);
  • 检查PayPal账户是否存在未解决的限制或审核问题,这类情况会直接导致接口请求被拦截。

4. 修复Magento 1.9.3的已知兼容性Bug

Magento 1.9.3本身存在几个和PayPal Express访客结账相关的Bug,建议:

  • 应用官方的SUPEE-10752补丁,这个补丁修复了多个PayPal相关的安全和功能问题,其中就包括访客结账时的参数传递异常;
  • 如果不想打全量补丁,可以单独修改app/code/core/Mage/Paypal/Controller/Express/Abstract.php中的startAction方法,确保在访客结账时正确传递运费相关的会话参数。

内容的提问来源于stack exchange,提问作者PP west

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:36:54