Init Repo

This commit is contained in:
root
2019-09-06 23:53:10 +08:00
commit f0ef89dfbb
7905 changed files with 914138 additions and 0 deletions

214
wxtmp/pptWXBase.php Executable file
View File

@ -0,0 +1,214 @@
<?php
require '../vendor/wechat/vendor/autoload.php';
class pptWXBase
{
protected $openid;
public function __construct(){
session_start();
//$_SESSION['openid'] = null;
if(!isset($_SESSION['openid'])){
$openid = $this->getHeaderValue('openid');
if(empty($openid)){
//去登录
$code = isset($_GET['code']) ? $_GET['code'] : '';
$this->wxLogin($code);
exit();
}else{
//已经有openid了不用登录
$_SESSION['openid'] = $openid;
}
}
$this->openid = $_SESSION['openid'];
}
/**
* 获取请求头
* @param [string] $keyName [头名]
* @return [string] [头值]
*/
public function getHeaderValue($keyName){
$headerValue = '';
if (function_exists('apache_request_headers') && $result = apache_request_headers()) {
$headerValue = $result[$keyName];
} else {
foreach ($_SERVER as $key => $val) {
if (0 === strpos($key, 'HTTP_')) {
$key = str_replace('_', '-', strtolower(substr($key, 5)));
if($key == $keyName){
$headerValue = $val;
break;
}
}
}
}
return $headerValue;
}
/**
* 调用微信登录
* @return [type] [description]
*/
public function wxLogin($code){
//登录过程
if(!$code){
//调取授权
$this->getAuth();
}else{
//获取openid同时获取用户信息
$authInfo = $this->getOpenid($code,true);
if(isset($authInfo['openid'])){
$_SESSION['openid'] = $authInfo['openid'];
$this->openid = $_SESSION['openid'];
echo "<script>document.location.reload()</script>";exit();
}
}
}
/**
*第一步用户同意授权获取code
*getAuth();
*第二步通过code换取网页授权access_token
*getOpenid($code,$type=false){
*第三步:拉取用户信息(需scope为 snsapi_userinfo)
*微信用户信息
*第一种直接在第二步获取openid时获取
*getOpenid($code,$type=true);
*第二种 通过用户授权accress_token获取
*getUserInfo($userAuthAccessToken, $openid);
*第三种 通过公众号accressToken获取
*getUserInfoByToken($accessToken, $openid)
*
*
*/
/**
* 获取用户授权CODE回调为当前地址需要判断Code
*
*/
public function getAuth(){
\WeChat\Core\User::code(); # 重载微信授权
}
/**
* 通过code获取openidaccess_token或用户信息
* @param [string] $code [用户授权code]
* @param [string] $type [true:同时获取用户信息 | false:只获取用户openid]
* @return [string] [openid]
*/
public function getOpenid($code, $type=false){
return \WeChat\Core\User::openid($code, $type);
}
/**
* 通过用户授权access_token获取用户信息
* @param [string] $userAuthAaccessToken [用户授权access_token]
* @param [string] $openid [用户openid]
* @return [array] []
*/
public function getUserInfo($userAuthAccessToken, $openid){
return \WeChat\Core\User::userInfo($userAuthAccessToken, $openid);
}
/**
* 通过公众号accessToken获取用户信息
* @param [string] $accessToken [公众号access_token]
* @param [string] $openid [用户openid]
* @return [array] []
*/
public function getUserInfoByToken($openid){
return \WeChat\Core\User::newUserInfo($openid);
}
/**
* 获取公众号下所有模板信息
* @return [array] [模板列表]
*/
public function getAllTemplateMsg(){
$accessToken = $this->getAccessToken();
return \WeChat\Core\Template::gain($accessToken);
}
/**
* 获取用户accessToken
* @return [string] accessToken
*/
public function getAccessToken(){
$accessToken = \WeChat\Core\Token::gain(); # 获取微信access_token
$accessToken = $accessToken['access_token'];
return $accessToken;
}
/**
* 发送模板消息
* @param [string] $templateId [模板ID]
* @param [string] $openid [用户openid]
* @param [array] $data [消息数据]
* @param [string] $url [点击跳转地址]
* @param string $color [标题颜色]
* @return [array] 消息是否成功发送
* errcode: 0成功其他失败
* errmsg: 错误信息ok成功其他失败
* msgid: 消息id
*
*/
public function sendTemplateMsg($templateId, $openid, $data, $url, $color = '#7B68EE'){
//\WeChat\Core\User::code($appID); # 重载微信授权
$accessToken = $this->getAccessToken();
return \WeChat\Core\Send::push($accessToken, $templateId, $openid, $data, $url, $color);
}
}
// $templateId = 'ObkTv-txyqsv8Toie4HC8PnBFJmwygw9zPJbx8h0FcM';
// $openid = 'objYQuHNqKTi2sjSTzLTc7C7PjDo';
// $url = 'http://t.ect99.com';
// //模板消息
// $data = [
// 'first'=>['value'=>'您的活动已通过','color'=>"#FF0000"],
// 'keyword1'=>['value'=>'测试文章标题'], //keyword需要与配置的模板消息对应
// 'keyword2'=>['value'=>date("Y-m-d H:i:s")],
// 'keyword3'=>['value'=>'测试发布人'],
// 'keyword4'=>['value'=>'测试状态'],
// 'remark' =>['value'=>'备注:这是测试']
// ];
// var_dump(pptWX->sendTemplateMsg($templateId, $openid, $data, $url));
// //登录过程
// $code = isset($_GET['code']) ? $_GET['code'] : '';
// if(!$code){
// //调取授权
// pptWXBase::getAuth();
// }else{
// //获取授权信息只获取openid
// //$authInfo = pptWXBase::getOpenid($code);
// // 返回代码示例
// // array(5) {
// // ["access_token"]=>
// // string(89) "22_HQ4kM7_gbUZ-fGP1TnFLeh-wxk-jWyjc_PzrbYpICXyuGCNKWEi_Yz5_qnStDGP56I8OD4xJvNRVS98U1TC6Zw"
// // ["expires_in"]=>
// // int(7200)
// // ["refresh_token"]=>
// // string(89) "22_bdxpWwS0wADfSNO1y6Sq7txoWBK3hG4x3vvx_WOe-sovDig-yWZ43MsBtzJlY2svcxmlvLxKwBughKbJL14b8A"
// // ["openid"]=>
// // string(28) "objYQuHNqKTi2sjSTzLTc7C7PjDo"
// // ["scope"]=>
// // string(15) "snsapi_userinfo"
// // }
// //获取用户信息
// //通过授权token获取用户信息
// //$userInfo = pptWXBase::getUserInfo($authInfo['access_token'], $authInfo['openid']);
// //获取openid同时获取用户信息
// $authInfo = pptWXBase::getOpenid($code,true);
// // 返回代码示例
// // array(9) {
// // ["openid"]=>
// // string(28) "objYQuHNqKTi2sjSTzLTc7C7PjDo"
// // ["nickname"]=>
// // string(12) "网事悠悠"
// // ["sex"]=>
// // int(1)
// // ["language"]=>
// // string(5) "zh_CN"
// // ["city"]=>
// // string(6) "枣庄"
// // ["province"]=>
// // string(6) "山东"
// // ["country"]=>
// // string(6) "中国"
// // ["headimgurl"]=>
// // string(130) "http://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJW7ghRsPm6dJReYJ97lUMicgjQLVdSaPr3SKBZ29riaZ3KOFaw1nmKyt4LtibvN2FkzFTTESgetm9QQ/132"
// // ["privilege"]=>
// // array(0) {
// // }
// // }
// var_dump($authInfo);
// }