IdCardHandler.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace App\Handlers;
  3. use App\Models\AreaSetting;
  4. use App\Models\Order;
  5. use App\Models\Parking;
  6. use App\Models\User;
  7. use App\Repositories\ParkingRepository;
  8. use Illuminate\Support\Facades\Log;
  9. use Illuminate\Support\Facades\Redis;
  10. class IdCardHandler
  11. {
  12. const URL = 'https://route.showapi.com/1072-1?';
  13. const AppKey = '109663';
  14. const AppSecret = 'c9fef5741e264c15a53d6ed5ff6fa3fc';
  15. public static function main($idCard, $trueName)
  16. {
  17. $paramArr = array(
  18. 'showapi_appid' => self::AppKey,
  19. 'idcard' => $idCard,
  20. 'name' => $trueName
  21. );
  22. $url = self::URL . self::createParam($paramArr);
  23. $data = self::curl_get_contents($url);
  24. $status = $data['showapi_res_body'];
  25. return [
  26. 'code' => $status['code'],
  27. 'msg' => $status['msg'],
  28. ];
  29. }
  30. //创建参数(包括签名的处理)
  31. private static function createParam($paramArr)
  32. {
  33. $paraStr = "";
  34. $signStr = "";
  35. ksort($paramArr);
  36. foreach ($paramArr as $key => $val) {
  37. if ($key != '' && $val != '') {
  38. $signStr .= $key . $val;
  39. $paraStr .= $key . '=' . urlencode($val) . '&';
  40. }
  41. }
  42. $signStr .= self::AppSecret;//排好序的参数加上secret,进行md5
  43. $sign = strtolower(md5($signStr));
  44. $paraStr .= 'showapi_sign=' . $sign;//将md5后的值作为参数,便于服务器的效验
  45. return $paraStr;
  46. }
  47. public static function curl_get_contents($url)
  48. {
  49. $curl = curl_init();
  50. //设置抓取的url
  51. curl_setopt($curl, CURLOPT_URL, $url);
  52. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//设置获取的信息以文件流的形式返回,而不是直接输出
  53. $data = curl_exec($curl); //执行命令
  54. curl_close($curl); //关闭URL请求
  55. return js2php($data);
  56. }
  57. }