如何在本地虚拟环境中配置Square PHP SDK
排查Square Payment在虚拟主机环境报错的解决方案
检查虚拟主机的配置文件加载逻辑
确认虚拟主机环境下加载的是正确的Square配置文件(包含Application ID和Location ID)。有可能你的代码是根据请求域名加载不同配置,比如仅对localhost加载正确ID,而square.dev.local触发了默认的错误配置。直接打印当前环境下的Application ID和Location ID,看是否和localhost环境一致。验证Square开发者后台的允许域名设置
登录Square开发者后台,检查应用的Allowed Origins设置,确保square.dev.local(包括端口,如果有)已经添加到列表中。Square的部分API会验证请求的来源域名,未添加的域名可能导致权限或配置验证失败。检查虚拟主机的文件路径与缓存
- 确认XAMPP虚拟主机的
DocumentRoot配置正确指向你的Square项目根目录,避免加载了其他目录下的旧配置文件。 - 清除浏览器缓存(尤其是LocalStorage和SessionStorage,因为Square可能会缓存配置信息),同时重启XAMPP的Apache服务,清除服务器端的缓存(比如PHP opcache)。
- 确认XAMPP虚拟主机的
核对环境切换的代码逻辑
如果你是通过代码切换SANDBOX/PRODUCTION/CUSTOM环境,检查判断逻辑是否覆盖了square.dev.local域名。比如代码中是否仅对localhost应用了正确的环境切换,而虚拟主机域名未被匹配,导致使用了错误的环境ID。测试虚拟主机的请求头
用浏览器开发者工具查看虚拟主机环境下的请求头,对比localhost环境的Host头和请求URL,确认没有异常。也可以直接用curl命令测试虚拟主机环境的API请求,看返回的错误细节是否更明确:curl -X POST https://connect.squareupsandbox.com/v2/payments -H "Host: square.dev.local" -H "Authorization: Bearer YOUR_SANDBOX_TOKEN" -d '{"amount_money":{"amount":100,"currency":"USD"},"source_id":"cnon:card-nonce-ok"}'
内容的提问来源于stack exchange,提问作者user21130569
相关产品推荐
相关产品推荐

