在config文件夹里新增 lh.php配置文件
<?php
return [
'appid' => '',
'appSecret' => '',
'gzhid' => '',
'gzhkey' => '',
'server' => ''
];
微信公众号/小程序消息提醒 发送提醒
<?php
declare (strict_types = 1);
namespace app\api\controller;
use think\facade\Db;
use think\facade\Env;
use think\facade\Request;
use think\facade\Log;
use think\facade\Cache;
class Template
{
public function getGZHAccessToken($server, $fresh){
$access_token = Cache::get($server.'gzh_access_token');
if(!$access_token || $fresh){
$config = [
'appid' => config("$server.gzhid"),
'secret' => config("$server.gzhkey"),
'grant_type' => 'client_credential'
];
$response = $this->curlPost('https://api.weixin.qq.com/cgi-bin/token',$config);
$data = json_decode($response, true);
$access_token = $data["access_token"];
Cache::set($server.'gzh_access_token', $access_token, $data["expires_in"] - 200);
}
return $access_token;
}
function getAppletsAccessToken($server, $fresh){
$access_token = Cache::get($server.'access_token');
if(!$access_token || $fresh){
$config = [
'appid' => config("$server.appid"),
'secret' => config("$server.appSecret"),
'grant_type' => 'client_credential'
];
$response = $this->curlPost('https://api.weixin.qq.com/cgi-bin/token',$config);
$data = json_decode($response, true);
$access_token = $data["access_token"];
Cache::set($server.'access_token', $access_token, $data["expires_in"] - 200);
}
return $access_token;
}
function sendRemind(){
$rvData=array("success"=>false,"data"=>[],"message"=>"","code"=>200);
$post = file_get_contents('php://input');
$postData = json_decode($post, true);
$server = isset($postData['server']) ? $postData['server'] : null;
$msg_id = isset($postData['msg_id']) ? $postData['msg_id'] : null;
$cls = isset($postData['cls']) ? $postData['cls'] : null;
$url = config("$server.server");
$params = array_diff_key($postData, ['server' => true]);
$params = array_diff_key($postData, ['cls' => true]);
$params = array_diff_key($postData, ['msg_id' => true]);
$params['miniprogram']['appid'] = config("$server.appid");
if($cls == 0){
$access_token = $this->getGZHAccessToken($server,false);
$access_token = $this->getGZHAccessToken($server,true);
}
if($cls == 1) {
$access_token = $this->getAppletsAccessToken($server,false);
$access_token = $this->getAppletsAccessToken($server,true);
}
$response = Request::curl("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$access_token,json_encode($params),true,true);
$rvData['data'] = json_decode($response, true);
$rvData['success'] = true;
if($rvData['data']['errmsg'] == 'ok') {
}else {
}
return json($rvData);
}
function generate($item,$res2,$server){
$params = null;
if($item->msg_cls == 13) {
$timestamp = strtotime($res2->就诊时间);
$formattedDateTime = date('Y-m-d H:i', $timestamp);
$params = array(
'server' => $server,
'cls' => 0,
'msg_id' => $item->id,
'touser' => $item->openid,
'template_id' => $item->temp_id,
'url'=> '',
'miniprogram'=>array(
'pagepath' => ''
),
'client_msg_id'=> '',
'data'=>array(
'time5' =>array(
'value' => $formattedDateTime
),
'thing4' =>array(
'value' => $res2->就诊医生
),
'thing2' =>array(
'value' => $res2->就诊科室
),
'thing1' =>array(
'value' => $res2->就诊人
),
'thing6' =>array(
'value' => $res2->就诊医院
),
),
);
}
if (is_array($params)) {
$response = Request::curl("https://api.ecom20200909.com/Template/sendRemind",json_encode($params),true,true);
} else {
return false;
}
}
function timingCheckRemind(){
$server = 'lh';
$url = config("$server.server");
$data["function"] = "app_get_weixin_message";
$data["fendian_id"] = 0;
$data["db"] = "mssql";
$res = json_decode(Request::curl($url,json_encode($data),true,false));
if ($res && isset($res->success) && $res->success && isset($res->resultset) && is_array($res->resultset)) {
foreach ($res->resultset as $item) {
if($item->tixing_flag == 0) {
$data1["function"] = "saas_get_weixin_message_detail";
$data1["db"] = "mssql";
$data1['login_id'] = 0;
$data1['msg_id'] = $item->id;
$data1['msg_cls'] = $item->msg_cls;
$data1['remark'] = '';
$res1 = json_decode(Request::curl($url,json_encode($data1),true,false));
if($res1->resultset && $res1->resultset[0]) {
$res2 = $res1->resultset[0];
$this->generate($item,$res2,$server);
}
}
}
} else {
return '数据解析失败或格式不正确';
}
}
}