[英]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,我成功地取消了信用卡交易。 但是,我還沒有成功實現退款功能。
我已經嘗試了他們客戶支持團隊的不同成員建議的很多東西,並且在首先確定是否有人成功使用過這個庫之前猶豫是否要花更多時間。
我首先使用 function“startEMVTransaction”向卡收費。 當我無法退還費用時,建議我使用以下命令對卡進行收費:
但是,每當我嘗試退還交易(無論交易的收費方式如何)時,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上可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.