/*
Template Name: Pagina Card 3 / ERORI
*/
include(TEMPLATEPATH."/Mobilpay/Payment/Request/Abstract.php");
include(TEMPLATEPATH."/Mobilpay/Payment/Request/Card.php");
include(TEMPLATEPATH."/Mobilpay/Payment/Request/Notify.php");
include(TEMPLATEPATH."/Mobilpay/Payment/Invoice.php");
include(TEMPLATEPATH."/Mobilpay/Payment/Address.php");
$errorCode = 0;
$errorType = Mobilpay_Payment_Request_Abstract::CONFIRM_ERROR_TYPE_NONE;
$errorMessage = '';
if (strcasecmp($_SERVER['REQUEST_METHOD'], 'post') == 0)
{
if(isset($_POST['env_key']) && isset($_POST['data']))
{
#calea catre cheia privata
#cheia privata este generata de mobilpay, accesibil in Admin -> Conturi de comerciant -> Detalii -> Setari securitate
$privateKeyFilePath = TEMPLATEPATH.’/private_cr.key’;
try
{
$objPmReq = Mobilpay_Payment_Request_Abstract::factoryFromEncrypted($_POST[‘env_key’], $_POST[‘data’], $privateKeyFilePath);
$id_comanda = $objPmReq->orderId;
switch($objPmReq->objPmNotify->action)
{
#orice action este insotit de un cod de eroare si de un mesaj de eroare. Acestea pot fi citite folosind $cod_eroare = $objPmReq->objPmNotify->errorCode; respectiv $mesaj_eroare = $objPmReq->objPmNotify->errorMessage;
#pentru a identifica ID-ul comenzii pentru care primim rezultatul platii folosim $id_comanda = $objPmReq->orderId;
case ‘confirmed’:
#cand action este confirmed avem certitudinea ca banii au plecat din contul posesorului de card si facem update al starii comenzii si livrarea produsului
$errorMessage = $objPmReq->objPmNotify->getCrc();
break;
case ‘confirmed_pending’:
#cand action este confirmed_pending inseamna ca tranzactia este in curs de verificare antifrauda. Nu facem livrare/expediere. In urma trecerii de aceasta verificare se va primi o noua notificare pentru o actiune de confirmare sau anulare.
$errorMessage = $objPmReq->objPmNotify->getCrc();
break;
case ‘paid_pending’:
#cand action este paid_pending inseamna ca tranzactia este in curs de verificare. Nu facem livrare/expediere. In urma trecerii de aceasta verificare se va primi o noua notificare pentru o actiune de confirmare sau anulare.
$errorMessage = $objPmReq->objPmNotify->getCrc();
break;
case ‘paid’:
#cand action este paid inseamna ca tranzactia este in curs de procesare. Nu facem livrare/expediere. In urma trecerii de aceasta procesare se va primi o noua notificare pentru o actiune de confirmare sau anulare.
$errorMessage = $objPmReq->objPmNotify->getCrc();
break;
case ‘canceled’:
#cand action este canceled inseamna ca tranzactia este anulata. Nu facem livrare/expediere.
$errorMessage = $objPmReq->objPmNotify->getCrc();
break;
case ‘credit’:
#cand action este credit inseamna ca banii sunt returnati posesorului de card. Daca s-a facut deja livrare, aceasta trebuie oprita sau facut un reverse.
$errorMessage = $objPmReq->objPmNotify->getCrc();
break;
default:
$errorType = Mobilpay_Payment_Request_Abstract::CONFIRM_ERROR_TYPE_PERMANENT;
$errorCode = Mobilpay_Payment_Request_Abstract::ERROR_CONFIRM_INVALID_ACTION;
$errorMessage = ‘mobilpay_refference_action paramaters is invalid’;
break;
}
}
catch(Exception $e)
{
$errorType = Mobilpay_Payment_Request_Abstract::CONFIRM_ERROR_TYPE_TEMPORARY;
$errorCode = $e->getCode();
$errorMessage = $e->getMessage();
}
}
else
{
$errorType = Mobilpay_Payment_Request_Abstract::CONFIRM_ERROR_TYPE_PERMANENT;
$errorCode = Mobilpay_Payment_Request_Abstract::ERROR_CONFIRM_INVALID_POST_PARAMETERS;
$errorMessage = ‘mobilpay.ro posted invalid parameters’;
}
}
else
{
$errorType = Mobilpay_Payment_Request_Abstract::CONFIRM_ERROR_TYPE_PERMANENT;
$errorCode = Mobilpay_Payment_Request_Abstract::ERROR_CONFIRM_INVALID_POST_METHOD;
$errorMessage = ‘invalid request metod for payment confirmation’;
}
header(‘Content-type: application/xml’);
echo „\n”;
$errorCode = $objPmReq->objPmNotify->errorCode;
if($errorCode == 0)
{
echo „
//$avem1=”eroare0″;
}
else
{
//$avem1=”eroare 2”;
$order = „UPDATE `date`
SET `errplata`=’1′ where `link`='”.$objPmReq->orderId.”‘ „;
mysql_query($order);
//if($order){
//$avem=”eroare mysql”;
//}else{
//$avem=”s-a bagat”;
//}
echo „
}
$errorCode2 = $objPmReq->objPmNotify->errorCode;
//$avem3=print_r($objPmReq , true);
//$filename .= „test_log.txt”;
//$fh = fopen($filename, ‘a+’) ;
//$stringData = „$avem1 \n id:”.$id_comanda.” \n „.$errorCode.” \n „.$errorCode2.” /n”.$privateKeyFilePath.”\n $avem \n”;
//fwrite($fh, $stringData);
//fclose($fh);
?>