作者 郭文星

123

... ... @@ -263,6 +263,7 @@ class Api extends Controller
$rs = Db::name('order')
->where(['order_no' => $data['out_trade_no']])
->update($order);
SendMessage($cks['id']);
//生成订单日志
if ($rs) {
... ...
... ... @@ -3,6 +3,10 @@
/**
* 首字母排序A-Z(含汉字)
*/
use app\admin\model\User;
use app\api\controller\v1\WxxcxPush;
if (!function_exists('getFirstChar')) {
function getFirstChar($s)
{
... ... @@ -140,4 +144,236 @@ if (!function_exists('getOrderSn')) {
}
return $orderid;
}
}
if(!function_exists('beingPushed')){
/**
* 发送模板消息
* @return void
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
function SendMessage($order_id){
$order=\think\Db::name("order")->find($order_id);
$wxxcxpush=new WxxcxPush();
$user=new User();
$user=$user->find($order['user_id']);
$res=$wxxcxpush->Message($user['wx_xcx_openid'],$order_id);
if ($res !== false) {
return $res;
}
}
}
if (!function_exists('beingPushed')) {
/**
* 小程序模板推送选择类型
* @param $type @模板类型
* @param $openid @接收人ID
* @param $page @跳转页面
* @param $temp @具体提醒参数
* @throws \think\Exception
* @throws \think\exception\PDOException
*/
function beingPushed($type, $openid, $page, $temp)
{
$data = [];
$data['touser'] = $openid;
$data['page'] = $page;
//模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
switch ($type) {
case 1:
//待审批事项提醒(新版本的长期订阅)
$data['template_id'] = "ws6bz6-WyHHA-upU2oRzc_C5toDUexe9ZicQ-ITtImA";
$data['data'] = [
"thing10" => [
'value' =>1,//审核状态(待处理)
],
"thing12" => [
'value' => 2,//申请人(测试黄超)
],
"thing8" => [
'value' => 3,//原因(入州报备审核)
]
];
break;
case 2:
//审核结果通知(新版本的长期订阅)
$data['template_id'] = "Qt2xqfH8uQyTm1A0ReNxeybtAydAhfhi4HinnyB5f0s";
$data['data'] = [
"thing1" => [
'value' => $temp['value1'],//提醒内容(已审核)
],
// "name1" => [
// 'value' => $temp['value2'],//审核人
// ],
"thing4" => [
'value' => $temp['value3'],//提示说明
]
];
break;
case 3:
//待审批事项提醒(老版本的一次性订阅)
$data['template_id'] = "vVOonN76AFjxgz77iG-hcWrH6HJ-vPGKyIyAK0VzPIk";
$data['data'] = [
"thing1" => [
'value' => $temp['value1'],//待办事项
],
"thing4" => [
'value' => $temp['value2'],//流程状态
],
"thing2" => [
'value' => $temp['value3'],//申请人
],
"time3" => [
'value' => $temp['value4'],//申请时间
],
"thing5" => [
'value' => $temp['value5'],//备注描述
]
];
break;
case 4:
//审核结果通知(老版本的一次性订阅)
$data['template_id'] = "yJRK0DZFuEPqaWwyS0DegT0r2p5be0bm2eE59oroGME";
$data['data'] = [
"phrase2" => [
'value' => $temp['value1'],//审核结果
],
"name1" => [
'value' => $temp['value2'],//审核人
],
"date4" => [
'value' => $temp['value3'],//审批时间
]
];
break;
case 5:
//预约结果通知
$data['template_id'] = "oczyQ_SabASMQRRhDedXRGUEzCAuGh1xBw8sp2HVPvQ";
$data['data'] = [
"thing12" => [
'value' => $temp['value1'],//备注
],
"time10" => [
'value' =>$temp['value2'],//日期
],
"thing8" => [
'value' => $temp['value3'],//就诊人
]
];
break;
}
return sendSubscribeMessage($data);
}
}
if (!function_exists('sendSubscribeMessage')) {
/**
* 小程序订阅消息推送
* @param $data
* @throws \think\Exception
* @throws \think\exception\PDOException
*/
function sendSubscribeMessage($data)
{
//access_token
$access_token = getAccessToken();
//请求url
$url = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' . $access_token;
//file_put_contents('notify.txt',$data.PHP_EOL,FILE_APPEND);
//跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
$data['miniprogram_state'] = 'formal';
return curlPost($url, json_encode($data));
}
}
if (!function_exists('getAccessToken')) {
/**
* 获取access_token
* @return mixed
* @throws \think\Exception
* @throws \think\exception\PDOException
*/
function getAccessToken()
{
$wx_xcx_token = \think\Db::name("wechat_token")->where("type", "wx_xcx")->find();
if (empty($wx_xcx_token) || empty($wx_xcx_token['access_token']) || $wx_xcx_token['over_time'] <= time()) {
//微信小程序失效
//当前时间戳
$now_time = strtotime(date('Y-m-d H:i:s', time()));
//获取新的access_token
$appid = config("site.wxxcx_AppID");
$secret = config("site.wxxcx_AppSecret");
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $appid . "&secret=" . $secret;
$res = json_decode(file_get_contents($url), true);
$access_token = $res['access_token'];
if (!empty($access_token)) {
$time = time();
$update_data = [
"access_token" => $access_token,
"over_time" => $time + 7200,
"type" => "wx_xcx",
"updatetime" => $time
];
if (!empty($wx_xcx_token)) {
//更新
\think\Db::name("wechat_token")->where("id", $wx_xcx_token['id'])->update($update_data);
} else {
//新增
\think\Db::name("wechat_token")->insertGetId($update_data);
}
}
} else {
$access_token = $wx_xcx_token['access_token'];
}
return $access_token;
}
}
if (!function_exists('curlPost')) {
/**
* 发送post请求
*/
function curlPost($url, $data)
{
$ch = curl_init();
$params[CURLOPT_URL] = $url; //请求url地址
$params[CURLOPT_HEADER] = FALSE; //是否返回响应头信息
$params[CURLOPT_SSL_VERIFYPEER] = false;
$params[CURLOPT_SSL_VERIFYHOST] = false;
$params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
$params[CURLOPT_POST] = true;
$params[CURLOPT_POSTFIELDS] = $data;
curl_setopt_array($ch, $params); //传入curl参数
$content = curl_exec($ch); //执行
// file_put_contents('notify.txt', $content . date('Y-m-d H:i:s', time()) . PHP_EOL, FILE_APPEND);
curl_close($ch); //关闭连接
return $content;
}
}
if (!function_exists('array_callback')) {
/**
* 20190729 kevin
* 规范数据返回函数
* @param unknown $state
* @param unknown $msg
* @param unknown $data
* @return multitype:unknown
*/
function array_callback($state = true, $msg = '', $data = array())
{
return array('state' => $state, 'msg' => $msg, 'data' => $data);
}
}
\ No newline at end of file
... ...
... ... @@ -2,9 +2,11 @@
namespace app\api\controller;
use app\admin\model\User;
use app\api\controller\inspection\Task;
use app\api\controller\tencentim\Openim;
use app\api\controller\v1\Base;
use app\api\controller\v1\WxxcxPush;
use app\common\controller\Api;
use think\Db;
... ... @@ -297,7 +299,7 @@ class Car extends Base
*/
public function switching_driver()
{
$res = Db::name("driver")->where("user_id", 10)->find();
$res = Db::name("driver")->where("user_id", $this->auth->id)->find();
$car = Db::name("car")->where("driver_id", $res['id'])->find();
if ($car) {
//本月收入
... ... @@ -940,6 +942,8 @@ class Car extends Base
$remarks = $this->request->param("remarks");//备注
$carmodel = Db::name("carmodel")->where("id", $carmodel_id)->find();
$specificaddress_id = $this->request->param("specificaddress_id");//区域id
$driver= Db::name("driver")->where("id", $intended_driver_id)->find();
$car= Db::name("car")->where("driver_id", $driver['id'])->find();
$chartercar = Db::name("chartercar")
->where("specificaddress_id", $specificaddress_id)
->where("carmodel_id", $carmodel_id)
... ... @@ -1462,4 +1466,9 @@ class Car extends Base
$this->error("请求失败");
}
}
public function test(){
$res=SendMessage(117);
$this->success("123",$res);
}
}
\ No newline at end of file
... ...
... ... @@ -373,8 +373,8 @@ class WxxcxPush extends Base
//小程序发送一次性订阅消息
public function Message($openid,$reservation_id){
$reservationmodel=new Reservation();
$reservation=$reservationmodel->find($reservation_id);
$reservation=Db::name("order")->find($reservation_id);
if(!empty($reservation)){
// 启动事务
... ... @@ -383,11 +383,13 @@ class WxxcxPush extends Base
$createtime = time();
//通知
$page = '/pageOne/moreRes/moreRes';
$temp='ws6bz6-WyHHA-upU2oRzc_C5toDUexe9ZicQ-ITtImA';
$temp='oczyQ_SabASMQRRhDedXRGUEzCAuGh1xBw8sp2HVPvQ';
$insert_message_log_data = array(
'value1' => "预约提醒",
'value2' => date('Y-m-d',$reservation['appointment_time']),
'value3' => $reservation['user_name']
'value2' => "123123",
'value3' => "123123123",
'value4' => "123123123",
'value5' => "123123123",
);
$res = beingPushed(5, $openid, $page, $insert_message_log_data);
... ...
2024-04-02 17:59:05《117》"{\"errcode\":43101,\"errmsg\":\"user refuse to accept the msg rid: 660bd6ea-622ec5d0-43cc7fb2\"}"
2024-04-02 18:00:07《117》"{\"errcode\":43101,\"errmsg\":\"user refuse to accept the msg rid: 660bd727-39dc0f13-306b3b82\"}"
... ...