IdCardHandler.php 2.0 KB

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