以前,在使用 PowerShell 调用 SOAP Web 服务时,生活很容易。运行,然后所有操作都可以在对象$myProxy = New-WebServiceProxy -Uri 'https://example.com/some/web/service.aspx?wsdl'
上神奇地可用。$myProxy
但是,我最近同意帮助实现一个快速脚本,它允许我们将数据发送到此处详述的 SII Web 服务:https ://www.agenciatributaria.es/AEAT.internet/en_gb/Inicio/Ayuda/Modelos__Procedimientos_y_Servicios/Ayuda_P_G417____IVA__Llevanza_de_libros_registro__SII_ /Ayuda_tecnica/Informacion_tecnica_SII/WSDL_de_los_servicios_web/WSDL_de_los_servicios_web.shtml
我要连接的非生产网络服务应该是:https ://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP (即从上一个链接收到发票)。但是,尝试连接到该 URL 会失败。
我找到了一种解决方法,可以使用 URI 创建代理:https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas。 wsdl _ 但是,生成的代理并没有给我我期望看到的动作。查看底层 WSDL 似乎指定了多个端口;一些用于生产,另一些用于测试。我想确保我只连接到测试服务。
问题
如何确保我只连接到测试服务?
...我如何确保我只连接到端口SuministroFactEmitidasPruebas
?
我目前的代码
$uri = 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas.wsdl'
$certificate = Get-Item -Path 'Cert:\CurrentUser\My\ABCDEF1234567890' #i.e. this points to the certificate in my certificate store using the thumbprint of the SII certificate
$proxy = New-WebServiceProxy -Uri $uri
$proxy.ClientCertificates.Add($certificate)
$proxy.AllowAutoRedirect = $true
这有效并显示了可用的操作,但没有说明我如何仅选择 TEST ( SuministroFactEmitidasPruebas
) 端口。