75 lines
1.8 KiB
PHP
75 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace common\utils;
|
|
|
|
use common\models\WeChatUser;
|
|
use EasyWeChat\Factory;
|
|
use EasyWeChat\OpenPlatform\Application;
|
|
use Yii;
|
|
use yii\web\Cookie;
|
|
|
|
/**
|
|
* 微信
|
|
* Created by PhpStorm.
|
|
* User: zn
|
|
* Date: 2017/6/26
|
|
* Time: 15:18
|
|
*/
|
|
class EasyWeChatApplication extends Application
|
|
{
|
|
public function __construct($config = null)
|
|
{
|
|
if (empty($config))
|
|
$config = require(__DIR__ . '/../config/easy-wechat.php');
|
|
|
|
parent::__construct($config);
|
|
}
|
|
|
|
public function oaApp()
|
|
{
|
|
$config = require(__DIR__ . '/../config/easy-wechat.php');
|
|
return Factory::officialAccount($config);
|
|
}
|
|
|
|
public function payApp()
|
|
{
|
|
$config = require(__DIR__ . '/../config/easy-wechat-pay.php');
|
|
return Factory::payment($config);
|
|
}
|
|
|
|
/**
|
|
* 获取网页微信用户授权信息
|
|
* @return WeChatUser
|
|
*/
|
|
public function getUserInfo()
|
|
{
|
|
$userInfo = Yii::$app->request->getCookies()->get('user_info');
|
|
$user = null;
|
|
if (!empty($userInfo)) $user = WeChatUser::fromJson($userInfo);
|
|
|
|
if (empty($user) || empty($user->openID)) {
|
|
//跳转到微信授权
|
|
Yii::warning("未授权");
|
|
YiiComponentUtil::easywechat()->oaApp()->oauth->redirect()->send();
|
|
die();
|
|
}
|
|
|
|
return $user;
|
|
}
|
|
|
|
/**
|
|
* 设置网页微信用户授权信息
|
|
*/
|
|
public function setUserInfo()
|
|
{
|
|
$user = YiiComponentUtil::easywechat()->oaApp()->oauth->user();
|
|
$userInfo = WeChatUser::fromWeChat($user);
|
|
Yii::$app->response->getCookies()->add(new Cookie([
|
|
'name' => 'user_info',
|
|
'value' => json_encode($userInfo),
|
|
'expire' => time() + 3600 * 24 * 7
|
|
]));
|
|
|
|
return $userInfo;
|
|
}
|
|
} |