$name,//姓名 'cer_code' => $id_card,//身份证号码 'bank_code' => $bank_code,//银行卡号 'mobile' => $mobile,//银行卡预留手机号 'has_auth' => 1, 'source' => 1, "sign_img" => "", "protocol_img" => "", "contract_img" => "", 'auth' => "2", 'cer_front_img' => $front_img,//身份证正面照 'cer_reverse_img' => $back_img,//身份证反面照 ]; $token = self::$token; return self::postRequest(self::$url . $url, compact('data', 'token')); } public static function applySignUrl($id) { $url = '/Enterprise/applySignUrl'; $data = [ 'professional_id' => $id,//姓名 'back_url' => sys_config('site_url'),//返回网址 'sign_type' => 'letsign',//银行卡号 ]; $token = self::$token; return self::postRequest(self::$url . $url, compact('data', 'token')); } public static function querySignResult($id) { $url = '/Enterprise/querySignResult'; $data = [ 'transactionCode' => $id,//姓名 ]; $token = self::$token; return self::postRequest(self::$url . $url, compact('data', 'token')); } public static function contractDo($id) { $url = '/Enterprise/contractDo'; $data = [ 'enterprise_professional_facilitator_id' => $id,//姓名 ]; $token = self::$token; return self::postRequest(self::$url . $url, compact('data', 'token')); } public static function contractInfo($id) { $url = '/Enterprise/contractInfo'; $data = [ 'enterprise_professional_facilitator_id' => $id,//姓名 ]; $token = self::$token; return self::postRequest(self::$url . $url, compact('data', 'token')); } public static function getOrderList($status = 0, $page = 1, $limit = 10) { $url = '/Enterprise/getOrderList'; $data = [ // 'enterprise_order_sn' => '', // 'states' => '', 'status' => $status, // 'reason' => '', // 'check_time_start' => '', // "check_time_end" => "", "pagination" => ['page_start' => $page, 'page_size' => $limit], ]; $token = self::$token; return self::postRequest(self::$url . $url, compact('data', 'token')); } public static function getOrderExt($order_id, $page = 1, $limit = 10) { $url = '/Enterprise/getOrderExt'; $data = [ 'enterprise_order_id' => $order_id, "pagination" => ['page_start' => $page, 'page_size' => $limit], ]; $token = self::$token; return self::postRequest(self::$url . $url, compact('data', 'token')); } public static function getOrderTemplate($order_id) { $url = '/Enterprise/getOrderTemplate'; $data = [ 'enterprise_order_id' => $order_id, ]; $token = self::$token; return self::postRequest(self::$url . $url, compact('data', 'token')); } public static function changeOrderStatus($order_id, $apply_img, $seal_img, $status = 1, $remarks = '') { $url = '/Enterprise/changeOrderStatus'; $data = [ 'enterprise_order_id' => $order_id, 'status' => $status, 'remarks' => $remarks, 'apply_img' => $apply_img, 'seal_img' => $seal_img, ]; $token = self::$token; return self::postRequest(self::$url . $url, compact('data', 'token')); } public static function fastIssuing($id, $link_id, $name, $id_card, $mobile, $bank_code, $money, $body) { $url = '/Enterprise/fastIssuing'; $data = [ 'trade_number' => 'SYYX' . $link_id . date('YmdHis') . rand(10000, 99999), 'crowd_id' => self::$crowd_id, 'issuing_data' => [[ "professional_id" => $id, "name" => $name, "cer_code" => $id_card, "mobile" => $mobile, "bank_code" => $bank_code, "money" => $money, "remark" => $body, "request_no" => rand(1000, 9999) . "_" . $link_id, "professional_bank_id" => 0, "resolve_id" => self::$resolve_id ],] ]; $token = self::$token; return self::postRequest(self::$url . $url, compact('data', 'token')); } public static function postRequest($url, $data) { $res = json_decode(self::do_request($url, $data, ['content-type:application/json'], true, true), true); if ($res['code'] == 200) { try { return self::decode($res['data'], $res['msg'] ?? ''); } catch (\Exception $exception) { throw new ApiException($exception->getMessage()); } } else { throw new ApiException($res['msg'] ?? '处理失败'); } } private static function login() { $data = [ 'user_name' => self::$user_name, 'password' => self::$password, 'timestamp' => time(), ]; ksort($data); $signString = http_build_query($data) . '&secret=' . self::$secret; $sign = md5($signString); $data['sign'] = $sign; $res = json_decode(self::do_request(self::$url . '/sdk/v1/login', $data, ['content-type:application/json'], true, true), true); if ($res['code'] == 200) { return $res['token']; } else { throw new ApiException($res['msg'] ?? '企业登陆失败'); } } /** * @param $businessBodyString * @return mixed */ public static function decode($businessBodyString, $msg = '') { //进行Aes解密 include_once 'phpseclib/Crypt/AES.php'; $aes = new \Crypt_AES(CRYPT_AES_MODE_ECB); $aes->setKey(self::$aeskey); $data = $aes->decrypt(base64_decode($businessBodyString)); return array_merge(json_decode(base64_decode($data), true), ['api_res_msg' => $msg]); } public static function checkSign($data, $sign) { ksort($data); $signString = http_build_query($data) . '&secret=' . self::$secret; $code = md5($signString); return trim($sign) === trim($code); } private static function do_request($url, $data, $header = null, $post = true, $json = false, $format = 0, $form = false) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); if ($post) { curl_setopt($curl, CURLOPT_POST, 1); if (!$json && !$form) { curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); } else if ($json && !$form) { curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data, $format)); } else { curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); if ($header) { curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_HEADER, 0); } $result = curl_exec($curl); if (curl_errno($curl)) { return json_encode(['status' => curl_errno($curl), 'msg' => '请求失败']); } curl_close($curl); return $result; } }