CONSUMIR TICKETENDPOINTSERVICE DO SANTANDER

MOZARTJUNIOR 27/07/2017 13:15:06
#475457
Sei que é uma questão bem específica, mais queria saber se alguém já fez alguma implementação para consumir o webservice do Santander para inserir boletos via cobrança online xml. Estou com uma dúvida e o pessoal do suporte do banco não tem um exemplo que ajude.
KERPLUNK 27/07/2017 13:55:07
#475459
Resposta escolhida
Já possui o certificado? Com ele você vai poder ler o WSDL e começar a trabalhar.
MOZARTJUNIOR 27/07/2017 13:58:20
#475460
Tenho o certificado sim, já até adicionei o web service reference tanto do ticket quanto da cobrança, estou com dúvida na entrada de titulos, pois o exemplo que o banco me passou só tem 1 chave e tenho que incluir muitas e do jeito que fiz está errado e o banco não tem outro exemplo onde mostre como adicionar mais chaves.
MOZARTJUNIOR 27/07/2017 14:17:17
#475461
Minha dúvida está aqui :
var ticketService = new TicketEndpointService();
ticketService.Url = @[Ô]https://ymbdlb.santander.com.br/dl-ticket-services/TicketEndpointService[Ô];

var certificado = new X509Certificate(@[Ô]C:\Users\T691796\Documents\Certificados
ome_certificado.pfx[Ô], @[Ô]SenhaCertificadoClient[Ô]);
ticketService.ClientCertificates.Add(certificado);

try
{
var request = new ticketRequest();
request.expiracao = 600;
request.sistema = [Ô]YMB[Ô];


var dado = new ticketRequestEntry();
dado.key = [Ô]Chave1[Ô]; // substituir pelo nome da chave
dado.value = [Ô]valor[Ô]; // substituir pelo valor da chave

request.dados = new ticketRequestEntry[1];
request.dados[0] = dado;

//Como faço para incluir outras chaves ?
dado.key = [Ô]chave2[Ô];
dado.value = [Ô]valor2[Ô];

ticketResponse response = ticketService.create(request);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
KERPLUNK 27/07/2017 14:28:20
#475463
O objeto [Ô]request.dados[Ô] é um array de [Ô]ticketRequestEntry[Ô] e está com apenas um ítem. Para ter como incluir mais ítens, você precisa instanciar o array com o número de ítens que você quer incluir:

request.dados = new ticketRequestEntry[5];


Assim, você pode incluir novos ítens:

var dado1 = new ticketRequestEntry();
dado1.key = [Ô]chave 1[Ô];
dado1.value = [Ô]valor 1[Ô];
request.dados[0] = dado1;

var dado2 = new ticketRequestEntry();
dado2.key = [Ô]chave 2[Ô];
dado2.value = [Ô]valor 2[Ô];
request.dados[1] = dado2;


E assim por diante... o caso é que você não está entendendo o que está aí, certo?
MOZARTJUNIOR 27/07/2017 15:01:32
#475464
Funcionou, o que eu não entendi é que request.dados = new ticketRequestEntry[5]; inicializava o array, eu até fiz dado1 dado2 mais ele sempre inicializava o array anterior.
KERPLUNK 27/07/2017 15:33:49
#475467
Não te entendi...
MOZARTJUNIOR 27/07/2017 15:59:07
#475469
No exemplo que o banco me passou e coloquei aqui, eu não havia entendido que o
request.dados = new ticketRequestEntry[27]; teria que ter a quantidade de tags<entry>

Eu até cheguei a criar como vc mandou criando dado1,dado2,etc... Debugando ele criava o indice 0 e depois criava o indice 1 sendo que o indice 0 ficava null
KERPLUNK 27/07/2017 16:43:33
#475471
Cara, você sabe o que é um array?
EDULAMY 15/09/2017 15:15:37
#476591
TicketEndpointService() pertence a qual classe? Ou estas classes foram criadas por você?

Você conclui o restante da comunicação com o webservice, na questão de fazer o registro do boleto?
MOZARTJUNIOR 15/09/2017 15:18:44
#476592
é do webservice do banco, comigo deu tudo certo consumir e gravei o titulo no banco
Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas