BaiduServer.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. namespace App\Servers\System;
  3. use End01here\BaiDuOrc\BaiDuOrcService;
  4. /**
  5. * Redis数据缓存类
  6. */
  7. class BaiduServer
  8. {
  9. /**
  10. * 错误信息
  11. * @var string
  12. */
  13. private $errorMsg = '';
  14. static private $server = null;
  15. private $baiduServer = null;
  16. private function __construct()
  17. {
  18. $this->baiduServer = BaiDuOrcService::getOrcServer();
  19. }
  20. /**
  21. * 创建对象
  22. * @return BaiduServer
  23. */
  24. static function creatServer()
  25. {
  26. if (empty(self::$server)) self::$server = new BaiduServer();
  27. return self::$server;
  28. }
  29. /**
  30. * 身份证号码识别
  31. * @param $imgUrl
  32. * @param $idCardSide
  33. */
  34. function idCard($imgUrl,$idCardSide='front'){
  35. // 如果有可选参数
  36. $options = array();
  37. $options["detect_direction"] = "true";
  38. $options["detect_risk"] = "false";
  39. // 带参数调用身份证识别
  40. $data= $this->baiduServer->idcard($imgUrl, $idCardSide, $options);
  41. if(!empty($data['image_status']) && $data['image_status']=='normal'){
  42. if($idCardSide=='front'){
  43. $userData['name']=$data['words_result']['姓名']['words'];
  44. $userData['sex']=$data['words_result']['性别']['words'];
  45. $userData['id_number']=$data['words_result']['公民身份号码']['words'];
  46. $userData['birthday']=$data['words_result']['出生']['words'];
  47. }else{
  48. $userData['validity_start']=$data['words_result']['签发日期']['words'];
  49. $userData['validity_end']=$data['words_result']['失效日期']['words'];
  50. }
  51. if(empty($userData)){
  52. return ['code'=>0,'msg'=>'身份证识别失败','data'=>[]];
  53. }else{
  54. return ['code'=>1,'msg'=>'身份证识别成功','data'=>$userData];
  55. }
  56. }else{
  57. return ['code'=>0,'msg'=>'身份证识别失败','data'=>[]];
  58. }
  59. }
  60. /**
  61. * 营业执照识别
  62. * @param $imgUrl
  63. * @return array
  64. */
  65. function businessLicense($imgUrl){
  66. //营业执照识别
  67. $data= $this->baiduServer->businessLicense($imgUrl);
  68. if(!empty($data['words_result_num']) && $data['words_result_num']>0){
  69. $cardData=$data['words_result'];
  70. $userData['id_number']=empty($cardData['社会信用代码'])?'':$cardData['社会信用代码']['words'];
  71. $userData['name']=empty($cardData['单位名称'])?'':$cardData['单位名称']['words'];
  72. $userData['registered_capital']=empty($cardData['注册资本'])?'':$cardData['注册资本']['words'];
  73. $userData['address']=empty($cardData['地址'])?'':$cardData['地址']['words'];
  74. $userData['registration_date']=empty($cardData['成立日期'])?'':$cardData['成立日期']['words'];
  75. $userData['firm_type']=empty($cardData['类型'])?'':$cardData['类型']['words'];
  76. $userData['paid_capital']=empty($cardData['实收资本'])?'':$cardData['实收资本']['words'];
  77. if(empty($userData)){
  78. return ['code'=>0,'msg'=>'营业执照识别失败','data'=>[]];
  79. }else{
  80. return ['code'=>1,'msg'=>'营业执照识别成功','data'=>$userData];
  81. }
  82. }else{
  83. return ['code'=>0,'msg'=>'营业执照识别失败','data'=>[]];
  84. }
  85. }
  86. }