网络资源的无效交易尝试给出错误
Posted
技术标签:
【中文标题】网络资源的无效交易尝试给出错误【英文标题】:Void transaction attempt for cybersource gives error 【发布时间】:2012-10-08 14:25:22 【问题描述】:我正在使用网络资源 SOAP 工具包 API 来执行交易。事务捕获工作正常,但是每当我尝试使交易无效时,我都会收到响应代码 246:“您要求对一种无法取消的交易类型作废”。为什么会这样?我已经包含了无效交易所需的所有参数
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);
【问题讨论】:
【参考方案1】:我遇到了同样的问题。基本上,错误 246 意味着the capture information has already been sent to the payment processor。根据Cybersource server release notes:
只有在我们还没有提交交易的情况下才能取消交易 信息给您的处理器。通常我们提交那种类型的 每天一次向您的处理器提供信息,因此您的窗口 成功执行无效的相对较小。我们会拒绝 如果我们已经发送了交易信息,您的无效请求 到处理器。
如果您在 Cybersource 沙箱上测试 void(就像我一样),我认为发生的情况是,由于沙箱是一个测试环境并且付款实际上并未发送到支付处理器,Cybersource 将捕获视为他们立即发送到支付处理器,因此在沙盒环境中无效捕获将永远无法工作。
但是,我做了一些假设,但我找不到任何文档来证实这一点。
【讨论】:
得到 CyberSource 支持团队的确认:“CyberSource 测试环境的配置方式不允许出现空洞。原因是“空洞”只是阻止交易被批处理出。但是,在测试环境中,没有批量交易。因此,您无法在测试环境中取消任何订单。" 感谢您更新此内容。在我看来,如果他们默认为 ACCEPT 而不是 REJECT(对于格式正确的请求)会更好。浪费时间..【参考方案2】:如果是,您是否尝试提出退款请求,如果RequestID
正确,请尝试ccCreditService
Work Perfect。尝试ccCreditService
取消付款订单。
【讨论】:
以上是关于网络资源的无效交易尝试给出错误的主要内容,如果未能解决你的问题,请参考以下文章
当我尝试播放不在 qrc 中的媒体文件时,出现错误“尝试播放无效的 Qt 资源”
尝试从 API 中列出数据会给出错误消息“不变违规:元素类型无效:........”