Menu

Generating A QR Code With PHP

<?php
class QRGenerator { 
 
    protected $qr_size; 
    protected $qr_data; 
    protected $qr_encoding; 
    protected $qr_errorCorrectionLevel; 
    protected $qr_marginInRows; 
    protected $qr_debug; 

    public function __construct($qr_data='',$qr_size='300',$qr_encoding='UTF-8',$errorCorrectionLevel='L',$qr_marginInRows=4,$qr_debug=false) { 
 
        $this->qr_data=urlencode($qr_data); 
        $this->qr_size=($qr_size>100 && $qr_size<800)? $qr_size : 300; 
        $this->qr_encoding=($qr_encoding == 'Shift_JIS' || $qr_encoding == 'ISO-8859-1' || $qr_encoding == 'UTF-8') ? $qr_encoding : 'UTF-8'; 
        $this->qr_errorCorrectionLevel=($qr_errorCorrectionLevel == 'H' || $qr_errorCorrectionLevel == 'L' || $qr_errorCorrectionLevel == 'M' || $qr_errorCorrectionLevel == 'Q') ?  $qr_errorCorrectionLevel : 'L';
        $this->qr_marginInRows=($qr_marginInRows>0 && $qr_marginInRows<10) ? $qr_marginInRows:4; 
        $this->qr_debug = ($qr_debug==true)? true:false;  

    }

    public function generateQR(){ 
        $QRLink = "https://chart.googleapis.com/chart?cht=qr&chs=".$this->qr_size."x".$this->qr_size.                            "&chl=" . $this->qr_data .  
                   "&choe=" . $this->qr_encoding . 
                   "&chld=" . $this->qr_errorCorrectionLevel . "|" . $this->qr_marginInRows; 
        if ($this->qr_debug) echo   $QRLink;          
        return $QRLink; 
    }
}

$data = (object)[];
$data->action = 'PAY';

$json_data = json_encode($data);
$qr_code = new QRGenerator($json_data,1000); 
echo "<img src=".$qr_code->generateQR().">";

?>