当前位置:首页 > 技术教程 > 技术文章 > 正文内容

curl实用请求方法函数(个人用),含支付pem校验

atao4年前 (2021-02-25)技术文章3519

curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。

它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。

image.png

下面分享一个个人常用的CURL请求方法:

function https_request($url,$data=null,$header=null,$pem=null){
    // 1. 初始化一个 CURL 对象
    $curl = curl_init();
    // 2.设置你需要抓取的URL
    curl_setopt($curl, CURLOPT_URL,$url);
    // (可选)设置头 阿里云的许多接口需要在头上传输秘钥
    if(!empty($header)){
       curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    }
    // 3.https必须加这个,不加不好使(不多加解释,东西太多了)
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //对认证证书进行检验
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    // 微信支付退款用的pem校验
    if(!empty($pem)){
        curl_setopt($curl, CURLOPT_SSLCERTTYPE, 'PEM');
        curl_setopt($curl, CURLOPT_SSLCERT, "{$pem['0']}");
        curl_setopt($curl, CURLOPT_SSLKEYTYPE, 'PEM');
        curl_setopt($curl, CURLOPT_SSLKEY, "{$pem['1']}");
    }
    // 4.设置post数据,否则是get方式
    if (!empty($data)){
       //设置模拟post方式
       curl_setopt($curl,CURLOPT_POST,1);
       //传数据,get方式是直接在地址栏传的,这是post传参的解决方式
       curl_setopt($curl,CURLOPT_POSTFIELDS,$data);//$data可以是数组,json
    }
    // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。1是保存,0是输出
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    // 让curl跟随页面重定向
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    // 5. 运行cURL,请求网页
    $output = curl_exec($curl);
    // 6. 关闭CURL请求
    curl_close($curl);
    return $output;
}


推荐阅读:

  1. 微信退款文章

  2. 微信支付文章

  3. 微信授权登录文章

扫描二维码推送至手机访问。

版权声明:本文由武景涛的博客发布,如需转载请注明出处。

本文链接:http://yizhanhongtu.cn/post/55.html

标签: curdphp
分享给朋友:

相关文章

windows系统下Composer的安装和使用

windows系统下Composer的安装和使用

Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 "packages"...

CSS度量的单位px、rem、em、vw、vh有什么区别

CSS度量的单位px、rem、em、vw、vh有什么区别

1、px绝对单位,页面按精确像素展示2、em相对长度单位,相对于当前对象内文本的字体尺寸, 根据父元素的大小变化而变化对单位,基准点为父节点字体的大小。em是指字体高度 浏览器默认1em=16px,所...

【推荐】10个提升用户体验图像特效库

【推荐】10个提升用户体验图像特效库

1.imagehover地址:https://github.com/ciar4n/imagehover.css imagehover.css- 纯CSS3鼠标滑过图片效果动画库,44种鼠标滑过效果2....

php版微信公众平台之微信网页登陆授权示例详解

php版微信公众平台之微信网页登陆授权示例详解

之前在项目中遇到网页授权登录这个需求,就对此做些总结记录。OAuth2.0授权:OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站、移动或桌面应用上存储的个人信息,而...

ThinkPHP框架整合微信支付统一下单接口之Native扫码支付模式

ThinkPHP框架整合微信支付统一下单接口之Native扫码支付模式

此篇文章主要介绍了ThinkPHP6框架下整合微信支付之Native手册里面有的东西不多介绍,请求参数、返回结果之类的请移步官方手册查看。本文主要是通过一个demo实例进行讲解微信支付之统一下单接口。...

Apache自带的ab压力测试工具用法详解

Apache自带的ab压力测试工具用法详解

ab的原理ab是apache bench命令的缩写。ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apach...