虚假的网络资源交易尝试给出了错误

时间:2012-10-18 07:32:44

标签: c# asp.net payment-gateway payment-processing

我使用cybersource SOAP工具包API来执行事务。事务捕获工作正常,但每当我尝试使事务无效时,我得到响应代码246:“您为一种无法无效的事务请求了一个空白”。为什么会这样?我已经包含了Void事务所需的所有参数

 RequestMessage request = new RequestMessage();
                request.voidService = new VoidService();
                request.voidService.run = "true";
                request.voidService.voidRequestID = "value";
                request.voidService.voidRequestToken = "value";
                request.merchantID = "value";
                request.merchantReferenceCode = "value";
                TransactionProcessorClient proc = new TransactionProcessorClient();
                proc.ChannelFactory.Credentials.UserName.UserName
            = "merchantID";
                proc.ChannelFactory.Credentials.UserName.Password
                    = "password";

                ReplyMessage reply = proc.runTransaction(request);

2 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。基本上,错误246意味着the capture information has already been sent to the payment processor。根据{{​​3}}:

  

只有在我们尚未提交的情况下,交易才能被取消   处理器的信息。通常我们提交那种类型的   每天一次给您的处理器的信息,所以你的窗口   成功执行空白相对较小。我们会拒绝   如果我们已经发送了交易信息,您的空白请求   处理器。

如果您在Cyber​​source沙箱上测试无效(就像我一样),我认为正在发生的事情是,由于沙箱是一个测试环境而且付款实际上并未发送给付款处理器,因此Cyber​​source将捕获视为他们会立即发送到付款处理器,因此取消捕获将永远不会在沙箱环境中起作用。

但是,我做了一些假设,我找不到任何文件来确认这一点。

答案 1 :(得分:0)

如果是,您是否尝试提出退款请求,如果ccCreditService正确,请尝试RequestID完美工作。请尝试ccCreditService取消付款订单。