一些好用的工具类
接口签名
//校验信息
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. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性