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

调用Amazon Payfort的CAPTURE操作报‘Operation not allowed: CAPTURE’错误

关于Payfort CAPTURE操作报"Operation not allowed"(响应码00034)的排查指南

核心报错本质

这个响应不是签名错误、参数格式错误类的问题——这类问题平台通常会在签名校验、参数校验阶段就拦截,返回对应字段的错误提示。你收到的00034是平台操作权限校验直接拦截的结果,翻译过来就是:不管你参数写得对不对,基于当前的交易状态、账户配置,平台压根不让你发起这次CAPTURE操作。

常见触发原因

  • 原交易类型不匹配
    CAPTURE操作的唯一合法触发前提,是对应fort_id关联的原交易走的是预授权(AUTHORIZATION)流程。如果原交易本身是即时完成扣款的支付(PURCHASE),资金已经走完清算流程划转完成,平台不存在需要捕获的待结算冻结额度,这时候发起CAPTURE请求一定会被拦截。这是最高发的触发场景,很多开发者会把PURCHASE交易和AUTHORIZATION交易的流程搞混,以为所有支付成功的交易都能走CAPTURE,实际上只有走了预授权、资金只是在银行渠道冻结还没真正划给商户的交易,才需要发CAPTURE把钱真正扣收过来。
  • 原预授权交易状态失效
    就算原交易确实是AUTHORIZATION预授权类型,只要出现以下任意一种状态,再发CAPTURE都会被拦:
    • 预授权已经通过VOID操作撤销,冻结额度已经退回用户账户
    • 预授权已经完成过一次CAPTURE操作,交易处于完结状态
    • 预授权超过了平台规定的有效窗口期(沙箱环境默认预授权有效期通常为7天,超时后预授权会自动释放冻结额度,无法再发起捕获)
  • 商户账户未开放CAPTURE操作权限
    不少开发者在沙箱环境调试时会踩这个坑:平台给新注册的测试商户默认只会开放PURCHASE、AUTHORIZATION、VOID几个基础操作的权限,CAPTURE权限不会默认给全,需要商户主体单独在后台申请,由平台侧把对应操作加到账户白名单里才能使用。这种情况下不管你对应的预授权状态多么合规,只要没开权限,所有CAPTURE请求都会被拦截。
  • 捕获金额超出可操作范围
    CAPTURE的可操作金额不能超过原预授权交易实际冻结的可捕获额度(这个额度会受手续费、币种换算规则影响,和你当时记录的订单参考金额可能存在偏差),如果请求里传的捕获金额高于可捕获的最大额度,部分版本的平台逻辑会直接用操作不允许的提示拦截,而不是单独返回金额类错误。

按顺序排查解决步骤

  1. 拿请求里的fort_id去Payfort商户后台拉取对应原交易的全量记录,核对两个核心信息:原交易的发起类型是AUTHORIZATION还是PURCHASE;原交易当前状态是不是“已预授权待捕获”,有没有已撤销、已捕获、已过期的记录。如果原交易是PURCHASE类型,直接停止CAPTURE流程即可,这类交易不需要额外发起捕获操作。
  2. 核对当前请求使用的access_code、merchant_identifier所属的商户账户,是不是在CAPTURE操作的白名单里——尤其要注意沙箱和生产环境的参数不要混用,很多人会把生产环境开通了CAPTURE权限的参数直接拿到沙箱测试,结果沙箱的对应商户没开权限导致报错。
  3. 核对CAPTURE请求里的金额、币种,和原预授权记录里标注的“最大可捕获金额”、交易币种完全一致,不要多传金额,也不要因为币种格式错误(比如小写sar和大写SAR不匹配)触发校验拦截。
  4. 如果以上三步全部核对完还是报同样的错误,就整理好对应fort_id、完整请求和响应报文,找Payfort平台技术支持核查对应商户的平台侧配置规则。

内容的提问来源于stack exchange,提问作者Ahmed Hekal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 13:36:06