如何通过 VBA 和 Authorize.net 退款?

How to refund transaction via VBA with Authorize.net?

我在 Access 应用程序中使用 VBA 将信用卡应用程序传递给 Authorize.net。

在沙盒中,当我发出请求并获得响应时,响应如下所示:

1|1|1|This transaction has been approved.|MKCE58|Y|60138643909|06731|Company name|15.00|CC|auth_capture|||||||||||||||||||||||||||P|2|||||||||||XXXX1111|Visa|||||||1UMB1CSPUW5QIHHZIATBZCO||||||||||

此响应字符串的哪个元素是我在发出此交易的退款时必须捕获和使用的值?

当我尝试使用 "MKCE58" 或“60138643909”作为 TransactionID 对交易进行退款时:

post_string = post_string & "x_trans_id=" & URLEncode(strTransID) & "&"

我收到以下回复:

"The referenced transaction does not meet the criteria for issuing a credit."

我在 SO 上发现了一个非常旧的 post,表明我需要将我的帐户模式从实时更改为测试,我做到了。但这并没有解决这个问题。

您似乎在使用 AIM API,因此该竖线分隔字段中的第七个值 60138643909 是您将用于申请退款的交易 ID。

要退款,必须满足以下所有条件:

  • 交易最初是通过支付网关(Authorize.Net)处理并成功结算的。
  • 提交交易时使用的是原件的有效交易 ID (x_trans_id), 交易结算成功。
  • 申请退款金额小于等于原结算金额 金额。
  • 原交易提交的多笔Credit交易总和小于或等于原结算金额
  • 至少提交用于原始成功结算交易的信用卡号 (x_card_num) 的最后四位数字。不需要到期日期。
  • 交易在原交易结算日起120天内提交。