php像微信公众号推送消息,php 微信公众号指定用户推送消息

namespace app\index\controller;

class Pushmess

{

private $appId = "**********";

private $appSecret = "**********";

// public function __construct($appId, $appSecret) {

// $this->appId = $appId;

// $this->appSecret = $appSecret;

// }

public function send($openid,$username,$countpunch){

$tokens = $this->getAccessToken(); //获取token

$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $tokens;

$params = [

'touser' =>$openid,//接收消息的openid

'template_id' => '',//模板ID

'url' => '', //点击详情后的URL可以动态定义

'data'=>[

'first'=>[

'value'=>'您好!这次是你第次打卡。',

'color'=>'#173177'

],

'keyword1'=>[

'value'=>$username,

'color'=>'#173177'

],

'keyword2'=>[

'value'=>date("Y-m-d H:i", time()),

'color'=>'#173177'

],

'keyword3'=>[

'value'=>'打卡成功',

'color'=>'#173177'

]

// 'remark'=>[

// 'value'=>'打卡成功',

// 'color'=>'#173177'

// ]

]

];

$data = json_encode($params,JSON_UNESCAPED_UNICODE);

$curl = curl_init();

curl_setopt($curl,CURLOPT_URL,$url);

curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);

curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);

if(!empty($data)){

curl_setopt($curl,CURLOPT_POST,1);

curl_setopt($curl,CURLOPT_POSTFIELDS,$data);

}

curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);

curl_exec($curl);

curl_close($curl);

}

private function getAccessToken() {

// access_token 应该全局存储与更新,以下代码以写入到文件中做示例

// 如果是企业号用以下URL获取access_token

// $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret";

$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";

$res = json_decode($this->httpGet($url));

$access_token = $res->access_token;

return $access_token;

}

/**

* @Description: curl请求

* @Author: Yang

* @param $url

* @param null $data

* @param string $method

* @param array $header

* @param bool $https

* @param int $timeout

* @return mixed

*/

function httpGet($url, $data=null, $method='get', $header = array("content-type: application/json"), $https=true, $timeout = 5){

$method = strtoupper($method);

$ch = curl_init();//初始化

curl_setopt($ch, CURLOPT_URL, $url);//访问的URL

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//只获取页面内容,但不输出

if($https){

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//https请求 不验证证书

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//https请求 不验证HOST

}

if ($method != "GET") {

if($method == 'POST'){

curl_setopt($ch, CURLOPT_POST, true);//请求方式为post请求

}

if ($method == 'PUT' || strtoupper($method) == 'DELETE') {

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); //设置请求方式

}

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//请求数据

}

curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //模拟的header头

//curl_setopt($ch, CURLOPT_HEADER, false);//设置不需要头信息

$result = curl_exec($ch);//执行请求

curl_close($ch);//关闭curl,释放资源

return $result;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值