WooCommerce Square支付:已存卡片支付失败(NOT_FOUND错误)
WooCommerce Square支付:已保存卡片支付失败(NOT_FOUND错误)
问题描述
- 场景:WooCommerce结账页使用Square卡支付时,客户尝试通过已保存卡片完成支付
- 现象:页面持续处于处理状态,无法完成支付流程
- 错误信息:
{"errors":[{"category":"INVALID_REQUEST_ERROR","code":"NOT_FOUND","detail":"Resource not found.","field":"payment_source"}]} - 环境差异:仅生产环境出现该问题,staging环境运行正常
排查定位方向
- 支付源的环境隔离问题
Square生产与staging环境完全独立,staging环境生成的支付源(payment_source)仅能在对应环境使用。检查是否存在生产环境误用staging支付源ID的情况,比如数据库迁移时同步了staging的用户卡片数据到生产环境。 - 插件配置凭据混淆
确认生产环境WooCommerce Square插件是否配置了生产环境专属的API密钥/应用ID,而非staging环境的凭据。若插件使用staging密钥向生产环境发起请求,会因权限/资源隔离导致找不到支付源。同时检查插件是否已切换至生产模式。 - 用户支付源有效性失效
生产环境中用户保存的卡片可能已过期、被注销,或Square侧已移除该支付源记录,但WooCommerce本地数据库仍保留旧的支付源ID。可让受影响用户重新添加卡片,验证是否能正常支付。 - 数据同步/webhook异常
检查生产环境中WooCommerce与Square的webhook配置是否正常,确保卡片保存、更新、删除事件能双向同步。若webhook失效,会导致WooCommerce本地存储的支付源ID在Square侧已不存在。 - API版本兼容性问题
对比staging与生产环境的WooCommerce Square插件版本,确保生产环境使用的插件版本与Square当前API版本兼容。若插件依赖的API版本已被Square废弃,可能引发支付源查询错误。
内容的提问来源于stack exchange,提问作者dev
相关产品推荐
相关产品推荐

