Ir para conteúdo

POWERED BY:

Arquivado

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

Rafaselic

[Resolvido] Consumindo Webservice .NET com PHP

Recommended Posts

Boa Tarde Galera!

 

Estou com um problema gigantesco.

 

Tenho um Webservice feito em .NET e estou tentando consumi-lo em PHP utilizando Soap.

 

Ele conecat no Webservice de boa mas quando ele chega lá ele chega com parametro Nulo.

 

Mas tenho a resposta Normalmente.

 

--------------------Código .NET-------------------

 

[WebMethod]
       public ResponseCreditCardPaymentApprovalRequest CreditCardPaymentApprovalRequest(RequestCreditCardPaymentApprovalRequest requestCreditCardPaymentApprovalRequest)
       {
           RequestCreditCardPaymentApprovalRequest modelRequestAPC = new RequestCreditCardPaymentApprovalRequest();
           ResponseCreditCardPaymentApprovalRequest modelResponseAPC = new ResponseCreditCardPaymentApprovalRequest();
           ResponseCreditCardPaymentCapture modelResponseCAP = new ResponseCreditCardPaymentCapture();
           Enums.ErrorsType errorType = new Enums.ErrorsType();
           StringBuilder parametersAPC = new StringBuilder();
           XmlDocument xmlConf = new XmlDocument();
           XmlDocument xml = new XmlDocument();
           string urlAPC = string.Empty;
           string response = string.Empty; ...

 

--------------Código PHP-------------

<?php
$AccessPassword = "ABC12345";
$AccessUser = "ABC12345";
$Amount="10.00";
$CreditCardNumber="12334";
$DocumentNumber="1123445";//número da transação
$ExpireMonth="06";
$ExpireYear="14";
$HolderName="IVO TORRES";
$Installments="1";
$SecurityCode="12345";
$UserSecurityCode="ABC12345";
$AcessHash="";

$ns = 'http://localhost:4248/PaymentGateway.asmx';
$wsdlPath="http://localhost:4248/PaymentGateway.asmx?WSDL";

try{	
$AcessHash=$AccessPassword.$AccessUser.$Amount.$CreditCardNumber.$ExpireMonth.$ExpireYear.$HolderName.$Installments.$SecurityCode;
$AcessHash=MD5($AcessHash.$UserSecurityCode);

$client = new SoapClient($wsdlPath);

$request = array('AccessUser' => $AccessUser
							,'AccessPassword' => $AccessPassword					
							,'AcessHash' => $AcessHash
							,'DocumentNumber' => $DocumentNumber
							,'Amount' => $Amount
							,'Installments' => $Installments
							,'CreditCardNumber' => $CreditCardNumber
							,'HolderName' => $HolderName
							,'ExpireMonth' => $ExpireMonth
							,'ExpireYear' => $ExpireYear
							,'SecurityCode' => $SecurityCode);

$result=$client->CreditCardPaymentApprovalRequest($request);

echo "<br/>";
echo "TransactionStatusCode: " . $result->CreditCardPaymentApprovalRequestResult->TransactionStatusCode . "<br/>";
echo "TransactionStatusDescription: " . $result->CreditCardPaymentApprovalRequestResult->TransactionStatusDescription . "<br/>";
echo "Result: " . $result->CreditCardPaymentApprovalRequestResult->Result . "<br/>";
echo "TransactionID: " . $result->CreditCardPaymentApprovalRequestResult->TransactionID . "<br/>";
echo "MaskedCreditCardNumber: " . $result->CreditCardPaymentApprovalRequestResult->MaskedCreditCardNumber . "<br/>";
echo "AvsResult: " . $result->CreditCardPaymentApprovalRequestResult->AvsResult . "<br/>";
echo "ErrorCode: " . $result->CreditCardPaymentApprovalRequestResult->ErrorCode . "<br/>";
echo "ErrorDescription: " . $result->CreditCardPaymentApprovalRequestResult->ErrorDescription . "<br/>";

}
catch (SoapFault $sf)
{
echo "faultstring:". $sf->faultstring;
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera Depois de muito apanhar consegui resolver.

 

Segue a solução:

 

<?php
include("nusoap.php");
$AccessPassword = "ABC12345";
$AccessUser = "ABC12345";
$Amount="10.00";
$CreditCardNumber="12334";
$DocumentNumber="1123445";//número da transação
$ExpireMonth="06";
$ExpireYear="14";
$HolderName="IVO TORRES";
$Installments="1";
$SecurityCode="12345";
$UserSecurityCode="ABC12345";
$AcessHash="";

$ns = 'http://localhost:4248/PaymentGateway.asmx';
$wsdlPath="http://localhost:4248/PaymentGateway.asmx?WSDL";

try
{	
$AcessHash=$AccessPassword.$AccessUser.$Amount.$CreditCardNumber.$ExpireMonth.$ExpireYear.$HolderName.$Installments.$SecurityCode;
$AcessHash=MD5($AcessHash.$UserSecurityCode);

$client = new nusoap_client($wsdlPath,'wsdl');
$request="
   <CreditCardPaymentApprovalRequest xmlns='http://tempuri.org/'>       
        <requestCreditCardPaymentApprovalRequest>           
           <AccessUser>ABC12345</AccessUser>            
           <AccessPassword>ABC12345</AccessPassword>            
           <AcessHash>f601077dfbbba63cd2d610feb89efe78</AcessHash>           
           <DocumentNumber>1123445</DocumentNumber>            
           <Amount>1000</Amount>            
           <Installments>1</Installments>            
           <CreditCardNumber>12334</CreditCardNumber>            
           <HolderName>DENNYSLEMOS</HolderName>            
           <ExpireMonth>06</ExpireMonth>            
           <ExpireYear>14</ExpireYear>            
           <SecurityCode>ABC12345</SecurityCode>
        </requestCreditCardPaymentApprovalRequest>
     </CreditCardPaymentApprovalRequest>";

$result=$client->call('CreditCardPaymentApprovalRequest',$request);
//print_r($result);

echo "TransactionStatusCode : ".$result["CreditCardPaymentApprovalRequestResult"]["TransactionStatusCode"]."<br />";
echo "TransactionStatusDescription : ".$result["CreditCardPaymentApprovalRequestResult"]["TransactionStatusDescription"]."<br />";
echo "Result : ".$result["CreditCardPaymentApprovalRequestResult"]["Result"]."<br />";
echo "TransactionID : ".$result["CreditCardPaymentApprovalRequestResult"]["TransactionID"]."<br />";
echo "MaskedCreditCardNumber : ".$result["CreditCardPaymentApprovalRequestResult"]["MaskedCreditCardNumber"]."<br />";
echo "AvsResult : ".$result["CreditCardPaymentApprovalRequestResult"]["AvsResult"]."<br />";
echo "ErrorCode : ".$result["CreditCardPaymentApprovalRequestResult"]["ErrorCode"]."<br />";
echo "ErrorDescription : ".$result["CreditCardPaymentApprovalRequestResult"]["ErrorDescription"]."<br />";	

}
catch (SoapFault $sf)
{
echo "faultstring:". $sf->faultstring;
}
?>

 

XML de Requisição e de Resposta

 

POST /PaymentGateway.asmx HTTP/1.1
Host: localhost
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
 <soap12:Body>
   <CreditCardPaymentApprovalRequest xmlns="http://tempuri.org/">
     <requestCreditCardPaymentApprovalRequest>
       <AccessUser>string</AccessUser>
       <AccessPassword>string</AccessPassword>
       <AcessHash>string</AcessHash>
       <DocumentNumber>string</DocumentNumber>
       <Amount>string</Amount>
       <Installments>string</Installments>
       <CreditCardNumber>string</CreditCardNumber>
       <HolderName>string</HolderName>
       <ExpireMonth>string</ExpireMonth>
       <ExpireYear>string</ExpireYear>
       <SecurityCode>string</SecurityCode>
     </requestCreditCardPaymentApprovalRequest>
   </CreditCardPaymentApprovalRequest>
 </soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
 <soap12:Body>
   <CreditCardPaymentApprovalRequestResponse xmlns="http://tempuri.org/">
     <CreditCardPaymentApprovalRequestResult>
       <TransactionStatusDescription>string</TransactionStatusDescription>
       <TransactionStatusCode>string</TransactionStatusCode>
       <Result>string</Result>
       <AuthorizationCode>string</AuthorizationCode>
       <TransactionID>string</TransactionID>
       <MaskedCreditCardNumber>string</MaskedCreditCardNumber>
       <DocumentNumber>string</DocumentNumber>
       <AvsResult>string</AvsResult>
       <ErrorCode>string</ErrorCode>
       <ErrorDescription>string</ErrorDescription>
     </CreditCardPaymentApprovalRequestResult>
   </CreditCardPaymentApprovalRequestResponse>
 </soap12:Body>
</soap12:Envelope>

 

Lugar onde obtive a luz

http://phpbrasil.com/artigo/9PpaPNEWIrcC/1/acessando-webservices-feitos-em-net

 

Valeu e até mais galera...

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.