62d73041
xu
app-wx
|
1
2
3
4
5
|
<?php
namespace app\wx\controllers;
use Yii;
|
62d73041
xu
app-wx
|
6
7
8
9
10
11
12
13
14
|
use stdClass;
use function header;
use function in_array;
use function md5;
use function str_replace;
use function urlencode;
/**
|
62d73041
xu
app-wx
|
15
16
|
* Class BaseController
* @package app\wx\controllers
|
62d73041
xu
app-wx
|
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
|
*/
class BaseController extends AppController
{
/**
* CSR验证,关闭后可以在不提交CSR验证码的情况下通过POST方式提交数据
* @var bool
*/
public $enableCsrfValidation = false;
/** @var **/
protected $wx;
/** @var **/
protected $site;
/**
* 初始化应用控制器,确保 mall id 的存在,有效启动程序,否则抛出异常。
* @throws yii\web\BadRequestHttpException
* @throws yii\web\BadRequestHttpException
*/
public function init()
{
$this->initTempFilePaths();
parent::init();
$wxArray = $this->getWxArray();
//重置应用的名称
Yii::$app->name = $wxArray['name'];
/**
* 微信服务号配置
*/
$this->wx = new stdClass();
$this->site = new stdClass();
$this->formatWx($wxArray);
$this->formatSite($wxArray);
$view = Yii::$app->view;
$view->params['site']= $this->site;
}
/**
* @return array|bool
*/
private function getWxArray()
{
$wxArray = [
|
be5105bd
xu
app-wx(v0.1.0 bui...
|
66
|
'name' => '',
|
f3ed8f51
xu
app-wx(v0.1.0 bui...
|
67
|
'intro' => '汽车维修店系统',
|
62d73041
xu
app-wx
|
68
|
'logo_path' => '',
|
f3ed8f51
xu
app-wx(v0.1.0 bui...
|
69
70
|
'subscribe_title' => '汽车维修店系统',
'subscribe_desc' => '汽车维修店系统',
|
62d73041
xu
app-wx
|
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
'subscribe_img' => '',
'subscribe_url' => '',
'appid' => 'appid',
'appsecret' => 'appsecret',
'token' => 'token'
];
return $wxArray;
}
/**
* @param $wxArray
*/
private function formatWx($wxArray)
{
/**
* 工程师微信服务号信息
*/
$this->wx->name = $wxArray['name'];//名称
$this->wx->intro = $wxArray['intro'];//简介
$this->wx->logo_url = $wxArray['logo_path'];//路径
$this->wx->subscribe_title = $wxArray['subscribe_title']; // 公众号关注图文标题
$this->wx->subscribe_desc = $wxArray['subscribe_desc']; // 公众号关注图文描述
$this->wx->subscribe_img = $wxArray['subscribe_img']; // 公众号关注图文消息图片
$this->wx->subscribe_url = $wxArray['subscribe_url']; // 公众号关注图文url
$this->wx->appid = $wxArray['appid'];// APPID
$this->wx->appsecret = $wxArray['appsecret'];//APPSECRET
$this->wx->token = $wxArray['token'];//微信TOKEN
}
/**
* 获取 ID
* @return int|string
*/
|
3a892ee0
xu
app-wx(v0.1.0 bui...
|
106
|
public function getUserId()
|
62d73041
xu
app-wx
|
107
|
{
|
3a892ee0
xu
app-wx(v0.1.0 bui...
|
108
109
110
111
112
|
if (isset(Yii::$app->user)) {
return Yii::$app->user->id;
} else {
return 0;
}
|
62d73041
xu
app-wx
|
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
}
/**
* @param $wxArray
*/
private function formatSite($wxArray)
{
/**
* 站点信息
*/
$appUser = Yii::$app->getUser();
$url = Yii::$app->request->getHostInfo() . Yii::$app->request->url;
$this->site->url = $url;
if (YII_ENV_DEV) {
$this->site->base_url = Yii::$app->request->getHostInfo() . Yii::$app->request->baseUrl;
} else {
$this->site->base_url = Yii::$app->request->getHostInfo();
}
$am = Yii::$app->view->getAssetManager();
$assets = $am->getBundle('app\wx\assets\AppAsset');
$this->site->is_android = (int)$this->isAndroid();
$this->site->assets_url = $assets->baseUrl;
$this->site->is_login = !$appUser->isGuest;
$this->site->title = $wxArray['name'];
$search = array("\t", "\n", "\r");
$this->site->desc = str_replace($search, '<br/>', $wxArray['intro']);
$this->site->icon = $wxArray['logo_path'];
// 携带当前用户的邀请码参数,实现推荐用户功能
$sn = '';
$baseUrl = $this->site->base_url;
$this->site->user_bridge_url = $sn ? ($baseUrl . '/wechat/bridging?sn=' . $sn . '&tourl=' . urlencode($this->site->url)) : '';
$this->site->sn = $sn;
$this->site->appid = 'appid';
$this->site->timestamp = time();
$this->site->noncestr = 'noncestr';
$this->site->signature = 'signature';
|
1de3211f
xu
app-wx(v0.1.0 bui...
|
154
|
$this->site->servicePhone = Yii::$app->params['SERVICE_PHONE'];
|
62d73041
xu
app-wx
|
155
156
157
158
159
160
161
|
}
/**
* @return yii\web\Response
*/
protected function handleMallAccessCtrl()
{
|
62d73041
xu
app-wx
|
162
|
$appUser = Yii::$app->getUser();
|
3a892ee0
xu
app-wx(v0.1.0 bui...
|
163
164
165
166
167
168
169
|
if (YII_ENV_DEV) {
$baseURL = Yii::$app->request->getHostInfo() . Yii::$app->request->baseUrl;
} else {
$baseURL = Yii::$app->request->getHostInfo();
}
|
7d60e23d
xu
app-wx(v0.1.0 bui...
|
170
171
172
173
174
175
176
177
178
179
180
|
$path = $this->request->get('j_path');
$model= $this->request->get('j_model');
$paramOne= $this->request->get('pOne');
if (!empty($path) && !empty($model)) {
$locationUrl = Yii::$app->params["frontEndBaseUrl"].$model."#".$path;
if (!empty($paramOne)) {
$locationUrl .= "/".urldecode($paramOne);
}
header("Location: $locationUrl");exit;
}
|
62d73041
xu
app-wx
|
181
|
if(YII_ENV_DEV && $appUser->isGuest){
|
3a892ee0
xu
app-wx(v0.1.0 bui...
|
182
183
|
//header("Location: " .$baseURL . "/user#login" );
//exit;
|
62d73041
xu
app-wx
|
184
|
}
|
3a892ee0
xu
app-wx(v0.1.0 bui...
|
185
|
//test和 prod 环境
|
62d73041
xu
app-wx
|
186
|
if ($appUser->isGuest){
|
3a892ee0
xu
app-wx(v0.1.0 bui...
|
187
188
|
header("Location: " . $baseURL . "/user#login" );
exit;
|
62d73041
xu
app-wx
|
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
|
}
}
/**
* @return yii\web\Response
*/
private function handleOAuthRedirect()
{
$sn = Yii::$app->request->get("sn");
//Yii::$app->response->redirect($OAuthUrl)->send();
//Yii::$app->end();
}
/**
* 是否是IOS端
* 是否通过微信客户端来访问
* LOG 记录时发现,
* 在微信公众号里面第一次访问: $_SERVER ['HTTP_USER_AGENT'] 为 Mozilla/4.0
* 第二次访问: $_SERVER ['HTTP_USER_AGENT'] 为
* 苹果:
* Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13E238 MicroMessenger/6.3.16 NetType/WIFI Language/zh_CN
* 安卓(小米NOTE):
* Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9b4) Gecko/2008030317 Firefox/3.0b4
* @return bool
*/
protected function isAndroid()
{
// if(false !== strpos($_SERVER ['HTTP_USER_AGENT'], 'Android') || !isset($_SERVER ['HTTP_USER_AGENT'])){
// return true;
// } else {
// return false;
// }
return true;
}
|
62d73041
xu
app-wx
|
227
228
229
230
231
232
233
234
235
236
237
238
239
|
/**
* 初始化web目录文件夹, 完成自动创建
*/
private function initTempFilePaths()
{
// 临时文件
$webRoot = Yii::getAlias('@webroot');
$tmpFilePath = $webRoot . '/tmp';
if (!is_dir($tmpFilePath)) {
mkdir($tmpFilePath, 0777, true);
}
}
}
|