Authorize.Net In-Person SDK:无法为信用卡交易退款;改为收取新交易费用

Authorize.Net In-Person SDK: Unable to refund a credit card transaction; charges a new transaction instead

Windows C# 文档中的 Authorize.Net In-Person SDK 参差不齐,他们的客户支持团队提供了相互矛盾的信息。

我通过完全绕过 SDK 成功地取消了信用卡交易。 但是,我没有成功实现退款功能。

我已经尝试了很多由他们的客户支持团队的不同成员建议的事情,并且在首先确定是否有人成功使用过这个库之前犹豫是否要花更多的时间。

我先用函数“startEMVTransaction”给卡充值。当我无法退还费用时,建议我使用以下命令对卡进行充值:

  1. processCardInBackground
  2. 开始快速筹码交易

但是,每当我尝试对交易进行退款时(无论交易的收费方式如何),SDK 的响应都是交易成功。但是,该卡没有退款,而是重新收费。如果您好奇,下面是代码片段。

我生成的 createTransactionRequest 实例如下:

   transactionRequestType transaction = new transactionRequestType()
    {
      transactionType = transactionTypeEnum.refundTransaction.ToString(),
      amount = <amount to refund expressed as Decimal>,
      refTransId = "<ID of transaction to refund>",

      retail = new transRetailInfoType()
      {
        deviceType = "5",     // "5" PC-based terminal
        marketType = "2",     // retail transactions submitted with track data
      },
    };
    transaction.terminalNumber = this.terminalID;
    createTransactionRequest request = new createTransactionRequest()
    {
      transactionRequest = transaction
    };
    request.merchantAuthentication = new merchantAuthenticationType()
    {
      Item = this.sessionToken,
      mobileDeviceId = this.deviceID,
      ItemElementName = ItemChoiceType.sessionToken
    };

然后我调用了方法 startQuickChipTransaction 如下:

this.launcher.startQuickChipTransaction(request, SDKTransactionType.REFUND, this)

AuthorizeNet客服昨天回复了。他们现在已经实现了该功能,示例代码可在 https://github.com/AuthorizeNet/sample-code-csharp/blob/master/PaymentTransactions/RefundTransaction.cs.

上获得