Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/11/2008, 09:12
japh76
 
Fecha de Ingreso: abril-2008
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Callback Script para WHMCS

Estimados Amigos

Soy programador aficionado. Les escribo para ver si pueden ayudarme.

Estoy haciendo la integración del Boton de Pago del Banco Mercantil (venezuela) en mi Website.

He logrado ya practicamente integrarlo (Ya logre que funcionara la logica de pase de datos al banco, procesamiento del pago, etc) exitosamente pero tengo un problema con el registro de las transacciones en mi site.

Estoy usando un script propietario para e-commerce (WHMCS http://www.whmcs.com) ellos tienen un API para comunicar aplicaciones externas con su sistema.

Leyendo la documentación del sistema logre integrar un callback script que toma los datos de pago del boton de pago y efectivamente los registra en el sistema, ya que envia los datos de confirmacion al cliente via e-mail y en la base de datos efectivamente registra la trasaccion.

Sin embargo aun tengo los siguientes problemas:

1.-El Script no diferencia cuando la transaccion es no exitosa y cuando si, ya que igualmente hace registros en la base de datos.
2.- Necesito que luego de que se registre la transaccion, me redireccione a una pagina que indique si fue exitosa o fue rechazada la transaccion.

Agradeciendo la orientacion que me puedan dar

Saludos Cordiales

Juan Peña

Adjunto el codigo del script callback que estoy usando.

Código:
<?php

$url = "http://www.midominio.com/clientes/includes/api.php"; # URL to WHMCS API file


$username = "user"; # Admin username goes here

$password = "password"; # Admin password goes here
   
$Minvoiceid = $_POST['invoiceNumber'];
$Mtransid = $_POST['confirmationNumber'];
$Mamount = $_POST['totalAmount'];

$postfields["username"] = $username;
$postfields["password"] = md5($password);
$postfields["action"] = "addinvoicepayment";

$postfields["invoiceid"] = $Minvoiceid;

$postfields["transid"] = $Mtransid;

$postfields["amount"] = $Mamount;

$postfields["gateway"] = "mercantil";


$ch = curl_init();


curl_setopt($ch, CURLOPT_URL, $url);


curl_setopt($ch, CURLOPT_POST, 1);


curl_setopt($ch, CURLOPT_TIMEOUT, 100);


curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);


curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);


$data = curl_exec($ch);


curl_close($ch);





$data = explode(";",$data);


foreach ($data AS $temp) {


  $temp = explode("=",$temp);


  $results[$temp[0]] = $temp[1];


}





if ($results["result"]=="Operacion Exitosa") {


  # Result was OK!


} else {


  # An error occured


  echo "El Siguiente Error ha Ocurrido: ".$results["message"];


}




?>