hy-farm/muchang/common/utils/EasyWeChatApplication.php
2026-05-29 19:54:56 +08:00

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;
}
}