У меня проблемы с доступом к службе SOAP.
Я использую библиотеку Zend и выполнил следующую функцию:
public function boletoApiBB() {
//$token = $this->boletoApiBBOauth();
$client = new ZendSoapClient("https://cobranca.homologa.bb.com.br:7101/Processos/Ws/RegistroCobrancaService.serviceagent?wsdl");
echo "
testing
";
echo("");
print_r($client->getOptions());
echo "
client
";
print_r($client);
echo "
functions
";
print_r($client->getFunctions());
echo("
");}
Запрос возвращает мне следующий результат
testing
Array
(
[encoding] => UTF-8
[soap_version] => 2
[wsdl] => https://cobranca.homologa.bb.com.br:7101/Processos/Ws/RegistroCobrancaService.serviceagent?wsdl
)
client!
Zend\Soap\Client Object
(
[classmap:protected] =>
[encoding:protected] => UTF-8
[faultExceptions:protected] => Array
(
)
[lastMethod:protected] =>
[permanentSoapInputHeaders:protected] => Array
(
)
[soapClient:protected] =>
[soapInputHeaders:protected] => Array
(
)
[soapOutputHeaders:protected] => Array
(
)
[soapVersion:protected] => 2
[typemap:protected] =>
[wsdl:protected] => https://cobranca.homologa.bb.com.br:7101/Processos/Ws/RegistroCobrancaService.serviceagent?wsdl
[keepAlive:protected] =>
[sslMethod:protected] =>
[connectionTimeout:protected] =>
[localCert:protected] =>
[location:protected] =>
[login:protected] =>
[passphrase:protected] =>
[password:protected] =>
[proxyHost:protected] =>
[proxyLogin:protected] =>
[proxyPassword:protected] =>
[proxyPort:protected] =>
[streamContext:protected] =>
[style:protected] =>
[uri:protected] =>
[use:protected] =>
[userAgent:protected] =>
[cacheWsdl:protected] =>
[compression:protected] =>
[features:protected] =>
)
functions
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://cobranca.homologa.bb.com.br:7101/Processos/Ws/RegistroCobrancaService.serviceagent?wsdl' : failed to load external entity "https://cobranca.homologa.bb.com.br:7101/Processos/Ws/RegistroCobrancaService.serviceagent?wsdl"
in /var/www/html/vendor/zendframework/zend-soap/src/Client/Common.php:33
Stack trace:
#0 /var/www/html/vendor/zendframework/zend-soap/src/Client/Common.php(33): SoapClient->SoapClient('https://cobranc...', Array)
#1 /var/www/html/vendor/zendframework/zend-soap/src/Client.php(1070): Zend\Soap\Client\Common->__construct(Array, 'https://cobranc...', Array)
#2 /var/www/html/vendor/zendframework/zend-soap/src/Client.php(1245): Zend\Soap\Client->initSoapClientObject()
#3 /var/www/html/vendor/zendframework/zend-soap/src/Client.php(1202): Zend\Soap\Client->getSoapClient()
#4 /var/www/html/global/controllers/boletoControllerGlobal.php(1319): Zend\Soap\Client->getFunctions()
#5 /var/www/html/global/System.php(207 in /var/www/html/vendor/zendframework/zend-soap/src/Client/Common.php on line 33
При чтении документации службы SOAP существует сервер OAUTH2 для проверки подлинности. Я выполнил проверку подлинности, и он возвращает мне токен.
Функция аутентификации:
private function boletoApiBBOauth() {
$client_id = "eyJpZCI6Ijg...";
$secret_key = "eyJpZCI6IjBj...";
$authorization = "Basic ".base64_encode($client_id.":".$secret_key);
$client = new GuzzleHttp\Client();
$response = $client->request('POST', 'https://oauth.hm.bb.com.br/oauth/token',
[
'headers' => [
'authorization' => $authorization
],
'form_params' => [
'grant_type' => "client_credentials",
'scope' => "cobranca.registro-boletos",
]
]
);
$body = $response->getBody();
$resposta = json_decode($body, true);
$token = $resposta["access_token"];
return $token;
}
Я отправляю запрос аутентификации на URL
https://oauth.hm.bb.com.br/oauth/token. С помощью токена я должен отправить необходимую информацию на URL
https://cobranca.homologa.bb.com.br:7101/registrarBoleto
Следуя этой схеме:
Header
SOAPACTION: registrarBoleto
Authorization:Bearer
aO2TXKd5Mhsg4zpAs3H7ze0YEgk5TdAMeGgIazrsq5TI8EDdAiSryGz/fcGfhMeGgINeLotO+ndhgHVYOsJx87
g==.9iFwrWb9cxwz8i5Jj+YgB+asAn7jJMeGgIHEFtWj4ES503/BUR2fRHNKREAUT22ysR9sMyEoC2FGx/s7B+
wG/P+L6rHxQiMiXAVzUcOj2h0P30QRCWhZwRhp5EulgfnE3Sm5JYal7cXAG3zIP6NehU5Cx5baeiGEbyO2yR
gzyeAiHQ81TTUqOrCxCcRi6XbafVQJdKkwwbecwV5Wggg1cNHz7dZgPXLZdUPm5FDWRIX2+PrRVPrDdC2fgf
oZl2MHunUL6lkaQ9Cg+oPA0Nj9XSKhMeGgIVG3bR8TXgQNkzn02Rl2wJMybEYZXe9yeIjt3PtB9wR/eLNlxZW
OYu8bbDOEvXJ2hz218co3q1KXA7uLhazDgvI8HR9eVpfu7jM39mGLmmwLb15YXpeSg5TVnyE6sdlt5iHdQhI
snucU7qs9ZzsTBcnZk/GZoGqcSdyFoFRIts4+XdgrpRfs9rycZxNG2oNKSdTG0ZDfwo6puBqZeLMZ15MHzx/Zb
x4urjJnVbcsbHoi2iEjch/nHHdpRSDLJmnQni3Ya24rt3HFqnTFQY5TsEL95w0jxLImRxHjb/PK1b5o9+ST/Dfj8k
MsWzaVZGbVqNkpJ7TVkGtbwQgf/kVS4OLrFM6XDJZLNViGtTzKYBIyuUoJahwBcncwRXkwngdcu23qSjbLM
AXcQxYMloZ/jgA3jLGU7Yn
Content-Type: text/xml; charset=uft-8
Payload
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:sch="http://www.tibco.com/schemas/bws_registro_cbr/Recursos/XSD/Schema.xsd">
<soapenv:Header/>
<soapenv:Body>
<sch:requisicao>
<sch:numeroConvenio>1014051</sch:numeroConvenio>
<sch:numeroCarteira>17</sch:numeroCarteira>
<sch:numeroVariacaoCarteira>19</sch:numeroVariacaoCarteira>
<sch:codigoModalidadeTitulo>1</sch:codigoModalidadeTitulo>
<sch:dataEmissaoTitulo>01.03.2017</sch:dataEmissaoTitulo>
<sch:dataVencimentoTitulo>21.11.2017</sch:dataVencimentoTitulo>
<sch:valorOriginalTitulo>30000</sch:valorOriginalTitulo>
<sch:codigoTipoDesconto>1</sch:codigoTipoDesconto>
<sch:dataDescontoTitulo>21.11.2016</sch:dataDescontoTitulo>
<sch:percentualDescontoTitulo/>
<sch:valorDescontoTitulo>10</sch:valorDescontoTitulo>
<sch:valorAbatimentoTitulo/>
<sch:quantidadeDiaProtesto>0</sch:quantidadeDiaProtesto>
<sch:codigoTipoJuroMora>0</sch:codigoTipoJuroMora>
<sch:percentualJuroMoraTitulo></sch:percentualJuroMoraTitulo>
<sch:valorJuroMoraTitulo></sch:valorJuroMoraTitulo>
<sch:codigoTipoMulta>2</sch:codigoTipoMulta>
<sch:dataMultaTitulo>22.11.2017</sch:dataMultaTitulo>
<sch:percentualMultaTitulo>10</sch:percentualMultaTitulo>
<sch:valorMultaTitulo></sch:valorMultaTitulo>
<sch:codigoAceiteTitulo>N</sch:codigoAceiteTitulo>
<sch:codigoTipoTitulo>2</sch:codigoTipoTitulo>
<sch:textoDescricaoTipoTitulo>DUPLICATA</sch:textoDescricaoTipoTitulo>
<sch:indicadorPermissaoRecebimentoParcial>N</sch:indicadorPermissaoRecebimentoParcial>
<sch:textoNumeroTituloBeneficiario>987654321987654</sch:textoNumeroTituloBeneficiario>
<sch:textoCampoUtilizacaoBeneficiario/>
<sch:codigoTipoContaCaucao>1</sch:codigoTipoContaCaucao>
<sch:textoNumeroTituloCliente>00010140510000000000</sch:textoNumeroTituloCliente>
<sch:textoMensagemBloquetoOcorrencia>Pagamento disponível até a data de vencimento
</sch:textoMensagemBloquetoOcorrencia>
<sch:codigoTipoInscricaoPagador>2</sch:codigoTipoInscricaoPagador>
<sch:numeroInscricaoPagador>73400584000166</sch:numeroInscricaoPagador>
<sch:nomePagador>MERCADO ANDREAZA DE MACEDO</sch:nomePagador>
<sch:textoEnderecoPagador>RUA SEM NOME</sch:textoEnderecoPagador>
<sch:numeroCepPagador>12345678</sch:numeroCepPagador>
<sch:nomeMunicipioPagador>BRASILIA</sch:nomeMunicipioPagador>
<sch:nomeBairroPagador>SIA</sch:nomeBairroPagador>
<sch:siglaUfPagador>DF</sch:siglaUfPagador>
<sch:textoNumeroTelefonePagador>45619988</sch:textoNumeroTelefonePagador>
<sch:codigoTipoInscricaoAvalista/>
<sch:numeroInscricaoAvalista/>
<sch:nomeAvalistaTitulo/>
<sch:codigoChaveUsuario>1</sch:codigoChaveUsuario>
<sch:codigoTipoCanalSolicitacao>5</sch:codigoTipoCanalSolicitacao>
</sch:requisicao>
</soapenv:Body>
</soapenv:Envelope>
Я заблудился в том, как я должен это сделать. Может ли кто-нибудь решить это?