Paybox operationnel

This commit is contained in:
Claire DELBOS 2017-02-27 12:16:23 +01:00
parent 397fb4ec63
commit ed8e991677
4 changed files with 83 additions and 70 deletions

View File

@ -11,9 +11,11 @@ class Achatclient_IndexController extends Zend_Controller_Action
protected $logger;
protected $tranches=array(
'200' => array('montant' => 2000,'montantht' => 1667, 'tva' => 333, ),
'500' => array('montant' => 5000,'montantht' => 4167, 'tva' => 833, ),
'1000' => array('montant' => 10000,'montantht' => 8333, 'tva' => 1667, ),
'195' => array(
'200' => array('montant' => 2000,'montantht' => 1667, 'tva' => 333, ),
'500' => array('montant' => 5000,'montantht' => 4167, 'tva' => 833, ),
'1000' => array('montant' => 10000,'montantht' => 8333, 'tva' => 1667, ),
),
);
protected $maxcredit=2000;
@ -41,7 +43,7 @@ class Achatclient_IndexController extends Zend_Controller_Action
$user = new Scores_Utilisateur();
$ok=$user->checkperm($this->libdroits);
if(!$ok){
$this->redirect('/');
$this->error('index','Fonction indisponible');
}
$ws = new WsScores();
$customer_credit = $ws->getCredit();
@ -52,10 +54,11 @@ class Achatclient_IndexController extends Zend_Controller_Action
}
$this->logger->info(print_r($user,1));
if ($customer_credit === false and false) {
$this->error('index','Compte indisponible');
$this->forward('soap', 'error');
}
//Récupération des Parametres
$infos=array('user' => $user,'wscredit' => intval($customer_credit),'tranches' => $this->tranches);
$infos=array('user' => $user,'wscredit' => intval($customer_credit),'tranches' => $this->tranches[$user->getIdClient()]);
//var_dump($infos);die;
$this->view->infos=$infos;
$this->view->submitValue='Commander';
@ -65,48 +68,51 @@ class Achatclient_IndexController extends Zend_Controller_Action
{
//Validation
$request = $this->getRequest('');
$nb_credit=$request->getParam('nb_credit');
if(intval($nb_credit)==0){
$this->error(__LINE__);
}
if(!isset($this->tranches[$nb_credit])){
$this->error(__LINE__);
}
$user = new Scores_Utilisateur();
$ok=$user->checkperm($this->libdroits);
if(!$ok){
$this->error(__LINE__);
$this->error('paiement', __LINE__);
}
$nb_credit=$request->getParam('nb_credit');
if(intval($nb_credit)==0){
$this->error('paiement','Vous devez définir le nombre de crédits');
}
$idClient=$user->getIdClient();
if(intval($idClient)==0){
$this->error('paiement', __LINE__);
}
if(!isset($this->tranches[$idClient]) || !isset($this->tranches[$idClient][$nb_credit])){
$this->error('paiement', __LINE__);
}
//Parametrage
$pbparam=array();
$pbparams['cmdId']=implode('#',array($user->identity->id,time()));
$pbparams['email']=$user->identity->email;
$pbparams['montant']=$this->tranches[$nb_credit]['montant']/100;
$pbparams['montantht']=$this->tranches[$nb_credit]['montantht']/100;
$pbparams['tva']=$this->tranches[$nb_credit]['tva']/100;
$pbparams['montant']=$this->tranches[$idClient][$nb_credit]['montant']/100;
$pbparams['montantht']=$this->tranches[$idClient][$nb_credit]['montantht']/100;
$pbparams['tva']=$this->tranches[$idClient][$nb_credit]['tva']/100;
$ws = new WsScores();
//$customer_credit = $ws->addCredit();
/*
$this->view->Siren = isset($session->CmdSiren)?$session->CmdSiren:'000000000';
$this->view->RaisonSociale = isset($session->CmdRaisonSociale)?$session->CmdRaisonSociale:'testdev';
$this->view->AdresseL1 = isset($session->CmdAdresseL1)?$session->CmdAdresseL1:'';
$this->view->AdresseL2 = isset($session->CmdAdresseL2)?$session->CmdAdresseL2:'';
$this->montantht=20;
$this->montant=20;
$this->tva=0;
//Lire la bdd
//$commandM = new Application_Model_Command();
//$row = $commandM->fetchRow('cmdId="'.$cmdId.'"');
$this->view->montant = $this->montantht." € HT" . " (".$this->montant." € TTC)";
$data = array(
'mt' => $this->montantht,
'tax' => $this->tva,
$insdata=array(
'idClient' =>$user->identity->idClient,
'idCmd' => $pbparams['cmdId'],
'login' => $user->identity->username,
'nbCredit' => $nb_credit,
'amount' => $this->tranches[$idClient][$nb_credit]['montant'],
'amount_ht' => $this->tranches[$idClient][$nb_credit]['montantht'],
'amount_tva' => $this->tranches[$idClient][$nb_credit]['tva'],
'currency' => 'EUR',
'valid' => 0,
'date_sent' => Date('Y-m-d H:i:s'),
'date_received' => null,
'paybox_answer' => json_encode(array('user' => $user)),
'comment' => 'Beforecall',
);
//$commandM->update($data, 'id='.$row->id);*/
/*@todo
$ws = new WsScores();
$customer_credit = $ws->addCredit($insdata);
*/
//Paybox
Zend_Loader::loadClass('Paybox_Config');
Zend_Loader::loadClass('Paybox_System');
@ -121,6 +127,7 @@ class Achatclient_IndexController extends Zend_Controller_Action
$paybox->calculateHMAC();
//$_POST=$paybox->getFormParameters();
//$this->redirect($paybox->getFormUrl());
$this->view->pbparams = $pbparams;
$this->view->PayboxUrl = $paybox->getFormUrl();
$this->view->PayboxValues = $paybox->getFormParameters();
@ -189,8 +196,20 @@ class Achatclient_IndexController extends Zend_Controller_Action
}
}
public function footerAction(){
}
private function error($ligne=0,$message=""){
echo $ligne;die;
switch($ligne){
case "index":
case "paiement":
$this->view->msg=$message;
throw new Exception($message);
break;
default:
echo $ligne.' : '.$message;die;
}
}
}

View File

@ -11,15 +11,15 @@ div .credit{
<div class="credit">
<p>
Le compte <?=isset($this->infos['user']->identity->username)?$this->infos['user']->identity->username:""?> détient actuellement <?=intval($this->infos['wscredit'])?> crédits.<br>
<?=$this->msg?>
</p>
<div id="message" class="alert alert-info"><?=$this->msg?></div>
</div>
<?php if(isset($this->infos) && isset($this->infos['tranches'])):?>
<h2>Vos choix de commande</h2>
<form action="<?=$this->url(array('controller'=>'index', 'action'=>'paiement'))?>" method="GET">
<form action="<?=$this->url(array('controller'=>'index', 'action'=>'paiement'))?>" method="GET" id="creditform">
<div class="credit">
<?php foreach($this->infos['tranches'] as $credit => $item):?>
<input type="radio" name="nb_credit" value="<?=$credit?>" />&nbsp;&nbsp;<?=$credit?>&nbsp;Crédits (<?=$item['montant']/100?> Euros)
<?php $ok=true;foreach($this->infos['tranches'] as $credit => $item):?>
<input type="radio" name="nb_credit" value="<?=$credit?>" <?php if($ok){?>checked="checked"<?php }$ok=false;?> />&nbsp;&nbsp;<?=$credit?>&nbsp;Crédits (<?=$item['montant']/100?> Euros)
<?php endforeach;?>
</div>
<div class="submit">
@ -27,7 +27,11 @@ Le compte <?=isset($this->infos['user']->identity->username)?$this->infos['user'
<input type="submit" class="button" value="<?php echo $this->submitValue?>" />
</p>
</div>
</form>
<script>
$('#creditform').submit(function($data){
//@todo des vérifs si besoin
});
</script>
<?php endif;?>
</div>

View File

@ -1,24 +1,23 @@
<style>
div .credit{
margin-left:25px;
}
</style>
<div class="page-header">
<h2>ACHAT de CREDITS <small>Mode de paiement</small></h2>
</div>
<div id="center">
<h1>ACHAT de CREDITS <small>Confirmation</small></h1>
<?php //if ( $this->CmdID ):?>
<div class="row">
<div class="col-md-6">
<h3>Informations de la commande</h3>
<h2>Informations de la commande</h2>
<div class="credit">
Identifiant de commande : <?=$this->pbparams['cmdId']?><br>
Une fois le paiement effectué cliquer sur le bouton "Retour boutique" afin de
consulter vos documents, si la redirection automatique ne se fait pas.
</div>
<div class="col-md-6">
<h3>Sélection du mode de paiement</h3>
<h2>Sélection du mode de paiement</h2>
<div class="credit">
<?php if ($this->PayboxValues) {?>
<?=$this->PayboxVerif?>
<form method="post" action="<?=$this->PayboxUrl?>">
@ -28,24 +27,15 @@
<input type="hidden" name="<?=$field['name']?>" value="<?=$field['value']?>" />
<?php }?>
<div>
Une fois le paiement effectué cliquer sur le bouton "Retour boutique" afin de
consulter vos documents, si la redirection automatique ne se fait pas.
</div>
<input type="submit" class="btn btn-primary" value="Paiement"/>
</form>
</div>
<?php // }?>
</div>
</div>
<?php } else {?>
<div class="alert alert-danger"><strong>Erreur !</strong> </div>
<?php }?>
</div>

View File

@ -1,8 +1,8 @@
<?php
class Paybox_Config_Test
{
public $key = '0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF';
//public $key = '249DE9DBD388E3430AC464ACFE23A668F1F3221432F96028468A5A0775AFEB8438C7F4DED096066109BBB5E1B2E22DC53D9D31181CC06DD4C6C1239110ADFFD7';
//public $key = '0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF';
public $key = '249DE9DBD388E3430AC464ACFE23A668F1F3221432F96028468A5A0775AFEB8438C7F4DED096066109BBB5E1B2E22DC53D9D31181CC06DD4C6C1239110ADFFD7';
//public $key = 'E941B48379E0C65997F52FDA8DC920B358B1AAB99A6E3CCF584F97E6AC55FB3C701DE0CC0CCFAEC82A1B0AA865CCDA36A420C4043376BBAFB51790D8480E2F77';
public $server = array(
array(
@ -19,7 +19,7 @@ class Paybox_Config_Test
public $variables = array(
'SITE' => '5136925',
'RANG' => '001',
'RANG' => '01',
'IDENTIFIANT' => '533616985',
);