Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

saopaulinho

[Resolvido] WebService SOAP

Recommended Posts

Iae Galera estou tentando implantar um sistema de pagamento em meu site utilizando a Braspag.

Tenho que utilizar o SOAP para enviar os dados a Braspag, e então a Braspag irá criptografar estes dados e irá me retornar os mesmos já criptografados.

 

preciso enviar o seguinte envelope soap para eles:

 

POST /BraspagGeneralService/BraspagGeneralService.asmx HTTP/1.1
Host: homologacao.pagador.com.br
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "https://www.pagador.com.br/webservice/BraspagGeneralService/EncryptRequest"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http-~~-//www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http-~~-//www.w3.org/2001/XMLSchema" xmlns:soap="http-~~-//schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<EncryptRequest xmlns="https-~~-//www.pagador.com.br/webservice/BraspagGeneralService">
<merchantId>string</merchantId>
<request>
<string>string</string>
<string>string</string>
</request>
</EncryptRequest>
</soap:Body>
</soap:Envelope>

 

como faço isso, alguém poderia me dar um help?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve ter recebido um caminho da descrição do serviço (WSDL).

 

Coloque esse caminho aqui no fórum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A única coisa que eles me passaram foi este link.

https://homologacao....ralService.asmx

seria isso?

Obrigado

 

Bom, através desse link foi possível localizar o WSDL: https://homologacao.pagador.com.br/BraspagGeneralService/BraspagGeneralService.asmx?WSDL

 

Esses são os métodos disponíveis:

Imagem Postada

 

Para consumir o método EncryptRequest você fará assim:

 

<?php
/**
* Preparando requisição
*/
$parameters = new stdClass();
$parameters->merchantId = 'xxx'; //aqui você vai colocar seu merchantId
$parameters->request = array(
'conteudo1',
'conteudo2',
'...',
'conteudoN'
);


/**
* Aqui enviamos a requisição
*/
try {
$braspag = new SoapClient( 'https-~~-//homologacao.pagador.com.br/BraspagGeneralService/BraspagGeneralService.asmx?WSDL',
	array(
		'trace'			=> 1,
		'exceptions'	=> 1,
		'style'			=> SOAP_DOCUMENT,
		'use'			=> SOAP_LITERAL,
		'soap_version'	=> SOAP_1_1,
		'encoding'		=> 'UTF-8'
	)
);

/**
	* A variável $EncryptRequestResult abaixo conterá o conteúdo criptografado se tudo ocorrer bem
	*/
$EncryptRequestResult = $braspag->EncryptRequest( $parameters );

echo $EncryptRequestResult; //Exibindo o conteúdo criptografado
} catch( SoapFault $fault ){
echo 'Ocorreu um erro: ' , $fault->getMessage();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito Obrigado pela ajuda,

você está salvando minha pele!! rs

 

só mais um detalhe, está dando o seguinte erro na hr q eu rodo isso.

 

Catchable fatal error: Object of class stdClass could not be converted to string in /home/centralh/public_html/soap/client.php on line 28

 

a linha 28 é aonde você colocou para imprimir os valores criptografados.

Será que estou passando o array errado?

 

já tentei de algumas formas. ex

array( 
 nome => 'comprador',
 valor => 100);
ou

 

array( 
 'nome = comprador',
 'valor = 100');

poderia me dar este último help!!!

Muito OBRIGADO!!

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que estou passando o array errado?

 

Não, na verdade foi falha minha, agora deve funcionar:

 

$EncryptRequestResponse = $braspag->EncryptRequest( $parameters );

echo $EncryptRequestResponse->EncryptRequestResult; //Exibindo o conteúdo criptografado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria comop voce postar os arquivos corretos com os parametros tambem? obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara que Osso essa Braspag... se puderem alguem tem os arquivos completos aí para disponiblizarem...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, estou tentando implementar a brasspag e to apanhando bastante, alguem ja fez

e meu codigo retorna erro de Guid, não sei como resolver


$parameters = new stdClass();
$parameters->request = new StdClass();

$parameters->request->OrderData->MerchantId='00000000000000000000000000000';
$parameters->request->OrderData->OrderId='04032013001';
$parameters->request->OrderData->BraspagOrderId= " nil=".chr(34)."true".chr(34)." /";

$parameters->request->CustomerData->CustomerIdentity='99999999999';
$parameters->request->CustomerData->CustomerName='Teste';
$parameters->request->CustomerData->CustomerEmail='compradot@teste.com';
$parameters->request->CustomerData->CustomerAddressData=" nil=".chr(34)."true".chr(34)." /";
$parameters->request->CustomerData->DeliveryAddressData=" nil=".chr(34)."true".chr(34)." /";

$parameters->request->PaymentDataCollection->PaymentDataRequest="type=".chr(34)."CreditCardDataRequest".chr(34);
$parameters->request->PaymentDataCollection->PaymentMethod='997';
$parameters->request->PaymentDataCollection->Amount='500';
$parameters->request->PaymentDataCollection->Currency='BRL';
$parameters->request->PaymentDataCollection->Country='BRA';
$parameters->request->PaymentDataCollection->NumberOfPayments='1';
$parameters->request->PaymentDataCollection->PaymentPlan='0';
$parameters->request->PaymentDataCollection->TransactionType='2';
$parameters->request->PaymentDataCollection->CardHolder='Comprador Teste';
$parameters->request->PaymentDataCollection->CardNumber='0000000000000001';
$parameters->request->PaymentDataCollection->SaveCreditCard='true';
$parameters->request->PaymentDataCollection->CardSecurityCode='111';
$parameters->request->PaymentDataCollection->CardExpirationDate='05/2018';

$parameters->request->RequestId='80a51fb5-f9d7-44b8-bdc2-da2d533f3b8d';
$parameters->request->Version='1.0';

// Verifica se tem o SOAP instalado.
if (!class_exists('SoapClient')){
echo ("O módulo PHP-Soap nâo esta instalado.");
} else {

try {

$braspag = new SoapClient('https://homologacao.pagador.com.br/webservice/pagadorTransaction.asmx?WSDL',

array(
'trace' => 'true',
'exceptions' => 1,
'style' => SOAP_DOCUMENT,
'use' => SOAP_LITERAL,
'soap_version' => SOAP_1_1,
'encoding' => 'UTF-8'
)

);

print_r($parameters);
$AuthorizeTransactionResponse = $braspag->AuthorizeTransaction($parameters);
print_r($AuthorizeTransactionResponse);
echo $AuthorizeTransactionResponse->AuthorizeTransactionResponse;
//var_dump($braspag->__getFunctions());

}

catch(SoapFault $fault) {

echo 'Ocorreu um erro: ' , $fault->getMessage();

}


echo '<br>------Começa aqui !--------<br>';
echo "<pre>";

//var_dump($braspag->__getLastRequestHeaders()); //the headers of your last request
//var_dump($braspag->__getLastRequest()); //your last request


echo htmlspecialchars($braspag->__getLastRequestHeaders())."\n";
echo htmlspecialchars($braspag->__getLastRequest())."\n";
echo "Response:\n".htmlspecialchars($braspag->__getLastResponseHeaders())."\n";
echo htmlspecialchars($braspag->__getLastResponse())."\n";
echo "</pre>";
};

 

alguem tem alguma ideia ????

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.