1
This commit is contained in:
parent
36b4c5eac5
commit
6f762dc249
@ -7,9 +7,9 @@ use app\applet\model\User as UserModel;
|
|||||||
use app\common\model\Setting;
|
use app\common\model\Setting;
|
||||||
use app\common\model\Applet;
|
use app\common\model\Applet;
|
||||||
use app\common\model\Wechat;
|
use app\common\model\Wechat;
|
||||||
use Requests;
|
|
||||||
use think\facade\Cache;
|
use think\facade\Cache;
|
||||||
use hema\Http;
|
use hema\Http;
|
||||||
|
use think\facade\Db;
|
||||||
|
|
||||||
class Index
|
class Index
|
||||||
{
|
{
|
||||||
@ -29,62 +29,65 @@ class Index
|
|||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
|
|
||||||
if (isset($_GET['echostr'])) {
|
if (isset($_GET['echostr'])) {
|
||||||
echo $_GET["echostr"];
|
echo $_GET["echostr"];
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//接收微信推送数据
|
//接收微信推送数据
|
||||||
$nonce = empty ($_GET ['nonce']) ? "" : trim($_GET ['nonce']);
|
$data = file_get_contents('php://input');
|
||||||
$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__);
|
// $data = simplexml_load_string($data, "SimpleXMLElement", LIBXML_NOCDATA);
|
||||||
|
if (!empty($data)) {
|
||||||
die('success');
|
$data = json_decode($data, true);
|
||||||
|
if (!empty($data)) {
|
||||||
|
//首次关注
|
||||||
$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') {
|
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;
|
$wx = new Driver;
|
||||||
if ($wechat_user = $wx->getWechatUserInfo($data['FromUserName'], 10001)) {
|
$access_token = $wx->getAccessToken(10001);
|
||||||
//用户操作
|
$url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=' . $access_token;
|
||||||
$model = new UserModel;
|
$queryarr = [
|
||||||
if ($user = $model->subscribe($wechat_user, $this->wechat['applet_id'])) {
|
'msgtype' => 'news',
|
||||||
|
'news' => [
|
||||||
|
'articles' => [
|
||||||
|
'title' => '您有一张新的优惠券,请及时领取',
|
||||||
|
'picurl' => '',
|
||||||
|
'url' => 'https://www.baidu.com',
|
||||||
|
'description' => '黄辛一新人优惠,首次关注赠送优惠券'
|
||||||
|
]
|
||||||
|
]
|
||||||
|
];
|
||||||
|
$queryarr['touser'] = $data['FromUserName'];
|
||||||
|
Http::post($url, hema_json($queryarr));
|
||||||
|
|
||||||
}
|
}
|
||||||
} 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');
|
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
|
<?php
|
||||||
//000000000600
|
//000000000600
|
||||||
exit();?>
|
exit();?>
|
||||||
1701848041
|
1701879149
|
||||||
Loading…
x
Reference in New Issue
Block a user