Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

API dineromail - DoPaymentWithReference

Estas en el tema de API dineromail - DoPaymentWithReference en el foro de Sistemas de gestión de contenidos en Foros del Web. Buenos días! soy mas que novata en estos temas... Intento invocar a la API de dineromail DoPaymentWithReference, para que me genere el cupon de pago ...
  #1 (permalink)  
Antiguo 04/06/2013, 06:08
Avatar de caroboerr  
Fecha de Ingreso: junio-2013
Mensajes: 1
Antigüedad: 11 años, 6 meses
Puntos: 0
API dineromail - DoPaymentWithReference

Buenos días!
soy mas que novata en estos temas...
Intento invocar a la API de dineromail DoPaymentWithReference, para que me genere el cupon de pago en mi misma pagina.
al invocar al ws me da el siguiente errror:

faultstring:SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://sandboxapi.dineromail.com/DMAPI.asmx?WSDL' : failed to load external entity https://sandboxapi.dineromail.com/DMAPI.asmx?WSDL

el codigo que usé para invocarlo es el provisto de ejemplo por dineromail...
alguien puede orientarme para solucioar el error?

Este es el código:

Código PHP:
<?php

$APIPassword 
= <password>;
$APIUserName = <credencial>;

$Crypt false;
$MerchantTransactionId="1";
$UniqueMessageId="1";
$Provider="pagofacil";
$Subject="Subject";
$Message="Message";
$Hash="";

$Currency="ARG";
$Amount="10.40";
$Code="A001";
$Description="Product A001";
$ItemName="LCD Monitor";
$Quantity="1";

$Address='Charcas 2034';
$City='Buenos Aires';
$Country='Argentina';
$Email='[email protected]';
$Name='Carlos';
$LastName='Lopez';
$Phone ='45556565';


$ns 'https://sandboxapi.dineromail.com/';
//$ns = 'https://api.dineromail.com/';

$wsdlPath="https://sandboxapi.dineromail.com/DMAPI.asmx?WSDL";
//$wsdlPath="https://api.dineromail.com/DMAPI.asmx?WSDL";

try
{    
    
$Items=$Amount.$Code.$Currency.$Description.$ItemName.$Quantity;
    
$Buyer=$Name.$LastName.$Email.$Address.$Phone.$Country.$City;
    
$Hash=$MerchantTransactionId.$UniqueMessageId.$Items.$Buyer.$Provider.$Subject.$Message.$APIPassword;
    
$Hash=MD5($Hash);
    
    if (
$Crypt==true)
    {
        
$MerchantTransactionId encryptTripleDES($APIPassword,$MerchantTransactionId);
        
$UniqueMessageId =encryptTripleDES($APIPassword,$UniqueMessageId);
        
$Provider=encryptTripleDES($APIPassword,$Provider);
        
$Subject=encryptTripleDES($APIPassword,$Subject);
        
$Message=encryptTripleDES($APIPassword,$Message);
        
        
$Currency=encryptTripleDES($APIPassword,$Currency);
        
$Amount=encryptTripleDES($APIPassword,$Amount);
        
$Code=encryptTripleDES($APIPassword,$Code);
        
$ItemName=encryptTripleDES($APIPassword,$ItemName);
        
$Quantity=encryptTripleDES($APIPassword,$Quantity);
        
        
$Address=encryptTripleDES($APIPassword,$Address);
        
$City=encryptTripleDES($APIPassword,$City);
        
$Country=encryptTripleDES($APIPassword,$Country);
        
$Email=encryptTripleDES($APIPassword,$Email);
        
$Name=encryptTripleDES($APIPassword,$Name);
        
$LastName=encryptTripleDES($APIPassword,$LastName);
        
$Phone=encryptTripleDES($APIPassword,$Phone);
    }
            
    
$soap_options = array('trace' =>1,'exceptions'=>1);    
    
$client = new SoapClient($wsdlPath,$soap_options);     
    
    
$credential = new SOAPVar(array('APIUserName' => $APIUserName,
                                    
'APIPassword'=> $APIPassword)
                                    , 
SOAP_ENC_OBJECT'APICredential'$ns);
                                    
    
$Item = new SOAPVar(array('Amount' => $Amount
                                
,'Code' => $Code
                                
,'Currency' => $Currency
                                
,'Description' => $Description
                                
,'Name' => $ItemName
                                
,'Quantity' => $Quantity)
                                , 
SOAP_ENC_OBJECT'Item'$ns);    

    
$Items=array($Item);
                                            
    
$BuyerObject = new SOAPVar(array('Address' => $Address
                                
,'City' => $City
                                
,'Country' => $Country
                                
,'Email' => $Email
                                
,'LastName' => $LastName
                                
,'Name' => $Name
                                
,'Phone' => $Phone)
                                , 
SOAP_ENC_OBJECT'Buyer'$ns);

                            
    
$request = array('Credential' =>$credential
                    
,'Crypt' =>  $Crypt
                    
,'MerchantTransactionId' => $MerchantTransactionId
                    
,'UniqueMessageId' => $UniqueMessageId
                    
,'Provider' => $Provider
                    
,'Message' => $Message
                    
,'Subject' => $Subject
                    
,'Items'=>$Items
                    
,'Buyer'=>$BuyerObject
                    
,'Hash' => $Hash);    
    
    
$result $client->DoPaymentWithReference($request);
    
    echo 
"<br/>";
    echo 
"MerchantTransactionId: " $result->DoPaymentWithReferenceResult->MerchantTransactionId "<br/>";
    echo 
"Status: " $result->DoPaymentWithReferenceResult->TransactionId "<br/>";
    echo 
"Message: " $result->DoPaymentWithReferenceResult->Message "<br/>";
    echo 
"Status: " $result->DoPaymentWithReferenceResult->Status "<br/>";
    echo 
"TransactionId: " $result->DoPaymentWithReferenceResult->TransactionId "<br/>";
    echo 
"BarcodeDigits: " $result->DoPaymentWithReferenceResult->BarcodeDigits "<br/>";
    echo 
"BarcodeImageUrl: " $result->DoPaymentWithReferenceResult->BarcodeImageUrl "<br/>";
    echo 
"VoucherUrl: " $result->DoPaymentWithReferenceResult->VoucherUrl "<br/>";
    
}
catch (
SoapFault $sf)
{
    echo 
"faultstring:"$sf->faultstring;
}

function 
encryptTripleDES($key$text){
    
    
$vector "uL%&(#(f";
    
    
$td mcrypt_module_open (MCRYPT_3DES''MCRYPT_MODE_CBC'');

    
// Complete the key
    
$key_add 24-strlen($key);
    
$key .= substr($key,0,$key_add);

    
// Padding the text
    
$text_add strlen($text)%8;
    for(
$i=$text_add$i<8$i++){
        
$text .= chr(8-$text_add);
    }

    
mcrypt_generic_init ($td$key$vector);
    
$encrypt64 mcrypt_generic ($td$text);
    
mcrypt_generic_deinit($td);
    
mcrypt_module_close($td);

     
// Return the encrypt text in 64 bits code
    
return base64_encode($encrypt64);
}

?>


Ojalá puedan ayudarme!
Muchas gracias!!
  #2 (permalink)  
Antiguo 19/06/2013, 10:01
 
Fecha de Ingreso: junio-2005
Ubicación: Edo. Mex
Mensajes: 725
Antigüedad: 19 años, 6 meses
Puntos: 5
Respuesta: API dineromail - DoPaymentWithReference

Este error es un bug en algunas versiones de PHP. En 5.4.10 por ejemplo hay problemas con SOAP. Puedes hacer una prueba con PHP 5.2.17 y verás que la conexión se hará exitosamente.

Saludos!

Etiquetas: aplicaciones-prefabricadas, e-commerce
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:57.