RensheService.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. namespace app\common\service;
  3. use think\facade\Log;
  4. class RensheService
  5. {
  6. //网址
  7. const BASE_URL = 'https://12333.jinjiang.gov.cn/interface-jjlgsc-wbjk';
  8. //密钥
  9. const KEY = 'be2daba9afed4b75';
  10. //偏移量
  11. const IV = 'b33f8ac8cca782b9';
  12. //版本号
  13. const VERSION = 'lgyz1.0';
  14. //要发送的数据
  15. private $_data = [];
  16. //当前时间
  17. private $_time = 0;
  18. //日志名称
  19. private $_log_name = '';
  20. /**
  21. * 构造函数
  22. * @param array $data 要发送的数据
  23. */
  24. public function __construct($data = [])
  25. {
  26. $this->_data = $data;
  27. $this->_time = date('YmdHis');
  28. }
  29. /**
  30. * 设置参数
  31. * @param $data
  32. */
  33. public function setData($data)
  34. {
  35. foreach ($data as $k => $v) {
  36. $this->_data[$k] = $v;
  37. }
  38. }
  39. /**
  40. * 岗位信息库提交
  41. */
  42. public function JobInfo()
  43. {
  44. $this->_log_name = '岗位信息库';
  45. $url = self::BASE_URL . '/dayjob/submitJobInfo.html';
  46. $res = $this->_send($url);
  47. return $res;
  48. }
  49. /**
  50. * 岗位撮合信息结果信息提交
  51. */
  52. public function MatchSubmit()
  53. {
  54. $this->_log_name = '岗位撮合';
  55. $url = self::BASE_URL . '/dayjob/submitLaborRelations.html';
  56. $res = $this->_send($url);
  57. return $res;
  58. }
  59. /**
  60. * 参数加密
  61. * @return string
  62. */
  63. private function _enDataCbc()
  64. {
  65. $data = $this->_time . json_encode($this->_data);
  66. return base64_encode(http_request('http://192.168.1.91/sm4_en.php', 'POST', ['data' => $data]));
  67. // return base64_encode(openssl_encrypt($data, "SM4", self::KEY, 0, self::IV));
  68. }
  69. /**
  70. * 参数解密
  71. * @param $data
  72. * @return mixed
  73. */
  74. private function _deDataCbc($data)
  75. {
  76. $res = http_request('http://192.168.1.91/sm4_de.php', 'POST', ['data' => base64_decode($data)]);
  77. // $res = openssl_decrypt(base64_decode($data), "SM4", self::KEY, 0, self::IV);
  78. if ($res[0] != "{") {
  79. $res = mb_substr($res, 14, strlen($res), 'UTF-8');
  80. }
  81. return json_decode($res, true);
  82. }
  83. /**
  84. * 发送数据
  85. * @param $url
  86. * @return mixed
  87. */
  88. private function _send($url)
  89. {
  90. Log::info($this->_log_name . ':' . json_encode($this->_data));
  91. //请求头
  92. $enTime = base64_encode(http_request('http://192.168.1.91/sm4_en.php', 'POST', ['data' => $this->_time]));
  93. // $enTime = base64_encode(openssl_encrypt($this->_time, "SM4", self::KEY, 0, self::IV));
  94. $header = [
  95. 'Content-Type: application/json',
  96. 'Author-source: 1',
  97. 'Author-token: ' . $enTime,
  98. 'Author-version: ' . self::VERSION,
  99. ];
  100. //发送数据
  101. $enData = $this->_enDataCbc();
  102. $response = http_request($url, 'POST', $enData, $header);
  103. $deData = $this->_deDataCbc($response);
  104. Log::info($this->_log_name . '返回数据:' . json_encode($deData));
  105. return $deData;
  106. }
  107. }