1. 程式人生 > 其它 >微信小程式傳送訂閱訊息

微信小程式傳送訂閱訊息

/**
* 傳送訊息
* @param $data
* @param $openid
* @return bool|string
*/
public function sendWxNotice($data,$openid="",$type=1) {
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . env('MINI_APP_ID') . '&secret=' . env('MINI_APP_SECRET');
$res = json_decode(file_get_contents($url),true);
$accessToken = $res['access_token'] ;
switch ($type) {
case 1: // 稽核
$template_id = env{TEMPLATE_ID_1};
$sendData = [
'thing26' => ['value'=>$data['title']],
'phrase5' => ['value'=>$data['status']==1?"成功":"失敗"],
'thing25' => ['value'=>$data['remark']],
];
break;
}

  if (!isset($template_id)||empty($template_id)) {
  return false;
  }


$checkData = $this->noticeCheck($template_id,$sendData,$openid);

$url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token={$accessToken}";
return $this->curlPost($url,json_encode($checkData)) ;
}

/**
* 處理髮送資料
* @param $template_id
* @param $data
* @param $openid
* @return array
*/
public function noticeCheck($template_id,$data,$openid)
{

$sendData = [
'touser' => $openid,
'template_id' => $template_id,
'data' => $data,
'page' => 'pages/index/index',
'miniprogram_state' => env('MINI_APP_MINIPROGRAM_STATE','formal')
];
return $sendData;
}

/**
* 傳送post請求
* @param $url
* @param $data
* @return bool|string
*/
public function curlPost($url,$data)
{
$ch = curl_init();
$params[CURLOPT_URL] = $url; //請求url地址
$params[CURLOPT_HEADER] = FALSE; //是否返回響應頭資訊
$params[CURLOPT_RETURNTRANSFER] = true; //是否將結果返回
$params[CURLOPT_POST] = true;
$params[CURLOPT_POSTFIELDS] = $data;
curl_setopt_array($ch, $params); //傳入curl引數
$content = curl_exec($ch); //執行
curl_close($ch); //關閉連線
return $content;
}