QrcodeForm.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\plugins\integral\models\client;
  8. use app\utils\GenerateShareQrcode;
  9. use yii\base\Model;
  10. use app\utils\ShareQrcode;
  11. use app\utils\QrCode;
  12. class QrcodeForm extends Model
  13. {
  14. public $scene;
  15. public $width;
  16. public $page;
  17. public $store_id;
  18. public $wechat;
  19. public function getQrcode()
  20. {
  21. if (is_wechat_platform()) {
  22. $res = ShareQrcode::wxQrcode($this->page, $this->scene);
  23. if (isset($res['code']) && $res['code'] == 1) {
  24. return $this->asJson([
  25. 'code' => 1,
  26. 'msg' => $res['response']['errmsg'],
  27. ]);
  28. }
  29. } elseif (is_alipay_platform()) {
  30. $res = ShareQrcode::getAlipayQrcode($this->page, $this->scene);
  31. if (empty($res['code']) || $res['code'] != 10000) {
  32. return $this->asJson($res);
  33. }
  34. $res['url_path'] = $res['qr_code_url_circle_blue'];
  35. } else {
  36. $file_name = md5('md_admin/md-center/self-mention' . $this->scene.get_store_id());
  37. // 保存小程序码到文件
  38. $dir = \Yii::$app->runtimePath . '/image/wx_qrcode';
  39. if (! is_dir($dir)) {
  40. mkdir($dir, 0777, true);
  41. }
  42. $url = str_replace('http://', 'https://', \Yii::$app->request->hostInfo . '/runtime/image/wx_qrcode/' . $file_name);
  43. QrCode::image(\Yii::$app->request->hostInfo . '/h5/#/' . $this->page, 600, false, 'L', 'JPEG', 0, ['255,255,255', '0,0,0'], 1, false, $dir. '/' .$file_name . '.jpg');
  44. $res = [
  45. 'code' => 0,
  46. 'root_path' => $dir . '/' . $file_name . '.jpg',
  47. 'url_path' => $url . '.jpg',
  48. ];
  49. }
  50. return [
  51. 'code' => 0,
  52. 'msg' => 'success',
  53. 'data' => [
  54. 'url' => $res['url_path'],
  55. ]
  56. ];
  57. }
  58. }