首页 > 其他分享 >一些好用的工具类

一些好用的工具类

时间:2022-10-17 11:12:41浏览次数:37  
标签:code return curl ch msg 一些 工具 data 好用

一些好用的工具类

接口签名

    //校验信息
    public function __construct(Request $request)
    {
        //生成签名
        $request = $request->all();
        $sign = $request['sign'];
        unset($request['sign']);

        if ((time() - intval($request['timestamp'])) > 300) {
            throw new ErrorException(1, 'sign超时');
        }
        ksort($request);

        $keys = array_keys($request);
        $values = array_values($request);

        $str = 'abcd123@2022';
        foreach ($keys as $key =>  $value) {
            $str .= $value .'='. $values[$key] .'&';
        }
        $str = rtrim($str, '&');
        if (md5($str) == $sign) {
            return true;
        }
        throw new ErrorException(1, '解密失败');
    }

给图片加前缀

    /**
     * 数组图片
     * @param $img
     * @return int[]|string[]
     */
    function formatImgArr($img)
    {
        if (empty($img)) return [];
        if (strpos($img, ",") !== false) {
            $result = array_filter(explode(',', $img));
        } else {
            $result = [$img];
        }
        $arr = array();
        foreach ($result as $key => $value) {
            if (!empty($value)) {
                $arr[] = config('oss.domain') . '/' . $value;
            }
        }
        return array_values($arr);
    }

生成支付单编号

    /**
     * 生成支付单编号(两位随机 + 从2000-01-01 00:00:00 到现在的秒数+微秒+会员ID%1000),该值会传给第三方支付接口
     * 长度 =2位 + 10位 + 3位 + 3位  = 18位
     * 1000个会员同一微秒提订单,重复机率为1/100
     * @return string
     */
    function makePaySn($member_id)
    {
        return mt_rand(10, 99)
            . sprintf('%010d', time() - 946656000)
            . sprintf('%03d', (float)microtime() * 1000)
            . sprintf('%03d', (int)$member_id % 1000);
    }

机器人群消息推送

    //机器人群消息推送
    public static function DingRobotWarning($type, $message){
        $message = json_encode($message);
        if($type == 'ssh') {
            $token = '';
        }
        $remote_server = 'https://oapi.dingtalk.com/robot/send?access_token='.$token;
        $data = array ('msgtype' => 'text','text' => array ('content' => 'APP_NAME:'.env('APP_NAME').'>>>'.'APP_URL:'.env('APP_URL').'>>'.$message));
        $post_string = json_encode($data);

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $remote_server);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array ('Content-Type: application/json;charset=utf-8'));
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        // 线下环境不用开启curl证书验证, 未调通情况可尝试添加该代码
         curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
         curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }

laravel 框架下的成功失败api响应

if (!function_exists('success')) {
    /**
     * 返回成功
     * @param $data
     * @param string $msg
     * @param int $code
     * @return \Illuminate\Http\JsonResponse
     */
    function success($data = [], $msg = '', $code = \App\Enum\Api\ApiCodeEnum::SUCCESS)
    {
        !$msg && $msg = \App\Enum\Api\ApiCodeEnum::CODE_TEXT[$code];
        return response_api($code, $msg, $data);
    }
}

if (!function_exists('error')) {
    /**
     * 错误返回
     * @param string $msg
     * @param int $code
     * @param array $data
     * @return \Illuminate\Http\JsonResponse
     */
    function error($msg = '', $code = \App\Enum\Api\ApiCodeEnum::FAIL, $data = [])
    {
        !$msg && $msg = \App\Enum\Api\ApiCodeEnum::CODE_TEXT[$code];
        return response_api($code, $msg, $data);
    }
}

if (!function_exists('response_json')) {
    /**
     * api响应
     * @param $code
     * @param $msg
     * @param array $data
     * @return \Illuminate\Http\JsonResponse
     */
    function response_api($code, $msg, $data = [])
    {
        return response()->json([
            'data' => empty($data) ? [] : $data,
            'msg' => $msg,
            'code' => $code
        ], 200, [], JSON_UNESCAPED_UNICODE);
    }
}

标签:code,return,curl,ch,msg,一些,工具,data,好用
From: https://www.cnblogs.com/zyhtzxy/p/16798475.html

相关文章

  • Collections工具类
    Collections工具类常用功能Collections是集合工具类用来集合进行操作常用方法如下1.publicstatic<T>booleanaddAll(Collectionc,Telements):往集合中添加一些元......
  • 关于idea的servcies和debug功能,services中查看启动的服务没有调试工具栏
    今晚踩了这个坑。。。全网找了半天都解决不了。由于微服务项目必须用到services的这个功能来管理微服务项目的启动/停止,以及多个微服务部署。所以必须用到services这个功......
  • 在线时间戳转换工具的坑-同样的时间戳转为北京时间,转换结果受本机时区设置的影响
    背景前不久在写一个时间戳转化方法时偶然发现了,一些在线转化时间戳网站存在一些问题,即同样的时间戳都转为北京时间,转换结果受本机时区设置的影响。比如当前时间戳为:16658......
  • 【专项】】ipmitool 相关工具
    ipmitool常用操作指导书1、ipmitool工具安装(1)将软件包ipmitool-1.8.11.tar.gz上传到LinuxOS的/home目录下(2)依次执行如下命令进行ipmitool的安装#tar-zxvf/ho......
  • Camera Raw 15 for mac/Win(PS Raw增效工具) 中文
    AdobeCameraRaw(RAW处理工具)最新版是一款功能十分强大的raw文件处理工具,CameraRaw支持不用的数码相机拍摄制作的RAW文件,可以说是摄影爱好者必备的一款软件。Mac版详情:Ca......
  • ES中的一些基本概念以及和关系数据库对比
    以下总结点为自己思路总结,有不正确地方,请斧正。ES中的基本概念一……索引索引:存放在ES中同一个类型文档的集合叫做ES中的索引,类似于关系数据库中的TableES中的基......
  • Linux性能运维–三个Python小工具
    由于工作需要,服务器每周需巡检一次。除了内存、cpu、磁盘、网络连接等数据外,还有不同的服务。为加快巡检速度和知晓服务器状况,我使用了multiprocessing.dummy多线程、pampy......
  • 接口测试工具-Jmeter压力测试使用
    上一期分享了接口调用的工具-Postman(传送门:​​接口测试工具-Postman使用详解​​),这业务场景中还需要分析对应接口的性能,是否支持多并发,多并发的极限QPS在什么地方,这个时候......
  • 接口测试工具-Postman使用详解
    前公司有个说法叫做狗粮环境,什么叫做狗粮环境,就是搭建环境自己测试自己的代码,算法很多时候写好后是通过restful接口对外使用,接口测试就要引出一个利器-Postman.1、安装postm......
  • 关于数据库的一些基础知识,不总结就会忘
    之前在Mac上安装了MySQL5.7版本,最近想连接数据库看看之前的数据还在不在,结果发现初始密码给忘了。这可怎么办,别着急,从头开始来吧 1.打开终端,输入mysql-uroot-p然后......