1
This commit is contained in:
parent
36b4c5eac5
commit
6f762dc249
1894
app/common.php
1894
app/common.php
File diff suppressed because it is too large
Load Diff
@ -1,91 +1,94 @@
|
||||
<?php
|
||||
|
||||
namespace hema\wechat;
|
||||
|
||||
use app\applet\model\Setting as SettingModel;
|
||||
use app\applet\model\User as UserModel;
|
||||
use app\common\model\Setting;
|
||||
use app\common\model\Applet;
|
||||
use app\common\model\Wechat;
|
||||
use Requests;
|
||||
use think\facade\Cache;
|
||||
use hema\Http;
|
||||
|
||||
class Index
|
||||
{
|
||||
private $config;
|
||||
private $error;
|
||||
|
||||
/**
|
||||
* 构造函数
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
$config = [
|
||||
'app_id' => 'wx89c12dd426a55a2e',
|
||||
'appSecret' => '33e66bcf944f9810abbb5ddd7825403d',
|
||||
'token' => 'cxhxy',
|
||||
|
||||
];
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
|
||||
if (isset($_GET['echostr'])) {
|
||||
echo $_GET["echostr"];
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
//接收微信推送数据
|
||||
$nonce = empty ($_GET ['nonce']) ? "" : trim($_GET ['nonce']);
|
||||
$signature = empty ($_GET['signature']) ? "" : trim($_GET ['signature']);
|
||||
$timeStamp = empty ($_GET ['timestamp']) ? "" : trim($_GET ['timestamp']);
|
||||
$msg_signature = empty ($_GET['msg_signature']) ? "" : trim($_GET ['msg_signature']);
|
||||
$encryptMsg = file_get_contents('php://input');
|
||||
|
||||
write_log($encryptMsg, __DIR__);
|
||||
|
||||
die('success');
|
||||
|
||||
|
||||
$pc = new WxBizMsgCrypt();//创建解密类
|
||||
$msg = '';
|
||||
$errCode = $pc->decryptMsg($msg_signature, $timeStamp, $nonce, $encryptMsg, $msg);
|
||||
if ($errCode == 0) {
|
||||
$data = _xml_to_arr($msg); //XML转换为数组
|
||||
|
||||
//首次关注公众号
|
||||
if ($data['MsgType'] == 'event') {
|
||||
if ($data['Event'] == 'subscribe') {
|
||||
$wx = new Driver;
|
||||
if ($wechat_user = $wx->getWechatUserInfo($data['FromUserName'], 10001)) {
|
||||
//用户操作
|
||||
$model = new UserModel;
|
||||
if ($user = $model->subscribe($wechat_user, $this->wechat['applet_id'])) {
|
||||
|
||||
}
|
||||
} else {
|
||||
//返回文本提醒
|
||||
$wx->sendServiceMsg([
|
||||
'type' => 'text',
|
||||
'content' => $wx->getError()
|
||||
], $data['FromUserName'], $this->wechat['applet_id']);
|
||||
}
|
||||
//是否设置了关注回复
|
||||
if ($subscribe = SettingModel::getItem('subscribe', $this->wechat['applet_id'])) {
|
||||
$this->replyMsg($subscribe, $data);//回复信息
|
||||
}
|
||||
die('success');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
namespace hema\wechat;
|
||||
|
||||
use app\applet\model\Setting as SettingModel;
|
||||
use app\applet\model\User as UserModel;
|
||||
use app\common\model\Setting;
|
||||
use app\common\model\Applet;
|
||||
use app\common\model\Wechat;
|
||||
use think\facade\Cache;
|
||||
use hema\Http;
|
||||
use think\facade\Db;
|
||||
|
||||
class Index
|
||||
{
|
||||
private $config;
|
||||
private $error;
|
||||
|
||||
/**
|
||||
* 构造函数
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
$config = [
|
||||
'app_id' => 'wx89c12dd426a55a2e',
|
||||
'appSecret' => '33e66bcf944f9810abbb5ddd7825403d',
|
||||
'token' => 'cxhxy',
|
||||
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
if (isset($_GET['echostr'])) {
|
||||
echo $_GET["echostr"];
|
||||
exit;
|
||||
}
|
||||
|
||||
//接收微信推送数据
|
||||
$data = file_get_contents('php://input');
|
||||
|
||||
// $data = simplexml_load_string($data, "SimpleXMLElement", LIBXML_NOCDATA);
|
||||
if (!empty($data)) {
|
||||
$data = json_decode($data, true);
|
||||
if (!empty($data)) {
|
||||
//首次关注
|
||||
if ($data['Event'] == 'subscribe') {
|
||||
$user = Db::name('food_user')->where('open_id', $data['FromUserName'])->value('is_new');
|
||||
if ($user !== 1) {
|
||||
//不是新关注
|
||||
die('success');
|
||||
} else {
|
||||
|
||||
//插入一条新用户数据
|
||||
$data = [
|
||||
'open_id' => $data['FromUserName'],
|
||||
'platform' => 10,
|
||||
'applet_id' => 10001,
|
||||
'create_time' => time()
|
||||
];
|
||||
Db::name('food_user')->insert($data);
|
||||
//发送公众号消息
|
||||
|
||||
$wx = new Driver;
|
||||
$access_token = $wx->getAccessToken(10001);
|
||||
$url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=' . $access_token;
|
||||
$queryarr = [
|
||||
'msgtype' => 'news',
|
||||
'news' => [
|
||||
'articles' => [
|
||||
'title' => '您有一张新的优惠券,请及时领取',
|
||||
'picurl' => '',
|
||||
'url' => 'https://www.baidu.com',
|
||||
'description' => '黄辛一新人优惠,首次关注赠送优惠券'
|
||||
]
|
||||
]
|
||||
];
|
||||
$queryarr['touser'] = $data['FromUserName'];
|
||||
Http::post($url, hema_json($queryarr));
|
||||
|
||||
}
|
||||
|
||||
die('success');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
12
extend/hema/wechat/logs/20231206.log
Normal file
12
extend/hema/wechat/logs/20231206.log
Normal file
@ -0,0 +1,12 @@
|
||||
[2023-12-06 18:11:51]
|
||||
222222222222222222
|
||||
|
||||
[2023-12-06 18:11:51]
|
||||
{"ToUserName":"gh_f3e7ab01d5bd","FromUserName":"oy5Wi6kx3rPhdeV001GbKcy-P9gk","CreateTime":"1701857511","MsgType":"event","Event":"unsubscribe","EventKey":{}}
|
||||
|
||||
[2023-12-06 18:11:54]
|
||||
222222222222222222
|
||||
|
||||
[2023-12-06 18:11:54]
|
||||
{"ToUserName":"gh_f3e7ab01d5bd","FromUserName":"oy5Wi6kx3rPhdeV001GbKcy-P9gk","CreateTime":"1701857514","MsgType":"event","Event":"subscribe","EventKey":{}}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<?php
|
||||
//000000000600
|
||||
exit();?>
|
||||
1701848041
|
||||
1701879149
|
||||
Loading…
x
Reference in New Issue
Block a user