我正在使用 Opayo Pi API。对于重复付款,最初使用 3DS 验证卡,然后使用生成的
transactionId
作为重复付款的 referenceTransactionId
,效果很好。
现在我需要客户能够更改卡详细信息,因此我让他们重新验证新卡,获取结果
transactionId
并在任何重复中再次使用它作为 referenceTransactionId
。
但是 Opayo 使用的是 old 卡,就好像我在使用旧卡的交易中使用了旧的
transactionId
一样。尽管使用了该卡交易中的 transactionId
,但它不会使用 latest卡。
我已经使用测试 API 端点进行了测试。我已经研究了文档。在他们的文档中,我看不出需要额外的步骤,例如。首先取消前一张卡的验证。其他地方提到了
REMOVETOKEN
交易,但这似乎与 Pi API 无关。 Pi API 中没有提及专门替换 CoF,只是启动它们。
作为参考,重复付款使用这些属性(根据 API 文档) - 这是 PHP。其中
$reference_transaction_code
是之前 3DS 验证卡付款的 transactionId
。这对于重复使用效果很好,否则只需保留一张旧卡即可。
$data = array(
"transactionType" => "Repeat",
"referenceTransactionId" => $reference_transaction_code,
"vendorTxCode" => $order_number,
"currency" => "GBP",
"amount" => ($amount * 100), // Must be in pence for Sagepay
"description" => "Repeat order ".$order_number,
"credentialType" => array(
"cofUsage" => "Subsequent",
"initiatedType" => "MIT",
"mitType" => "Unscheduled"
)
);
这里有人有指导吗?我是否遗漏了更换 CoF 的步骤?是不是只要使用最新认证卡的
transactionId
那么简单?请询问任何进一步的细节或清晰度。
您需要使用新卡进行新的家长付款,以便将来重复使用,并停止重复使用过期的旧卡。