IdCardHandler.php 2.1 KB

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