You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

662 lines
24 KiB

7 years ago
7 years ago
7 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
6 years ago
7 years ago
6 years ago
7 years ago
6 years ago
7 years ago
7 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
  1. <?php
  2. namespace App\Http\Controllers\Weixin;
  3. use App\Http\Controllers\Weixin\CommonController;
  4. use Illuminate\Http\Request;
  5. use App\Common\ReturnCode;
  6. use App\Common\ReturnData;
  7. use App\Common\Wechat\WechatAuth;
  8. use App\Common\Helper;
  9. class UserController extends BaseController
  10. {
  11. public function __construct()
  12. {
  13. parent::__construct();
  14. }
  15. //个人中心
  16. public function index(Request $request)
  17. {
  18. //$_SESSION['weixin_user_info']['access_token'] = '72d623d26a1a6d61186a97f9ccf752f7';
  19. //获取会员信息
  20. $postdata = array(
  21. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  22. );
  23. $url = env('APP_API_URL') . "/user_info";
  24. $res = curl_request($url, $postdata, 'GET');
  25. $data['user_info'] = $res['data'];
  26. if ($res['code'] != ReturnData::SUCCESS) {
  27. unset($_SESSION['weixin_user_info']);
  28. $this->error_jump('请先登录', route('weixin_login'));
  29. }
  30. return view('weixin.user.index', $data);
  31. }
  32. //个人中心设置
  33. public function userinfo(Request $request)
  34. {
  35. //获取会员信息
  36. $postdata = array(
  37. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  38. );
  39. $url = env('APP_API_URL') . "/user_info";
  40. $res = curl_request($url, $postdata, 'GET');
  41. $data['user_info'] = $res['data'];
  42. return view('weixin.user.userinfo', $data);
  43. }
  44. //我的分销
  45. public function userDistribution(Request $request)
  46. {
  47. //获取会员信息
  48. $postdata = array(
  49. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  50. );
  51. $url = env('APP_API_URL') . "/user_info";
  52. $res = curl_request($url, $postdata, 'GET');
  53. $data['user_info'] = $res['data'];
  54. //获取直属下级会员列表
  55. $pagesize = 10;
  56. $offset = 0;
  57. if (isset($_REQUEST['page'])) {
  58. $offset = ($_REQUEST['page'] - 1) * $pagesize;
  59. }
  60. $postdata = array(
  61. 'limit' => $pagesize,
  62. 'offset' => $offset,
  63. 'parent_id' => $_SESSION['weixin_user_info']['id'],
  64. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  65. );
  66. $url = env('APP_API_URL') . "/user_list";
  67. $res = curl_request($url, $postdata, 'GET');
  68. $data['list'] = $res['data']['list'];
  69. $data['totalpage'] = ceil($res['data']['count'] / $pagesize);
  70. if (isset($_REQUEST['page_ajax']) && $_REQUEST['page_ajax'] == 1) {
  71. $html = '';
  72. if ($res['data']['list']) {
  73. foreach ($res['data']['list'] as $k => $v) {
  74. $html .= '<li><span class="goods_thumb" style="width:72px;height:72px;"><img style="width:72px;height:72px;" alt="' . $v['user_name'] . '" src="' . $v['head_img'] . '"></span>';
  75. $html .= '<div class="goods_info"><p class="goods_tit">' . $v['user_name'] . '</p>';
  76. $html .= '<p style="line-height:24px;">佣金:' . $v['commission'] . '</p>';
  77. $html .= '<p style="line-height:24px;">注册时间:' . date('Y-m-d', $v['add_time']) . '</p>';
  78. $html .= '</div></li>';
  79. }
  80. }
  81. exit(json_encode($html));
  82. }
  83. return view('weixin.user.userDistribution', $data);
  84. }
  85. //资金管理
  86. public function userAccount(Request $request)
  87. {
  88. $postdata = array(
  89. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  90. );
  91. $url = env('APP_API_URL') . "/user_info";
  92. $res = curl_request($url, $postdata, 'GET');
  93. $data['user_info'] = $res['data'];
  94. return view('weixin.user.userAccount', $data);
  95. }
  96. //提现
  97. public function userWithdraw(Request $request)
  98. {
  99. $postdata = array(
  100. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  101. );
  102. $url = env('APP_API_URL') . "/user_info";
  103. $res = curl_request($url, $postdata, 'GET');
  104. $data['user_info'] = $res['data'];
  105. $data['is_withdraw'] = 0; //是否达到可提现要求,0否
  106. $data['min_withdraw_money'] = sysconfig('CMS_MIN_WITHDRAWAL_MONEY'); //最低可提现金额
  107. if ($data['user_info']['money'] >= $data['min_withdraw_money']) {
  108. $data['is_withdraw'] = 1;
  109. }
  110. return view('weixin.user.userWithdraw', $data);
  111. }
  112. //提现明细
  113. public function userWithdrawList(Request $request)
  114. {
  115. $pagesize = 10;
  116. $offset = 0;
  117. if (isset($_REQUEST['page'])) {
  118. $offset = ($_REQUEST['page'] - 1) * $pagesize;
  119. }
  120. $postdata = array(
  121. 'limit' => $pagesize,
  122. 'offset' => $offset,
  123. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  124. );
  125. $url = env('APP_API_URL') . "/user_withdraw_list";
  126. $res = curl_request($url, $postdata, 'GET');
  127. $data['list'] = $res['data']['list'];
  128. $data['totalpage'] = ceil($res['data']['count'] / $pagesize);
  129. if (isset($_REQUEST['page_ajax']) && $_REQUEST['page_ajax'] == 1) {
  130. $html = '';
  131. if ($res['data']['list']) {
  132. foreach ($res['data']['list'] as $k => $v) {
  133. $html .= '<li>';
  134. $html .= '<span class="green">- ' . $v['money'] . '</span>';
  135. $html .= '<div class="info"><p class="tit">提现</p>';
  136. $html .= '<p class="des">收款账号:' . $v['name'] . ' ,提现方式:' . $v['method'] . ' ,姓名:' . $v['name'] . '<br>状态:<font color="red">' . $v['status_text'] . '</font></p>';
  137. $html .= '<p class="time">' . date('Y-m-d H:i:s', $v['add_time']) . '</p></div>';
  138. $html .= '</li>';
  139. }
  140. }
  141. exit(json_encode($html));
  142. }
  143. return view('weixin.user.userWithdrawList', $data);
  144. }
  145. //用户充值
  146. public function userRecharge(Request $request)
  147. {
  148. return view('weixin.user.userRecharge');
  149. }
  150. //充值明细
  151. public function userRechargeOrder(Request $request)
  152. {
  153. $pagesize = 10;
  154. $offset = 0;
  155. if (isset($_REQUEST['page'])) {
  156. $offset = ($_REQUEST['page'] - 1) * $pagesize;
  157. }
  158. $postdata = array(
  159. 'limit' => $pagesize,
  160. 'offset' => $offset,
  161. 'status' => 1,
  162. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  163. );
  164. $url = env('APP_API_URL') . "/user_recharge_list";
  165. $res = curl_request($url, $postdata, 'GET');
  166. $data['list'] = $res['data']['list'];
  167. $data['totalpage'] = ceil($res['data']['count'] / $pagesize);
  168. if (isset($_REQUEST['page_ajax']) && $_REQUEST['page_ajax'] == 1) {
  169. $html = '';
  170. if ($res['data']['list']) {
  171. foreach ($res['data']['list'] as $k => $v) {
  172. $html .= '<li>';
  173. $html .= '<span class="green">+ ' . $v['money'] . '</span>';
  174. $html .= '<div class="info"><p class="tit">充值</p>';
  175. $html .= '<p class="time">' . date('Y-m-d H:i:s', $v['created_at']) . '</p></div>';
  176. $html .= '</li>';
  177. }
  178. }
  179. exit(json_encode($html));
  180. }
  181. return view('weixin.user.userRechargeOrder', $data);
  182. }
  183. //用户充值第二步,支付
  184. public function userRechargeOrderDetail(Request $request)
  185. {
  186. $id = $request->input('id', '');
  187. if ($id == '') {
  188. $this->error_jump(ReturnData::PARAMS_ERROR);
  189. }
  190. //获取充值记录详情
  191. $postdata = array(
  192. 'id' => $id,
  193. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  194. );
  195. $url = env('APP_API_URL') . "/user_recharge_detail";
  196. $res = curl_request($url, $postdata, 'GET');
  197. $user_recharge = $data['post'] = $res['data'];
  198. //微信支付-start
  199. require_once(resource_path('org/wxpay/WxPayConfig.php')); // 导入微信配置类
  200. require_once(resource_path('org/wxpay/WxPayPubHelper.class.php')); // 导入微信支付类
  201. $body = '充值';//订单详情
  202. $out_trade_no = $user_recharge['recharge_sn'];//订单号
  203. $total_fee = floatval($user_recharge['money'] * 100);//价格0.01
  204. $attach = 'pay_type=1'; //附加数据,pay_type=1充值支付,示例:xxx=1&yyy=2
  205. $notify_url = route('notify_wxpay_jsapi');//通知地址
  206. $wxconfig = \WxPayConfig::wxconfig();
  207. //=========步骤1:网页授权获取用户openid============
  208. $jsApi = new \JsApi_pub($wxconfig);
  209. $openid = $jsApi->getOpenid();
  210. //=========步骤2:使用统一支付接口,获取prepay_id============
  211. //使用统一支付接口
  212. $unifiedOrder = new \UnifiedOrder_pub($wxconfig);
  213. //设置统一支付接口参数
  214. //设置必填参数
  215. //appid已填,商户无需重复填写
  216. //mch_id已填,商户无需重复填写
  217. //noncestr已填,商户无需重复填写
  218. //spbill_create_ip已填,商户无需重复填写
  219. //sign已填,商户无需重复填写
  220. $unifiedOrder->setParameter("openid", "$openid");//微信用户
  221. $unifiedOrder->setParameter("body", "$body");//商品描述
  222. $unifiedOrder->setParameter("out_trade_no", "$out_trade_no");//商户订单号
  223. $unifiedOrder->setParameter("total_fee", "$total_fee");//总金额
  224. $unifiedOrder->setParameter("attach", "$attach"); //附加数据,选填,在查询API和支付通知中原样返回,可作为自定义参数使用,示例:a=1&b=2
  225. $unifiedOrder->setParameter("notify_url", "$notify_url");//通知地址
  226. $unifiedOrder->setParameter("trade_type", "JSAPI");//交易类型
  227. $prepay_id = $unifiedOrder->getPrepayId();
  228. //=========步骤3:使用jsapi调起支付============
  229. $jsApi->setPrepayId($prepay_id);
  230. $jsApiParameters = $jsApi->getParameters();
  231. $data['jsApiParameters'] = $jsApiParameters;
  232. $data['returnUrl'] = route('weixin_user_recharge_order'); //支付完成要跳转的url
  233. return view('weixin.user.userRechargeOrderDetail', $data);
  234. }
  235. //余额明细
  236. public function userMoneyList(Request $request)
  237. {
  238. $pagesize = 10;
  239. $offset = 0;
  240. if (isset($_REQUEST['page'])) {
  241. $offset = ($_REQUEST['page'] - 1) * $pagesize;
  242. }
  243. $postdata = array(
  244. 'limit' => $pagesize,
  245. 'offset' => $offset,
  246. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  247. );
  248. $url = env('APP_API_URL') . "/user_money_list";
  249. $res = curl_request($url, $postdata, 'GET');
  250. $data['list'] = $res['data']['list'];
  251. $data['totalpage'] = ceil($res['data']['count'] / $pagesize);
  252. if (isset($_REQUEST['page_ajax']) && $_REQUEST['page_ajax'] == 1) {
  253. $html = '';
  254. if ($res['data']['list']) {
  255. foreach ($res['data']['list'] as $k => $v) {
  256. $html .= '<li>';
  257. if ($v['type'] == 0) {
  258. $html .= '<span class="green">+ ' . $v['money'] . '</span>';
  259. } else {
  260. $html .= '<span>- ' . $v['money'] . '</span>';
  261. }
  262. $html .= '<div class="info"><p class="tit">' . $v['des'] . '</p>';
  263. $html .= '<p class="time">' . date('Y-m-d H:i:s', $v['add_time']) . '</p></div>';
  264. $html .= '</li>';
  265. }
  266. }
  267. exit(json_encode($html));
  268. }
  269. return view('weixin.user.userMoneyList', $data);
  270. }
  271. //积分明细
  272. public function userPointList(Request $request)
  273. {
  274. $pagesize = 10;
  275. $offset = 0;
  276. if (isset($_REQUEST['page'])) {
  277. $offset = ($_REQUEST['page'] - 1) * $pagesize;
  278. }
  279. $postdata = array(
  280. 'limit' => $pagesize,
  281. 'offset' => $offset,
  282. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  283. );
  284. $url = env('APP_API_URL') . "/user_point_list";
  285. $res = curl_request($url, $postdata, 'GET');
  286. $data['list'] = $res['data']['list'];
  287. $data['totalpage'] = ceil($res['data']['count'] / $pagesize);
  288. if (isset($_REQUEST['page_ajax']) && $_REQUEST['page_ajax'] == 1) {
  289. $html = '';
  290. if ($res['data']['list']) {
  291. foreach ($res['data']['list'] as $k => $v) {
  292. $html .= '<li>';
  293. if ($v['type'] == 0) {
  294. $html .= '<span class="green">+ ' . $v['point'] . '</span>';
  295. } else {
  296. $html .= '<span>- ' . $v['point'] . '</span>';
  297. }
  298. $html .= '<div class="info"><p class="tit">' . $v['des'] . '</p>';
  299. $html .= '<p class="time">' . date('Y-m-d H:i:s', $v['add_time']) . '</p></div>';
  300. $html .= '</li>';
  301. }
  302. }
  303. exit(json_encode($html));
  304. }
  305. return view('weixin.user.userPointList', $data);
  306. }
  307. //用户优惠券列表
  308. public function userBonusList(Request $request)
  309. {
  310. //商品列表
  311. $pagesize = 10;
  312. $offset = 0;
  313. if (isset($_REQUEST['page'])) {
  314. $offset = ($_REQUEST['page'] - 1) * $pagesize;
  315. }
  316. $postdata = array(
  317. 'limit' => $pagesize,
  318. 'offset' => $offset,
  319. 'status' => 0,
  320. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  321. );
  322. $url = env('APP_API_URL') . "/user_bonus_list";
  323. $res = curl_request($url, $postdata, 'GET');
  324. $data['list'] = $res['data']['list'];
  325. $data['totalpage'] = ceil($res['data']['count'] / $pagesize);
  326. if (isset($_REQUEST['page_ajax']) && $_REQUEST['page_ajax'] == 1) {
  327. $html = '';
  328. if ($res['data']['list']) {
  329. foreach ($res['data']['list'] as $k => $v) {
  330. $html .= '<div class="flow-have-adr">';
  331. $html .= '<p class="f-h-adr-title">' . $v['bonus']['name'] . '</label><span class="ect-colory fr"><small>¥</small>' . $v['bonus']['money'] . '</span><div class="cl"></div></p>';
  332. $html .= '<p class="f-h-adr-con">有效期至' . $v['bonus']['end_time'] . ' <span class="fr">满' . $v['bonus']['min_amount'] . '可用</span></p>';
  333. //$html .= '<div class="adr-edit-del">说明</div>';
  334. $html .= '</div>';
  335. }
  336. }
  337. exit(json_encode($html));
  338. }
  339. return view('weixin.user.userBonusList', $data);
  340. }
  341. //用户消息
  342. public function userMessageList(Request $request)
  343. {
  344. $pagesize = 10;
  345. $offset = 0;
  346. if (isset($_REQUEST['page'])) {
  347. $offset = ($_REQUEST['page'] - 1) * $pagesize;
  348. }
  349. $postdata = array(
  350. 'limit' => $pagesize,
  351. 'offset' => $offset,
  352. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  353. );
  354. $url = env('APP_API_URL') . "/user_message_list";
  355. $res = curl_request($url, $postdata, 'GET');
  356. $data['list'] = $res['data']['list'];
  357. $data['totalpage'] = ceil($res['data']['count'] / $pagesize);
  358. if (isset($_REQUEST['page_ajax']) && $_REQUEST['page_ajax'] == 1) {
  359. $html = '';
  360. if ($res['data']['list']) {
  361. foreach ($res['data']['list'] as $k => $v) {
  362. $html .= '<li>';
  363. if ($v['title'] == 0) {
  364. $html .= '<p class="tit">' . $v['title'] . '</p>';
  365. }
  366. if ($v['des'] == 0) {
  367. $html .= '<p class="des">' . $v['des'] . '</p>';
  368. }
  369. $html .= '<p class="time">' . date('Y-m-d H:i:s', $v['add_time']) . '</p>';
  370. $html .= '</li>';
  371. }
  372. }
  373. exit(json_encode($html));
  374. }
  375. return view('weixin.user.userMessageList', $data);
  376. }
  377. //浏览记录
  378. public function userGoodsHistory(Request $request)
  379. {
  380. //商品列表
  381. $pagesize = 10;
  382. $offset = 0;
  383. if (isset($_REQUEST['page'])) {
  384. $offset = ($_REQUEST['page'] - 1) * $pagesize;
  385. }
  386. $postdata = array(
  387. 'limit' => $pagesize,
  388. 'offset' => $offset,
  389. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  390. );
  391. $url = env('APP_API_URL') . "/user_goods_history_list";
  392. $res = curl_request($url, $postdata, 'GET');
  393. $data['user_goods_history'] = $res['data']['list'];
  394. $data['totalpage'] = ceil($res['data']['count'] / $pagesize);
  395. if (isset($_REQUEST['page_ajax']) && $_REQUEST['page_ajax'] == 1) {
  396. $html = '';
  397. if ($res['data']['list']) {
  398. foreach ($res['data']['list'] as $k => $v) {
  399. $html .= '<li><a href="' . $v['goods']['goods_detail_url'] . '"><span class="goods_thumb"><img alt="' . $v['goods']['title'] . '" src="' . env('APP_URL') . $v['goods']['litpic'] . '"></span></a>';
  400. $html .= '<div class="goods_info"><p class="goods_tit">' . $v['goods']['title'] . '</p>';
  401. $html .= '<p class="goods_price">¥<b>' . $v['goods']['price'] . '</b></p>';
  402. $html .= '<p class="goods_des fr"><span id="del_history" onclick="delconfirm(\'' . route('weixin_user_goods_history_delete', array('id' => $v['id'])) . '\')">删除</span></p>';
  403. $html .= '</div></li>';
  404. }
  405. }
  406. exit(json_encode($html));
  407. }
  408. return view('weixin.user.userGoodsHistory', $data);
  409. }
  410. //浏览记录删除
  411. public function userGoodsHistoryDelete(Request $request)
  412. {
  413. $id = $request->input('id', '');
  414. if ($id == '') {
  415. $this->error_jump(ReturnData::PARAMS_ERROR);
  416. }
  417. $postdata = array(
  418. 'id' => $id,
  419. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  420. );
  421. $url = env('APP_API_URL') . "/user_goods_history_delete";
  422. $res = curl_request($url, $postdata, 'POST');
  423. if ($res['code'] != ReturnData::SUCCESS) {
  424. $this->error_jump(ReturnCode::FAIL);
  425. }
  426. $this->success_jump(ReturnCode::SUCCESS);
  427. }
  428. //浏览记录清空
  429. public function userGoodsHistoryClear(Request $request)
  430. {
  431. $postdata = array(
  432. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  433. );
  434. $url = env('APP_API_URL') . "/user_goods_history_clear";
  435. $res = curl_request($url, $postdata, 'POST');
  436. if ($res['code'] != ReturnData::SUCCESS) {
  437. $this->error_jump(ReturnCode::FAIL);
  438. }
  439. $this->success_jump(ReturnCode::SUCCESS);
  440. }
  441. //微信网页授权登录
  442. public function oauth(Request $request)
  443. {
  444. if (!isset($_SESSION['weixin_oauth']['userinfo'])) {
  445. $wechat_auth = new WechatAuth(sysconfig('CMS_WX_APPID'), sysconfig('CMS_WX_APPSECRET'));
  446. // 获取code码,用于和微信服务器申请token。 注:依据OAuth2.0要求,此处授权登录需要用户端操作
  447. if (!isset($_GET['code'])) {
  448. $http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
  449. $callback_url = $http_type . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; //回调地址,当前页面
  450. //生成唯一随机串防CSRF攻击
  451. $state = md5(uniqid(rand(), true));
  452. $_SESSION['weixin_oauth']['state'] = $state; //存到SESSION
  453. $authorize_url = $wechat_auth->get_authorize_url($callback_url, $state);
  454. header("Location: $authorize_url");
  455. exit;
  456. }
  457. // 依据code码去获取openid和access_token,自己的后台服务器直接向微信服务器申请即可
  458. $_SESSION['weixin_oauth']['code'] = $_GET['code'];
  459. if ($_GET['state'] != $_SESSION['weixin_oauth']['state']) {
  460. $this->error_jump('您访问的页面不存在或已被删除');
  461. }
  462. //得到 access_token 与 openid
  463. $_SESSION['weixin_oauth']['token'] = $wechat_auth->get_access_token($_GET['code']);
  464. // 依据申请到的access_token和openid,申请Userinfo信息。
  465. $_SESSION['weixin_oauth']['userinfo'] = $wechat_auth->get_user_info($_SESSION['weixin_oauth']['token']['access_token'], $_SESSION['weixin_oauth']['token']['openid']);
  466. }
  467. $post_data = array(
  468. 'openid' => $_SESSION['weixin_oauth']['userinfo']['openid'],
  469. 'unionid' => isset($_SESSION['weixin_oauth']['userinfo']['unionid']) ? $_SESSION['weixin_oauth']['userinfo']['unionid'] : '',
  470. 'nickname' => $_SESSION['weixin_oauth']['userinfo']['nickname'],
  471. 'sex' => $_SESSION['weixin_oauth']['userinfo']['sex'],
  472. 'head_img' => $_SESSION['weixin_oauth']['userinfo']['headimgurl'],
  473. 'parent_id' => isset($_SESSION['weixin_user_invite_code']) ? $_SESSION['weixin_user_invite_code'] : 0,
  474. 'parent_mobile' => '',
  475. 'mobile' => ''
  476. );
  477. $url = env('APP_API_URL') . "/wx_oauth_register";
  478. $res = curl_request($url, $post_data, 'POST');
  479. if ($res['code'] != ReturnData::SUCCESS) {
  480. $this->error_jump('系统错误');
  481. }
  482. $_SESSION['weixin_user_info'] = $res['data'];
  483. header('Location: ' . route('weixin_user'));
  484. exit;
  485. }
  486. //登录
  487. public function login(Request $request)
  488. {
  489. if (isset($_SESSION['weixin_user_info'])) {
  490. if (isset($_SERVER["HTTP_REFERER"])) {
  491. header('Location: ' . $_SERVER["HTTP_REFERER"]);
  492. exit;
  493. }
  494. header('Location: ' . route('weixin_user'));
  495. exit;
  496. }
  497. $return_url = '';
  498. if (isset($_REQUEST['return_url']) && !empty($_REQUEST['return_url'])) {
  499. $return_url = $_SESSION['weixin_history_back_url'] = $_REQUEST['return_url'];
  500. }
  501. if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  502. if ($_POST['user_name'] == '') {
  503. $this->error_jump('账号不能为空');
  504. }
  505. if ($_POST['password'] == '') {
  506. $this->error_jump('密码不能为空');
  507. }
  508. $postdata = array(
  509. 'user_name' => $_POST['user_name'],
  510. 'password' => md5($_POST['password'])
  511. );
  512. $url = env('APP_API_URL') . "/wx_login";
  513. $res = curl_request($url, $postdata, 'POST');
  514. if ($res['code'] != ReturnData::SUCCESS) {
  515. $this->error_jump('登录失败');
  516. }
  517. $_SESSION['weixin_user_info'] = $res['data'];
  518. if ($return_url != '') {
  519. header('Location: ' . $return_url);
  520. exit;
  521. }
  522. header('Location: ' . route('weixin_user'));
  523. exit;
  524. }
  525. return view('weixin.user.login');
  526. }
  527. //注册
  528. public function register(Request $request)
  529. {
  530. if (isset($_SESSION['weixin_user_info'])) {
  531. if (isset($_SERVER["HTTP_REFERER"])) {
  532. header('Location: ' . $_SERVER["HTTP_REFERER"]);
  533. exit;
  534. }
  535. header('Location: ' . route('weixin_user'));
  536. exit;
  537. }
  538. $return_url = '';
  539. if (isset($_REQUEST['return_url']) && !empty($_REQUEST['return_url'])) {
  540. $_SESSION['weixin_history_back_url'] = $_REQUEST['return_url'];
  541. }
  542. if (isset($_REQUEST['invite_code']) && !empty($_REQUEST['invite_code'])) {
  543. $_SESSION['weixin_user_invite_code'] = $_REQUEST['invite_code'];
  544. } //推荐人id存在session,首页入口也存了一次
  545. return view('weixin.user.register');
  546. }
  547. public function logout(Request $request)
  548. {
  549. session_unset();
  550. session_destroy(); // 退出登录,清除session
  551. $this->success_jump('退出成功', route('weixin'));
  552. }
  553. }