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

MPGS Direct Payment 3DS支付无法完成问题求助

关于MPGS Direct Payment 3DS支付功能执行支付失败的问题

问题背景

我正尝试实现MPGS Direct Payment 3DS支付功能,已遵循MPGS官方的三步集成指南。

操作流程

  • 创建Session(成功),请求地址:POST "https://cibpaynow.gateway.mastercard.com/api/rest/version/71/merchant/TEST123456/session/"
  • 更新Session并填入卡片信息(成功)
  • 发起认证(成功),请求地址:PUT "https://cibpaynow.gateway.mastercard.com/api/rest/version/71/merchant/TEST123456/order/1/transaction/2"
  • 验证付款人(成功)
  • 执行支付(失败)

支付请求及错误响应

最后一步执行支付时,我传入了order.id和authentication.transactionId,请求内容如下:

{
    "authentication" :
    {
        "transactionId": "2"
    },
    "session": {
        "id": "SESSION0002873236543L1392791G59"
   },
    "order":{
        "amount":"1",
        "currency":"EGP",
        "reference" : "1"
    },
    "apiOperation": "PAY",
    "transaction":{
        "reference":"1"
    }
}

收到的错误响应:

{
    "error": {
        "cause": "INVALID_REQUEST",
        "explanation": "A transaction with this transaction ID has already been processed but the request parameters do not match. To process a new transaction for this order, the transaction.id must be unique for the order."
    },
    "result": "ERROR"
}

这里的transactionId: "2"是我之前用于认证的ID,这个错误让我困惑。

补充猜测

我猜测问题可能是我发起的是PAYER_WEBSITE类型的认证,但通过API PUT请求执行支付。如果确实是这个问题,我该如何发起无需通过网站即可完成的认证?


问题分析及解决方案

直接问题:重复使用transaction ID

你在支付请求里未指定新的transaction.id,系统默认尝试复用已完成的认证交易ID("2")执行支付,但认证交易的参数和支付请求不匹配,因此触发报错。

正确处理方式:

  1. 支付请求需指定全新且唯一的transaction ID(例如"3"),放在transaction.id字段中
  2. authentication.transactionId保留之前认证成功的ID("2"),用于关联认证与支付交易

修改后的支付请求示例:

{
    "authentication" :
    {
        "transactionId": "2"
    },
    "session": {
        "id": "SESSION0002873236543L1392791G59"
   },
    "order":{
        "amount":"1",
        "currency":"EGP",
        "reference" : "1"
    },
    "apiOperation": "PAY",
    "transaction":{
        "id": "3", // 新增唯一的transaction ID
        "reference":"1"
    }
}

关于无跳转认证的实现

若你的场景不需要跳转付款人网站,应使用PAYER_AUTHENTICATION类型的纯API认证流程,发起认证请求时需添加以下配置:

"authentication": {
    "channel": "API",
    "type": "PAYER_AUTHENTICATION"
}

同时需确认你的商户账号已开通该认证类型权限,具体可联系MPGS商户支持核实。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 08:03:18