shish 2 years ago
parent
commit
6ebeff1718
2 changed files with 46 additions and 0 deletions
  1. 11 0
      app-hd/controllers/GhsController.php
  2. 35 0
      common/components/qrCodeUtil.php

+ 11 - 0
app-hd/controllers/GhsController.php

@@ -12,6 +12,7 @@ use bizHd\purchase\classes\PurchaseClass;
 use bizHd\stat\classes\StatVisitClass;
 use common\components\dict;
 use common\components\imgUtil;
+use common\components\qrCodeUtil;
 use common\components\stringUtil;
 use common\components\util;
 use Yii;
@@ -51,6 +52,16 @@ class GhsController extends BaseController
         }
         $ghs['remainDebtAmount'] = $remainDebtAmount;
         $custom['remainDebtAmount'] = $remainDebtAmount;
+
+        if (getenv('YII_ENV') == 'production') {
+            $url = "https://mall.huahb.cn/#/admin/ghs/pay?id={$id}&salt={$salt}";
+        } else {
+            $url = "https://mall.huaml.com/#/admin/ghs/pay?id={$id}&salt={$salt}";
+        }
+        $unique = "recharge_to_ghs_" . $id;
+        $imgUrl = qrCodeUtil::generateRechargeQrCode($url, $unique);
+        echo $imgUrl;die;
+
         util::success(['ghs' => $ghs, 'custom' => $custom]);
     }
 

+ 35 - 0
common/components/qrCodeUtil.php

@@ -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等