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

如何不使用sessionId和sessionResult通过reference获取支付详情?

仅通过Reference获取Adyen托管会话/支付详情的方案

Adyen的Checkout Sessions API本身没有提供直接通过商户传入的Reference查询会话详情的端点,但可以通过Payments API的列表查询接口,基于Reference过滤找到关联的支付记录,进而获取对应的会话和支付详情,无需依赖sessionId、sessionResult或webhook。

具体实现(Go SDK)

复用创建会话时的客户端配置,调用List Payments接口并指定Reference过滤条件:

import (
  "context"
  "github.com/adyen/adyen-go-api-library/v9/src/common"
  "github.com/adyen/adyen-go-api-library/v9/src/adyen"
  "github.com/adyen/adyen-go-api-library/v9/src/checkout"
)

// 使用和创建会话一致的客户端配置
client := adyen.NewClient(&common.Config{
  ApiKey:      "ADYEN_API_KEY",
  Environment: common.TestEnv,
})

// 构造列表查询请求
listRequest := checkout.ListPaymentsRequest{
  MerchantAccount: "YOUR_MERCHANT_ACCOUNT",
  Filter: &checkout.PaymentFilter{
    Reference: "YOUR_PAYMENT_REFERENCE", // 传入创建会话时的reference
  },
  // 可选:添加时间范围过滤,减少返回结果数量
  // CreatedSince: "2023-05-17T00:00:00Z",
  // CreatedUntil: "2023-05-19T23:59:59Z",
  PageSize: 10,
}

// 执行API调用
service := client.Checkout()
res, httpRes, err := service.PaymentsApi.ListPayments(context.Background(), listRequest)
if err != nil {
  // 错误处理逻辑
  panic(err)
}

// 遍历结果获取目标支付/会话详情
for _, payment := range res.Payments {
  if payment.Reference == "YOUR_PAYMENT_REFERENCE" {
    // payment对象包含核心支付信息:状态、金额、关联会话ID等
    println("支付状态:", *payment.Status)
    println("关联会话ID:", *payment.CheckoutSessionId)
    
    // 可选:如需完整会话信息,可通过sessionId调用Get Session接口
    // sessionReq := service.PaymentsApi.SessionsInput().SessionId(*payment.CheckoutSessionId)
    // sessionRes, _, err := service.PaymentsApi.GetSession(context.Background(), sessionReq)
  }
}

补充说明

  1. 若同一Reference被多次使用,建议结合CreatedSince/CreatedUntil时间范围过滤,避免返回无关记录。
  2. 返回的payment对象已包含支付状态、金额等核心业务信息,若仅需确认支付结果,无需额外调用会话查询接口。
  3. 确保使用的API密钥拥有Payments Read权限,否则会返回权限错误。

内容的提问来源于stack exchange,提问作者ARIF MAHMUD RANA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 10:33:16