Rafaselic 0 Denunciar post Postado Março 24, 2011 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
Rafaselic 0 Denunciar post Postado Março 25, 2011 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
Vanderlei Grimm 0 Denunciar post Postado Dezembro 15, 2011 Isso de passar um xml e não um array me ajudou. Obrigado Rafaselic. Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Dezembro 15, 2011 A arte de ressucitar tópicos... Compartilhar este post Link para o post Compartilhar em outros sites