我使用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);
答案 0 :(得分:4)
我遇到了同样的问题。基本上,错误246意味着the capture information has already been sent to the payment processor。根据{{3}}:
只有在我们尚未提交的情况下,交易才能被取消 处理器的信息。通常我们提交那种类型的 每天一次给您的处理器的信息,所以你的窗口 成功执行空白相对较小。我们会拒绝 如果我们已经发送了交易信息,您的空白请求 处理器。
如果您在Cybersource沙箱上测试无效(就像我一样),我认为正在发生的事情是,由于沙箱是一个测试环境而且付款实际上并未发送给付款处理器,因此Cybersource将捕获视为他们会立即发送到付款处理器,因此取消捕获将永远不会在沙箱环境中起作用。
但是,我做了一些假设,我找不到任何文件来确认这一点。
答案 1 :(得分:0)
如果是,您是否尝试提出退款请求,如果ccCreditService
正确,请尝试RequestID
完美工作。请尝试ccCreditService
取消付款订单。