Tratando hacer funcionar el api de DineroMail en modo producción me devuelve estatus DENIED, usando el ejemplo que el foro de Dineromail provee: http://foro.dineromail.com/viewtopic.php?f=21&t=22&p=831&hilit=DENIED#p831, (espero que si se pueda publicar el enlace), cambié el usuario y el password por el que da DineroMail y la dirección sandboxapi a api, además de quitar la función encryptTripleDES, el código queda así:
Código PHP:
<?php
$APIUserName = "";
$APIPassword = "";
$Crypt = false;
$MerchantTransactionId = "";
$UniqueMessageId = "39";
$Provider = "pagofacil";
$Subject = "Subject";
$Message = "Message";
$Hash = "";
$Currency = "MXN";
$Amount = "10.00";
$Code = "A001";
$Description = "000";
$ItemName = "Test";
$Quantity = "1";
$Address = "Humboldt 2500";
$City = "Buenos Aires";
$Country = "Argentina";
$Email = "[email protected]";
$Name = "John";
$LastName = "Doe";
$Phone = "45550000";
$ns = "https://api.dineromail.com/";
$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);
$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 '<pre>';
print_r($result);
echo '</pre>';
}
catch (SoapFault $sf){
//echo "faultstring:". $sf->faultstring;
echo '<pre>';
print_r($sf);
echo '</pre>';
}
?>
Bueno gracias!