一些好用的工具类

接口签名

    //校验信息
    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);
    }
}

原文地址:http://www.cnblogs.com/zyhtzxy/p/16798475.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性