<?php
/**
* Created by PhpStorm.
* User: lhy
* Date: 2019-02-14
* Time: 15:19
*/
$appid = 'xx';
$appsecret = 'xx';
$access_token='';
//if (empty($access_token)) {
$autourl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}";
$obj=get_url($autourl);
$access_token=$obj['access_token'];
//模板消息
$temp_url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={$access_token}";
//组装数据
$params=[
'touser'=>'oFDr11eSgvMAeUvEzLSbcpRxV4Fg',
'template_id'=>'4a8oQXScBH4HK3rKFq15itOe0IbMaP4w6yB3BA8h6uo',
'url'=>'http://www.baidu.com',
'data'=>[
'first'=>[
'value'=>'有工单安排到你这',
"color"=>"#173177",
],
'keyword1'=>[
'value'=>'旗鸣',
"color"=>"#173177",
],
'keyword2'=>[
'value'=>'1',
"color"=>"#173177",
],
'keyword3'=>[
'value'=>date("Y-m-d H:i:s"),
"color"=>"#173177",
],
'remark'=>[
'value'=>'为保证运营效率,请及时操作工单!',
"color"=>"#173177",
],
]
];
$result=get_post_json($temp_url,$params);
var_dump($result);
//} else {
//
//}
function get_post_json($url = '', $post_data = array()) {
if (empty($url) || empty($post_data)) {
return false;
}
$ch = curl_init();//初始化curl
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL,$url);//抓取指定网页
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data));
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type: text/plain'));// 文本提交方式,必须声明请求头
$data = curl_exec($ch);//运行curl
if($data === false){
var_dump(curl_error($ch));
}else{
curl_close($ch);
return $data;
}
}
/**
* @param $url
* @return mixed
*/
function get_url($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
$jsoninfo = json_decode($output, true);
return $jsoninfo;
}
注意看在curl_setopt()函数中的CURLOPT_HTTPHEADER设置。既然是原生格式,那么POST传输的请求参数($data_string)可以是任何数据格式,但一般习惯使用json字符串格式
function http_post($url, $data_string) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'X-AjaxPro-Method:ShowList',
'Content-Type: application/json; charset=utf-8',
'Content-Length: ' . strlen($data_string))
);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}