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

Omnipay PayPal Rest API:支付完成的最终状态是什么?

PayPal Rest API中"approved"与"completed"状态的区别及交易成功判定

核心结论

返回approved状态仅代表用户已完成支付授权,不代表交易最终成功(资金已到账),交易最终成功的标识是completed状态。

状态含义区分

  • approved:用户已确认并授权支付请求,同意从其账户扣款,但此时PayPal尚未完成实际的资金划转。这种状态常见于**授权-捕获(Authorize & Capture)**模式,商户需要后续主动触发资金捕获操作才能完成交易。
  • completed:交易已完全完成,资金已成功从买家账户转入卖家账户,这是交易成功的最终状态。

结合Omnipay的处理建议

你使用的completePurchase方法在不同集成模式下行为不同:

  1. 若采用即时支付模式(直接扣款),正常情况下completePurchase成功后应返回completed状态。若仅返回approved,建议检查PayPal商户设置或请求参数是否配置为即时捕获模式。
  2. 若采用授权-捕获模式,completePurchase仅完成授权步骤得到approved,此时需调用Omnipay的capture方法完成资金捕获:
    // 基于之前completePurchase的授权响应发起捕获请求
    $captureResponse = $gateway->capture([
        'transactionReference' => $response->getTransactionReference(),
        'amount' => $params['amount']
    ])->send();
    
    if ($captureResponse->isSuccessful()) {
        // 此时交易状态变为completed,资金已到账
    }
    
  3. 可通过$response->isSuccessful()判断当前步骤(授权或即时支付)是否执行成功,但这不等同于交易最终完成,需结合具体状态值进一步判定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:06:32