diff --git a/lib/Providers/Qr/GoogleChartsQrCodeProvider.php b/lib/Providers/Qr/GoogleChartsQrCodeProvider.php new file mode 100644 index 0000000..1118ea7 --- /dev/null +++ b/lib/Providers/Qr/GoogleChartsQrCodeProvider.php @@ -0,0 +1,67 @@ +verifyssl = $verifyssl; + + $this->errorcorrectionlevel = $errorcorrectionlevel; + $this->margin = $margin; + $this->encoding = $encoding; + } + + /** + * {@inheritdoc} + */ + public function getMimeType() + { + return 'image/png'; + } + + /** + * {@inheritdoc} + */ + public function getQRCodeImage($qrtext, $size) + { + return $this->getContent($this->getUrl($qrtext, $size)); + } + + /** + * @param string $qrtext the value to encode in the QR code + * @param int|string $size the desired size of the QR code + * + * @return string file contents of the QR code + */ + public function getUrl($qrtext, $size) + { + return 'https://chart.googleapis.com/chart' + . '?chs=' . $size . 'x' . $size + . '&chld=' . urlencode(strtoupper($this->errorcorrectionlevel) . '|' . $this->margin) + . '&cht=' . 'qr' + . '&choe=' . $this->encoding + . '&chl=' . rawurlencode($qrtext); + } +}