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

Adyen Web Drop-in支付成功后如何验证交易状态?

验证Adyen Web Drop-in支付状态的正确方式

你在使用Adyen Web Drop-in完成支付后拿到sessionData和sessionResult,想跳转页面验证支付状态的思路是对的,但不能直接用sessionResult作为参考号单独验证,必须通过调用Adyen的/payments/details接口来确认最终支付状态,你的文档理解是正确的。

核心逻辑说明

Adyen的Web Drop-in支付完成后,无论是否涉及跳转(比如3DS验证、银行跳转),都需要通过后端调用/payments/details接口,传入前端返回的会话数据(sessionData或sessionResult)来完成支付状态的最终校验,这是Adyen支付流程的必要步骤。

分场景的代码实现

根据支付完成后返回的参数类型,调整接口调用的参数:

  • 跳转类支付(返回sessionData):
    $adyenService = new AdyenCheckout($adyenClient);
    $result = $adyenService->paymentsDetails([
        'details' => ['redirectResult' => $sessionData]
    ]);
    
  • 非跳转类支付(返回sessionResult):
    $adyenService = new AdyenCheckout($adyenClient);
    $result = $adyenService->paymentsDetails([
        'details' => ['payload' => $sessionResult]
    ]);
    

如何判断支付状态

调用接口后,通过返回结果中的resultCode字段判断支付状态:

  • Authorised:支付成功完成;
  • Refused:支付被拒绝;
  • Pending:支付处于待确认状态,这类异步支付(比如银行转账)需要后续通过Adyen的webhook推送获取最终结果;
  • 其他状态可参考Adyen官方文档的状态定义。

重要注意事项

  • 必须通过后端调用接口验证,不能仅依赖前端返回的状态,避免前端数据被篡改导致校验失效;
  • 对于异步支付场景,即使/payments/details返回Pending,也要监听Adyen的webhook事件,确保获取最终的支付结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 09:57:22