forked from qmpaas/leadshop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQrcodeController.php
88 lines (71 loc) · 2.66 KB
/
QrcodeController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
/**
* 二维码
* @link https://www.leadshop.vip/
* @copyright Copyright ©2020-2021 浙江禾成云计算有限公司
*/
namespace leadmall\app;
use app\components\Upload;
use basics\app\BasicsController as BasicsModules;
use leadmall\Map;
use Yii;
class QrcodeController extends BasicsModules implements Map
{
/**
* 重写父类
* @return [type] [description]
*/
public function actions()
{
$actions = parent::actions();
unset($actions['create']);
unset($actions['update']);
return $actions;
}
public function actionCreate()
{
$mpConfig = isset(Yii::$app->params['apply']['weapp']) ? Yii::$app->params['apply']['weapp'] : null;
if (!$mpConfig || !$mpConfig['AppID'] || !$mpConfig['AppSecret']) {
Error('渠道参数不完整。');
}
$wechat = &load_wechat('Qrcode', [
'appid' => $mpConfig['AppID'], // 填写高级调用功能的app id, 请在微信开发模式后台查询
'appsecret' => $mpConfig['AppSecret'], // 填写高级调用功能的密钥
]);
$page = Yii::$app->request->post('page', '');
$scene = Yii::$app->request->post('scene', 'index');
$host = Yii::$app->request->hostInfo;
$data = [
'scene' => $scene,
];
if ($page) {
$data['page'] = $page;
}
$url = $page;
if ($scene && $scene != 'index') {
$url .= '?' . $scene;
}
$weapp_img = $wechat->createQrcode($data);
$type = getimagesizefromstring($weapp_img)['mime']; //获取二进制流图片格式
$weapp_image = 'data:' . $type . ';base64,' . chunk_split(base64_encode($weapp_img));
$upload = new Upload();
$weapp_file = $upload->image_base64($weapp_image, 'cache');
$weapp_image_url = $weapp_file['url'];
$UID = null;
$AppID = Yii::$app->params['AppID'];
$merchant_id = 1;
$weapp_image_url = $host . $weapp_image_url;
$wechat_url = $host . '/index.php?r=wechat#/' . $url;
\QRcode::png($wechat_url, false, QR_ECLEVEL_L, 4);
$wechat_img = ob_get_contents(); //获取缓冲区内容
ob_end_clean(); //清除缓冲区内容
$wechat_image = 'data:image/png;base64,' . chunk_split(base64_encode($wechat_img));
$wechat_file = $upload->image_base64($wechat_image, 'cache');
$wechat_image_url = $wechat_file['url'];
$wechat_image_url = $host . $wechat_image_url;
return [
'weapp' => $weapp_image_url,
'wechat' => $wechat_image_url,
];
}
}