<?php

// https://payp.page.link/Pfxb

{
$xemprdocuid=$_GET['emprdocuid'];     
     
$xempr=$_GET['empr'];
$xdocu=$_GET['docu'];
$xidnum=$_GET['idnum'];
$xrefer=$_GET['refer'];
$xamount=$_GET['amount'].'.00';

     
if(!empty($xemprdocuid))
{
     $xempr=substr($xemprdocuid,0,4);
     $xdocu=substr($xemprdocuid,4,4);
     $xidnum=substr($xemprdocuid,8,9);
}
     
$btnhorizontal='true';
$btncard='true';

     
include('php_gene1.php');
chdir('../'.$xempr.'/_lib');
include('../_cfg/config.php');
     
     
$cfg_payphone=cfg_payphone($xempr);     
     
$tabla=r_fiel('docu',$xdocu,'tabla');
$sql_tran ='select *, sum(total) as stotal, sum(tiva) as stiva, sum(tice) as stice, ';
$sql_tran.='sum(tsubtiva0) as stsubtiva0, sum(tsubtiva) as stsubtiva ';
$sql_tran.='from '.$tabla.'12 where docu="'.$xdocu.'" and idnum1='.$xidnum.'';
$res_tran=msql_query($sql_tran,$link_vcrx);

$fecha=date('Y-m-d');     

if(msql_num_rows($res_tran)>0) 
{
     $fecha=msql_result($res_tran,0,'fecha');
     $docu_descri=msql_result($res_tran,0,'docu_descri');
     $enti_descri=msql_result($res_tran,0,'enti_descri');
     $ptoe=msql_result($res_tran,0,'ptoe');
     $numero=msql_result($res_tran,0,'numero');
     $ptoenumero=msql_result($res_tran,0,'ptonumero');
     $total=msql_result($res_tran,0,'stotal');
     $tsubtiva0=msql_result($res_tran,0,'stsubtiva0');
     $tsubtiva=msql_result($res_tran,0,'stsubtiva');
     $tiva=msql_result($res_tran,0,'stiva');
     $tice=msql_result($res_tran,0,'stice');
     $xsaldo=sal_docu($xdocu,$xidnum);
}     

     
$amount=$total;
$amountwot=$total;     

if(substr($xdocu,0,1)=='F') 
{
     $amount=$xsaldo;
     $amountwot=$xsaldo;     
}
     
if($xamount>0)
{    
     $amount=$xamount;
     $amountwot=$xamount;
}
$amount=round($amount*100,0);
$amountwot=round($amountwot*100,0);
     
// 16 caracteres     
$clietranid='';
do{
     $clietranid=date('YmdHis').rand(10,99);     
     $sql_payt='select * from payt0 where payt_codigo="'.$clietranid.'"';
     $res_payt=msql_query($sql_payt,$link_vcrx);
}while(msql_num_rows($res_payt)>0);
     
     
$empr_descri=r_fiel('empr',$xempr);
     
if(mb_stristr($docu_descri,' '))
{$docu_descri=substr($docu_descri,0,strpos($docu_descri,' '));}
 
$refer ='';
$refer.=$docu_descri.'-'.$ptoe.'-'.$numero;
     
     
}
?>

<!DOCTYPE html>
<html lang="es">
<head>
<link rel="icon"   href="../<?php echo $xempr; ?>/favicon.ico" type="image/png" />     
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PayPhone</title>
<script src="https://pay.payphonetodoesposible.com/api/button/js?appId=<?php echo $cfg_payphone['idapp']; ?>"></script>
<style>#pp-button{}</style>
     
</head>
<body style="font-family:arial; font-size:150%;">
     
<table width="100%" align="center" border="0" style="font-weight:bold;">
     <tr>
          <td align="center" colspan="2"><?php echo $empr_descri; ?></td>
     </tr>
     <tr>
          <td align="center" colspan="2">
          <img src="../_logo/logo<?php echo $xempr; ?>1.png" alt="" title="" style=" max-height:80mm;">     
          </td>
     </tr>
     <tr>
          <td align="right">FECHA :</td>
          <td><?php echo $fecha; ?></td>
     </tr>     
     <tr valign="top" >
          <td align="right">CLIENTE :</td>
          <td><?php echo $enti_descri; ?></td>
     </tr>     
     <tr>
          <td align="right" width="40%">REFER.:</td>
          <td><?php echo $refer; ?></td>
     </tr>     
     <tr>
          <td align="right">VALOR :</td>
          <td><?php echo number_format($total,2); ?></td>
     </tr>
     <?php if($xsaldo>0 and 1==2){ ?>
     <tr>
          <td align="right">SALDO :</td>
          <td><?php echo number_format($xsaldo,2); ?></td>
     </tr>
     <?php } ?>
     <tr style="display:none;">
          <td align="right">ID PayPhone :</td>
          <td><?php echo $clietranid; ?></td>
     </tr>     
     <tr>
          <td colspan="4"><div id="pp-button"></div></td>
     </tr>     
</table>     
     
<script>
window.onload = function() {

var xhref=location.href;
if(xhref.indexOf('https:')<0){window.location=xhref.replace('http:','https:');}

// {
// «clientTransactionId»: «string»,                        // Identificador que das a la transacción, máximo 16 caracteres
// «amount»: integer,                                               // Monto total a cobrar al cliente
// «tax»: integer,                                                       // Total de impuestos a cobrar, Solo se usa cuando el tipo de facturación es con Iva o Mixto.
// «amountWithTax»: integer,                               // Monto total que graba impuestos, sin los impuestos. Solo se usa con tarifa 0% o Mixto
// «amountWithoutTax»: integer,                         // Monto total que no graba impuestos, Solo se usa cuando el tipo de facturación es con Iva o Mixto.
// «service»: integer,                                               // Monto del servicio
// «tip»: integer,                                                       // Propina
// «currency»: «string»,                                           // Tipo de Moneda, ejemplo «USD»
// «reference»: «string»,                                         // Referencia del pago, máximo 10 caracteres
// «storeId»: «string»,                                              // Identificador de la tienda, entregado por PayPhone
// «additionalData»: «string»,                                // Parámetro adicional para control de la transacción
// «oneTime»: boolean,                                         // True si el link se usa solo una vez, false si se usa varias veces.
// «expireIn»: integer                                             // Número de horas para que se caduque el link
// }     
     
     
     
payphone.Button({
     token:'<?php echo $cfg_payphone['token']; ?>',
     btnHorizontal:<?php echo $btnhorizontal; ?>,
     btnCard:<?php echo $btncard; ?>,
     createOrder: function(actions){
          return actions.prepare({
               amount:<?php echo $amount;?>,
               amountWithoutTax:<?php echo $amountwot;?>,
               currency: 'USD',
               clientTransactionId: '<?php echo ($clietranid);?>'
               });
          },
     onComplete: function(model, actions){
          //Se confirma el pago realizado
          actions.confirm({
          id: model.id,
          clientTxId: model.clientTxId
          }).then(function(value){
          //EN ESTA SECCIÓN SE RECIBE LA RESPUESTA Y SE MUESTRA AL USUARIO                                
          _payphone_res('<?php echo $xempr;?>','<?php echo ($clietranid);?>',value.transactionId,'<?php echo $refer;?>','<?php echo $xdocu;?>','<?php echo $xidnum;?>');
          if (value.transactionStatus == 'Approved')
          {alert('Pago :' + value.transactionId + ' RECIBIDO '+'\n'+' Estado : ' + value.transactionStatus );}
          }).catch(function(err){
          console.log(err);
          });

          }
     }).render('#pp-button');


}
     

// function _payphone_res(client,transaction)
function _payphone_res(empr,client,transaction,refer,docu,idnum)
{
      var data = new FormData();
      data.append('empr',empr);
      data.append('client',client);
      data.append('transaction',transaction);
      data.append('refer',refer);
      data.append('docu',docu);
      data.append('idnum',idnum);
      data.append('idx','<?php echo $clietranid; ?>');
      //data.append('archivito','car_payphone');
      xhttp = new XMLHttpRequest();
      document.body.style.cursor="wait";
      if (!window.XMLHttpRequest) {xhttp = new ActiveXObject("Microsoft.XMLHTTP");}
          xhttp.onreadystatechange = function() {
              if (this.readyState == 4 && this.status == 200){
                  document.body.style.cursor="default";
                  document.body.style.cursor="default";
                  console.log(this.responseText);
                  var myObj2 = JSON.parse(this.responseText);
                  if(myObj2.error=='0'){}
                  }
              };
      xhttp.open("POST", "res_payphone.php", true);
      xhttp.send(data);

}
</script>
     

     
</body>
</html>



