php使用raw数据格式发送curl post get请求,及使用微信消息模版发信息

<?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;
}
发布了38 篇原创文章 · 获赞 14 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/u011383596/article/details/87284408
今日推荐