|
|
@@ -8,6 +8,41 @@ use common\components\stringUtil;
|
|
|
class qrCodeUtil
|
|
|
{
|
|
|
|
|
|
+ //客户向供货商充值二维码 ssh 20240507
|
|
|
+ public static function generateRechargeQrCode($url, $unique, $logo = '', $size = 5)
|
|
|
+ {
|
|
|
+ $app = Yii::getAlias("@app");
|
|
|
+ $saveDir = $app . '/../resource/images/qrcode/';
|
|
|
+ include_once Yii::getAlias("@vendor/qrcode") . '/phpqrcode.php';
|
|
|
+ $random = $unique;
|
|
|
+ //表示容错率,也就是有被覆盖的区域还能识别,分别是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%)
|
|
|
+ $errorCorrectionLevel = 'H';
|
|
|
+ $matrixPointSize = $size;//生成图片大小
|
|
|
+ $QR = $saveDir . $random . '.png';
|
|
|
+ $shortUrl = '/qrcode/' . $random . '.png';
|
|
|
+ if (file_exists($QR)) {
|
|
|
+ return $shortUrl;
|
|
|
+ }
|
|
|
+ \QRcode::png($url, $QR, $errorCorrectionLevel, $matrixPointSize, 1);//最后的参数1表示空白间距
|
|
|
+ if (!empty($logo) && file_exists($logo)) {
|
|
|
+ $QR = imagecreatefromstring(file_get_contents($QR));
|
|
|
+ $logo = imagecreatefromstring(file_get_contents($logo));
|
|
|
+ $QR_width = imagesx($QR);//二维码图片宽度
|
|
|
+ $QR_height = imagesy($QR);//二维码图片高度
|
|
|
+ $logo_width = imagesx($logo);//logo图片宽度
|
|
|
+ $logo_height = imagesy($logo);//logo图片高度
|
|
|
+ $logo_qr_width = $QR_width / 5;
|
|
|
+ $scale = $logo_width / $logo_qr_width;
|
|
|
+ $logo_qr_height = $logo_height / $scale;
|
|
|
+ $from_width = ($QR_width - $logo_qr_width) / 2;
|
|
|
+ //重新组合图片并调整大小
|
|
|
+ imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
|
|
|
+ imagepng($QR, $saveDir . $random . '.png');//输出图片
|
|
|
+ }
|
|
|
+ oss::uploadImage($shortUrl, $QR);
|
|
|
+ return $shortUrl;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 生成二维码
|
|
|
* $unique 举例 userId_189 merchant_20等
|