Jump to content

Dineromail con callback


aledis

Recommended Posts

Hola soy nuevo por aqui les dejo un script para DineroMail, como virtud esta preparado para distintos paises y para funcionar con callback o ipn.

 

 

<?php

function rapimail_config() {
   $configarray = array(
    "FriendlyName" => array("Type" => "System", "Value"=>"Dineromail"),
 "dm_mail" => array("FriendlyName" => "Correo con el que entras a DineroMail", "Type" => "text", "Size" => "20", ),
 "dm_nrocta" => array("FriendlyName" => "Numero de Cuenta", "Type" => "text", "Size" => "7", ),
 "dm_nrocta2" => array("FriendlyName" => "Numero de Cuenta", "Type" => "text", "Size" => "1", ),
 "dm_ipn" => array("FriendlyName" => "Contraseña de la IPN de la cuenta", "Type" => "text", "Size" => "20", ),
    "dm_pais" => array("FriendlyName" => "Pais de DineroMail", "Type" => "dropdown", "Options" => "argentina,mexico,chile", ),
 "dm_moneda" => array("FriendlyName" => "Moneda (1 pesos - 2 dolares)", "Type" => "dropdown", "Options" => "1,2", ),
 "dm_medios" => array("FriendlyName" => "Medios de Pago", "Type" => "text", "Size" => "20", ),
 "dm_nombre_item" => array("FriendlyName" => "Nombre del Item", "Type" => "text", "Size" => "20", ),
 "dm_logo" => array("FriendlyName" => "URL del Logo", "Type" => "text", "Size" => "50", ),
 "dm_boton" => array("FriendlyName" => "URL del Botón", "Type" => "text", "Size" => "50", ),
 "dm_url_exito" => array("FriendlyName" => "URL de Compra Exitosa", "Type" => "text", "Size" => "50", ),
 "dm_url_fracaso" => array("FriendlyName" => "URL de Compra Fracasada", "Type" => "text", "Size" => "50", ),
 "dm_mensaje" => array("FriendlyName" => "Mensaje", "Type" => "yesno", "Description" => "Desea que el comprador pueda dejar un mensaje?", ),
 "dm_envio" => array("FriendlyName" => "Direccion de Envio", "Type" => "yesno", "Description" => "Desea que el comprador pueda especificar una dirección de envio?", ),

   );
return $configarray;
}

function rapimail_link($params) {

# Gateway Specific Variables
$gtwMail = $params['dm_mail'];
$gtwCta = $params['dm_nrocta'];
$gtwCta2 = $params['dm_nrocta2'];
$gtwIPN = $params['dm_ipn'];
$gtwPais = $params['dm_pais'];
$gtwCurr = $params['dm_moneda'];
$gtwMedios = $params['dm_medios'];
$gtwLogo = $params['dm_logo'];
$gtwBoton = $params['dm_boton'];
$gtwUrlOk = $params['dm_url_exito'];
$gtwUrlFail = $params['dm_url_fracaso'];
$gtwItemName = $params['dm_nombre_item'];
$gtwMsg = $params['dm_mensaje'];
$gtwEnv = $params['dm_envio'];

# Invoice Variables
$invoiceid = $params['invoiceid'];
$description = $params["description"];
   $amount = $params['amount']; # Format: ##.##


# Client Variables
$firstname = $params['clientdetails']['firstname'];
$lastname = $params['clientdetails']['lastname'];
$email = $params['clientdetails']['email'];
$address1 = $params['clientdetails']['address1'];
$address2 = $params['clientdetails']['address2'];
$city = $params['clientdetails']['city'];
$state = $params['clientdetails']['state'];
$postcode = $params['clientdetails']['postcode'];
$country = $params['clientdetails']['country'];
$phone = $params['clientdetails']['phonenumber'];

# System Variables
$companyname = $params['companyname'];
$systemurl = $params['systemurl'];
$currency = $params['currency'];

if($gtwBoton == "")
{
	$gtwBoton = "https://www.dineromail.com/imagenes/post-login/boton-comprar-01.jpg";
}
if($gtwLogo =="")
{
	$gtwLogo = "http://";
}

$code = "
<form action=\"https://".$gtwPais.".dineromail.com/Shop/Shop_Ingreso.asp\" method=\"post\" target=\"_blank\">
<input type=\"image\" src=\"".$gtwBoton."\" border=\"0\" name=\"submit\" alt=\"Pagar con DineroMail\">
<input type=\"hidden\" name=\"E_Comercio\" value=\"".$gtwCta."\" >
<input type=\"hidden\" name=\"NroItem\" value=\"".$invoiceid."\" >
<input type=\"hidden\" name=\"TipoMoneda\" value=\"".$gtwCurr."\" >
<input type=\"hidden\" name=\"PrecioItem\" value=\"".$amount."\" >
<input type=\"hidden\" name=\"TRX_ID\" value=\"".$invoiceid."\" >
<input type=\"hidden\" name=\"DireccionEnvio\" value=\"".$gtwEnv."\" >
<input type=\"hidden\" name=\"Mensaje\" value=\"".$gtwMsg."\" >
<input type=\"hidden\" name=\"usr_email\" value=\"".$email."\">
<input type=\"hidden\" name=\"usr_nombre\" value=\"".$firstname."\" >
<input type=\"hidden\" name=\"usr_apellido\" value=\"".$lastname."\" >
<input type=\"hidden\" name=\"usr_tel_numero\" value=\"".$phone."\" >
<input type=\"hidden\" name=\"image_url\" value=\"".$gtwLogo."\" >
<input type=\"hidden\" name=\"DireccionExito\" value=\"http://".$gtwUrlOk."\" >
<input type=\"hidden\" name=\"DireccionFracaso\" value=\"http://".$gtwUrlFail."\" >
<input type=\"hidden\" name=\"MediosPago\" value=\"".$gtwMedios."\" >
<input type=\"hidden\" value=\"Pago por FACTURA Nº ".$invoiceid." - ".$email."\" name=\"NombreItem\">
</form>";

return $code;
}
?>

 

 

Tambien les paso otro codigo que no esta probado puede funcionar o no si alguien lo quiere probar o mejorar bienvenido sea.

 

<?php

include( "../../../dbconnect.php" );
include( "../../../includes/functions.php" );
include( "../../../includes/gatewayfunctions.php" );
include( "../../../includes/invoicefunctions.php" );
$gatewaymodule = "dineromail";
$GATEWAY = getgatewayvariables( $gatewaymodule );
if ( !$GATEWAY['type'] )
{
   exit( "Module Not Activated" );# Checks gateway module is active before accepting callback
} 

   $dm_ipn_url = "http://".$GATEWAY['dm_pais'].".dineromail.com/Vender/Consulta_IPN.asp";
   $notificacion = $_REQUEST['notificacion'];
   $notificacion = htmlspecialchars_decode( urldecode( $notificacion ) );
   @unlink( "tmpXML.xml" );
   $fp = @fopen( "tmpXML.xml", "a+" );
   @fwrite( @$fp, @$notificacion );
   @fclose( @$fp );
   $doc = simplexml_load_file( "tmpXML.xml" );
   $post = "<REPORTE><NROCTA>";
   $post .= $GATEWAY['dm_nrocta'];
   $post .= "</NROCTA><DETALLE><CONSULTA><CLAVE>";
   $post .= $GATEWAY['dm_ipn'];
   $post .= "</CLAVE><TIPO>1</TIPO><OPERACIONES>";
   if ( $doc->operaciones->operacion )
   {
       foreach ( $doc->operaciones->operacion as $OPERACION )
       {
           $trx_id = $OPERACION->id;
           $post .= "<ID>".$trx_id."</ID>";
           checkcbinvoiceid( $trx_id, $GATEWAY['name'] );
       }
   }
   $post .= "</OPERACIONES></CONSULTA></DETALLE></REPORTE>";
   $post = "DATA=".urlencode( $post );
   $error = 1;
   $x = 0;
   $post = str_replace( "\n", "", $post );
   $post = str_replace( "\t", "", $post );
   $ch = curl_init( $dm_ipn_url );
   while ( $error != 0 )
   {
       curl_setopt( $ch, CURLOPT_POST, 1 );
       curl_setopt( $ch, CURLOPT_POSTFIELDS, $post );
       curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
       $resultado = curl_exec( $ch );
       $error = curl_errno( $ch );
       if ( 5 < $x )
       {
           break;
       }
       ++$x;
   }
   curl_close( $ch );
   $res = simplexml_load_string( $resultado );
   foreach ( $res->DETALLE->OPERACIONES->OPERACION as $OPERACION2 )
   {
       if ( $OPERACION2->ESTADO == 2 )
       {
           checkcbtransid( $OPERACION2->NUMTRANSACCION );
		$dmid = $OPERACION2->ID;
		$dmtrans = $OPERACION2->NUMTRANSACCION;
           addinvoicepayment( $dmid, $dmtrans, $gatewaymodule );
           logtransaction( $GATEWAY['name'], $_REQUEST, "Successful" );
       }
   }
   @unlink( "tmpXML.xml" );

?>

Saludos

Link to comment
Share on other sites

  mochisnetwork said:
hola,

me interesa esta script para dineromail, la pregunta es como lo aplico en el whmcs junto al de dineromail mexico es decir el de oxxo y demas, o como funciona te agradeceria me explicaras a detalle

 

gracias

 

Funciona con dineromail de mexico chile y argentina, subis el archivo a la carpeta modules/gateways/

 

cuando configuras el modulo seleccionas como pais mexico y los demas datos de tu cuenta en DM.

 

Pd el callback creo que no funciona tira un error.

Link to comment
Share on other sites

  • 1 month later...
  • 3 months later...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated