IdCardHandler.php 1.9 KB

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