MS_MAX_CONCURRENT_REQ - VIES 增值税验证

问题描述 投票:0回答:2

我想使用 https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl 确认多个地址。

由于某种原因,我不断收到 MS_MAX_CONCURRENT_REQ 错误。我理解该错误的含义,但我不明白为什么它总是如此随机地发生。每次通话后我都会睡 15 秒。到目前为止,我可以过滤掉错误主要发生在德国增值税 ID 上。

如何在不增加睡眠时间的情况下最小化此错误?

这是我当前的 SOAPClient 设置。

        $client = new SoapClient('https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl', ['trace' => false,'keep_alive' => false]);
        $result = $client->checkVatApprox([
            'countryCode' => $countryCode,
            'vatNumber' => $vatNumber,
            'traderName' => $traderName,
            'traderStreet' => $traderStreet,
            'traderPostcode' => $traderPostcode,
            'traderCity' => $traderCity,
            'requesterCountryCode' => $requesterCountryCode,
            'requesterVatNumber' => $requesterVatNumber
        ]);
php soap
2个回答
14
投票

您可以在该服务的 WSDL 文档中找到:

  • MS_MAX_CONCURRENT_REQ:您的增值税验证请求尚未得到处理;已达到该成员国的最大并发请求数。请稍后重新提交您的请求或联系 [email protected] 了解更多信息”:由于您尝试联系的成员国的流量较高,因此无法处理您的请求。请稍后重试。

除了定期重试直至成功之外,您自己对此无能为力。确保使用友好的退避策略,例如在失败的情况下将每个请求之间的睡眠时间加倍(也称为“指数退避”)。


0
投票

我意识到这个问题已经相当老了,但我自己正在研究这个问题,并想添加它看起来是随机的原因。

不仅仅是您的请求达到了请求限制。

据我了解,VoW 有一个限制,您可以自己达到该限制,但 VIES 对成员国/北爱尔兰国家服务的请求也可以达到由成员国系统设置的限制。

根据此来源:https://viesapi.eu/vies-problems-with-verifying-companies-from-germany-de/

相关部分引用:

[..] VoW 处理的并发请求有限制。系统可以处理的并发请求的最大数量。如果系统收到新的请求,并且达到最大并发请求数,则拒绝该请求。 最大并发请求数与特定 IP 无关。这是所有用户的全局计数。此外,最大并发限制既解决了 VoW 整体问题,也解决了每个成员国的问题,并针对每种类型的验证请求,即手动 (INT)、SOAP (API)、REST (API) 以及 BATCH。 遗憾的是,根据一些国家主管部门的要求,我们无法透露 VoW 中阈值的确切水平。

© www.soinside.com 2019 - 2024. All rights reserved.