MS_MAX_CONCURRENT_REQ - VIES 增值税验证

SyN*_*XaT 6 php soap

我想使用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
        ]);
Run Code Online (Sandbox Code Playgroud)

Dir*_*irk 13

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

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

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