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

Opayo Pi API:更换重复支付认证卡后仍使用旧卡的问题排查

Opayo Pi API 更换银行卡后重复支付仍用旧卡的问题解决

问题根源

你碰到的情况是因为Opayo Pi API的Repeat交易默认会绑定到用户首次创建CoF(卡留存)时的原始交易凭证,直接传入新卡的transactionId没法自动替换用户名下的默认CoF记录——虽然官方文档没明确说明替换流程,但实际操作里需要主动标记新卡的认证交易为用户的新默认CoF凭证。

解决步骤

  1. 新卡认证时明确初始化CoF
    在新卡的3DS认证交易中,必须在credentialType里指定cofUsage为Initial,同时补充paymentType字段(根据业务场景选Recurring或Unscheduled),确保Opayo把这笔新交易设为用户的新CoF记录:

    // 新卡3DS认证请求示例(建议用1便士预授权验证)
    $new_card_auth_data = array(
        "transactionType" => "Payment",
        "vendorTxCode" => $new_auth_order_num,
        "currency" => "GBP",
        "amount" => 100, // 1便士,验证后可取消预授权
        "description" => "New card verification for recurring payments",
        "credentialType" => array(
            "cofUsage" => "Initial",
            "initiatedType" => "CIT",
            "paymentType" => "Recurring"
        ),
        // 卡片信息、3DS相关参数...
    );
    
  2. 确认Repeat请求参数准确性

    • 确保referenceTransactionId确实是新卡认证返回的transactionId,排查代码逻辑是否存在旧值覆盖的情况
    • 检查请求中是否携带了旧的merchantSessionKey或其他关联旧卡的冗余参数,这类参数可能导致Opayo fallback到旧凭证
  3. 后台验证CoF状态
    登录Opayo商户后台,查看用户的CoF记录:

    • 确认新卡的交易已被标记为活跃状态
    • 若旧卡记录仍存在,可手动将其失效(部分商户反馈此操作能彻底解决旧卡复用问题)

额外排查点

  • 查看测试环境的交易日志,确认Repeat请求里的referenceTransactionId参数值正确无误
  • 确保新卡的3DS认证交易状态为OK,只有成功的初始交易才能生成有效CoF凭证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 03:12:50