Ocr.php 4.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // |ZBPHP[基于ThinkPHP5.1开发]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016-2019 http://www.benbenwangluo.com
  6. // +----------------------------------------------------------------------
  7. // | Author 似水星辰 [ 2630481389@qq.com ]
  8. // +----------------------------------------------------------------------
  9. // | 中犇软件 技术六部 出品
  10. // +----------------------------------------------------------------------
  11. namespace BaiduAi\controller;
  12. require_once(dirname(dirname(__FILE__)) . "/sdk/AipOcr.php");
  13. /**
  14. * 图像识别控制器
  15. * @author 晓风<215628355@qq.com>
  16. * @package plugins\Sms\controller
  17. */
  18. class Ocr
  19. {
  20. public $client;
  21. public function __construct()
  22. {
  23. $this->client = new \AipOcr('24267127', 'Utg2bxLY4is7h5DPehVZ63Q4', 'yfGMEAO6YQXIE2pqYMiH4MNBE1DcNhyO ');
  24. }
  25. public function setConnectionTimeoutInMillis($ms)
  26. {
  27. $this->client->setConnectionTimeoutInMillis($ms);
  28. }
  29. public function setSocketTimeoutInMillis($ms)
  30. {
  31. $this->client->setSocketTimeoutInMillis($ms);
  32. }
  33. public function __call($method, $args)
  34. {
  35. $ret = call_user_func_array([$this->client, $method], $args);
  36. if (isset($ret['error_code']) && $ret['error_code'] != 0) {
  37. $error_msg = ($this->getErrorMsg($ret['error_code']) ?: "") . ";" . $ret['error_msg'];
  38. throw new \Exception($error_msg, $ret['error_code']);
  39. } else {
  40. return $ret;
  41. }
  42. }
  43. public function getErrorMsg($errorCode)
  44. {
  45. $errors = [
  46. '4' => '集群超限额',
  47. '14' => 'IAM鉴权失败,建议用户参照文档自查生成sign的方式是否正确,或换用控制台中ak sk的方式调用',
  48. '17' => '每天流量超限额',
  49. '18' => 'QPS超限额',
  50. '19' => '请求总量超限额',
  51. '100' => '无效参数',
  52. '110' => 'Access Token失效',
  53. '111' => 'Access token过期',
  54. '282000' => '服务器内部错误,如果您使用的是高精度接口,报这个错误码的原因可能是您上传的图片中文字过多,识别超时导致的,建议您对图片进行切割后再识别,其他情况请再次请求, 如果持续出现此类错误,请通过QQ群(631977213)或工单联系技术支持团队',
  55. '216100' => '请求中包含非法参数,请检查后重新尝试',
  56. '216101' => '缺少必须的参数,请检查参数是否有遗漏',
  57. '216102' => '请求了不支持的服务,请检查调用的url',
  58. '216103' => '请求中某些参数过长,请检查后重新尝试',
  59. '216110' => 'appid不存在,请重新核对信息是否为后台应用列表中的appid',
  60. '216200' => '图片为空,请检查后重新尝试',
  61. '216201' => '上传的图片格式错误,现阶段我们支持的图片格式为:PNG、JPG、JPEG、BMP,请进行转码或更换图片',
  62. '216202' => '上传的图片大小错误,现阶段我们支持的图片大小为:base64编码后小于4M,分辨率不高于4096*4096,请重新上传图片',
  63. '216630' => '识别错误,请再次请求,如果持续出现此类错误,请通过QQ群(631977213)或工单联系技术支持团队。',
  64. '216631' => '识别银行卡错误,出现此问题的原因一般为:您上传的图片非银行卡正面,上传了异形卡的图片或上传的银行卡正品图片不完整',
  65. '216633' => '识别身份证错误,出现此问题的原因一般为:您上传了非身份证图片或您上传的身份证图片不完整',
  66. '216634' => '检测错误,请再次请求,如果持续出现此类错误,请通过QQ群(631977213)或工单联系技术支持团队。',
  67. '282003' => '请求参数缺失',
  68. '282005' => '处理批量任务时发生部分或全部错误,请根据具体错误码排查',
  69. '282006' => '批量任务处理数量超出限制,请将任务数量减少到10或10以下',
  70. '282110' => 'URL参数不存在,请核对URL后再次提交',
  71. '282111' => 'URL格式非法,请检查url格式是否符合相应接口的入参要求',
  72. '282112' => 'url下载超时,请检查url对应的图床/图片无法下载或链路状况不好,您可以重新尝试一下,如果多次尝试后仍不行,建议更换图片地址',
  73. '282113' => 'URL返回无效参数',
  74. '282114' => 'URL长度超过1024字节或为0',
  75. '282808' => 'request id xxxxx 不存在',
  76. '282809' => '返回结果请求错误(不属于excel或json)',
  77. '282810' => '图像识别错误'
  78. ];
  79. return $errors[$errorCode] ?: '';
  80. }
  81. }