200, 'message' => $message, 'data' => $data, 'handshake' => $handshake, ]; return response()->json($data); } /** * json响应失败 * @param string $message 消息 * @param int $code 代码 * @return \Illuminate\Http\JsonResponse */ function json_fail($message, $code = 500, $data = []) { $handshake = ''; $data = [ 'code' => $code, 'message' => $message, 'data' => $data, 'handshake' => $handshake, ]; return response()->json($data); } /** * 生成密码. * @param string $plain 明文密码. * @param string $salt 盐. * @return string */ function generatePassword($plain, $salt) { return md5(md5($plain) . $salt); } /** * 随机生成字符串 * @param int $length 长度 * @param int $numeric 纯数字 * @return string */ function random($length, $numeric = 0) : string { if (version_compare(PHP_VERSION, '4.2.0', '<')) { mt_srand((double)microtime() * 1000000); } else { mt_srand(); } $seed = base_convert(md5(print_r($_SERVER, 1) . microtime()), 16, $numeric ? 10 : 35); $seed = $numeric ? (str_replace('0', '', $seed) . '012340567890') : ($seed . 'zZ' . strtoupper($seed)); $hash = ''; $max = strlen($seed) - 1; for ($i = 0; $i < $length; $i++) { $hash .= $seed[mt_rand(0, $max)]; } return $hash; } /** * 格式化页码入参 * @param $page * @return int */ function format_page($page) { $page = intval($page); if ($page <= 0) { $page = 1; } if ($page > PHP_INT_MAX) { $page = PHP_INT_MAX; } return $page; } /** * 加密ID. * @param $id * @param int $length 长度 * @return string */ function hashEncodeId($id, $length = 6) { $hashids = new Hashids(config('hashids.salt', ''), 6); return $hashids->encode($id); } /** * 解密ID. * @param $str * @return string */ function hashDecodeId($str) { $hashids = new Hashids(config('hashids.salt', ''), 6); $arr = $hashids->decode($str); return implode('', $arr); } /** * 生成订单流水号、可指定前缀 * @param string $prefix * @return string */ function createOrderSn($prefix = '', $mark = '') { if (strlen($mark) <= 2 && !empty($mark)) { $prefix .= '0' . $mark; } else { $prefix .= $mark; } return $prefix . date('YmdHis') . mt_rand(1111, 9999); } /** * 检测支付链接协议 * * @param $payUrl * @return mixed|string */ function checkPayUrl($payUrl) { if (strpos($payUrl, 'alipays://') !== false) { $payUrl = 'https://r.tool.py163.xyz/dk.html?_r_=' . urlencode($payUrl); } return $payUrl; } /** * 生成key * * @return string */ function createKey() { $pwd = ''; for ($i = 0; $i < 10; $i++) { $pwd .= chr(mt_rand(33, 126)); } return md5($pwd . time()); } /** * 签名 * * @param $data * @param $publicKey * @return string */ function build_sign($data, $publicKey) { ksort($data); $md5str = ""; foreach ($data as $key => $val) { $md5str = $md5str . $key . "=" . $val . "&"; } $md5str = strtoupper(md5($md5str . 'key=' . $publicKey)); return $md5str; }