diff --git a/app/Utils/HtmlEngine.php b/app/Utils/HtmlEngine.php index 4806a89d1d35..f38e8ca9de42 100644 --- a/app/Utils/HtmlEngine.php +++ b/app/Utils/HtmlEngine.php @@ -143,6 +143,7 @@ class HtmlEngine $data['$credit.datetime'] = &$data['$entity.datetime']; $data['$payment_button'] = ['value' => ''.ctrans('texts.pay_now').'', 'label' => ctrans('texts.pay_now')]; $data['$payment_link'] = ['value' => $this->invitation->getPaymentLink(), 'label' => ctrans('texts.pay_now')]; + $data['$payment_qrcode'] = ['value' => $this->invitation->getPaymentQrCode(), 'label' => ctrans('texts.pay_now')]; if ($this->entity_string == 'invoice' || $this->entity_string == 'recurring_invoice') { diff --git a/app/Utils/Traits/Inviteable.php b/app/Utils/Traits/Inviteable.php index 7e2e6fae1455..652850330b1e 100644 --- a/app/Utils/Traits/Inviteable.php +++ b/app/Utils/Traits/Inviteable.php @@ -13,6 +13,11 @@ namespace App\Utils\Traits; use App\Utils\Ninja; use Illuminate\Support\Str; +use BaconQrCode\Renderer\ImageRenderer; +use BaconQrCode\Renderer\Image\SvgImageBackEnd; +use BaconQrCode\Renderer\RendererStyle\RendererStyle; +use BaconQrCode\Writer; + /** * Class Inviteable. @@ -54,6 +59,24 @@ trait Inviteable return $domain.'/client/pay/'.$this->key; } + public function getPaymentQrCode() + { + + $renderer = new ImageRenderer( + new RendererStyle(300), + new SvgImageBackEnd() + ); + $writer = new Writer($renderer); + + $qr = $writer->writeString($this->getPaymentLink()); + + return " + + {$qr} + "; + + } + public function getUnsubscribeLink() { if (Ninja::isHosted()) {