sign($params); $params = json_encode($params); $params = $this->encrypt($params); $resp = http_post_data(config::QUERY_URL, $params , config::ExtHeaders); if (empty($resp)) { return [false, '系统错误']; } else { Log::record($resp, Log::DEBUG); $resp = json_decode($resp, true); if (empty($resp)) { return [false, '系统错误']; } elseif($resp['status'] == 1) { $data = $this->decrypt($resp['data']['json_data']); Log::record("zhenqi order query status 1 data:{$data}", Log::DEBUG); $data = json_decode($data,true); $status = intval($data['status']); $info = $resp['info']; if ($resp['sub_code'] != 0) { return [false, $info]; } if ($status === 1) { $updata['official_sn'] = $data['sp_order_no']; Model('refill_order')->edit($refill_info['order_id'], $updata); $order_state = ORDER_STATE_SUCCESS; } elseif ($status === 2) { $order_state = ORDER_STATE_CANCEL; } elseif ($status === 3) { $order_state = ORDER_STATE_SEND; } else { return [false, $info]; } return [true, $order_state]; } elseif ($resp['sub_code'] == 1210) { return [true, ORDER_STATE_NOEXIST]; } else { return [false, $resp['info']]; } } } public function balance() { $params['time_stamp'] = time(); $params['sign'] = $this->sign($params); $params = json_encode($params); $params = $this->encrypt($params); $resp = http_post_data(config::BALANCE_URL, $params , config::ExtHeaders); if (empty($resp)) { return [false, '系统错误']; } else { Log::record($resp, Log::DEBUG); $resp = json_decode($resp, true); if (empty($resp)) { return [false, '系统错误']; } elseif($resp['status'] == 1) { $data = $this->decrypt($resp['data']['json_data']); Log::record("zhenqi order balance status 1 data:{$data}", Log::DEBUG); $data = json_decode($data,true); $info = $resp['info']; if ($resp['sub_code'] != 0) { return [false, $info]; } return [true, $data['balance']]; } else { return [false, $resp['info']]; } } } private function sign($params) { ksort($params); $body = ""; foreach ($params as $k => $v) { $body .= "{$k}={$v}&"; } $body .= "app_secret=".config::APP_SECRET; return strtoupper(md5($body)); } //加密 private function encrypt($encrypt) { $key = substr(openssl_digest(openssl_digest(config::TOKEN, 'sha1', true), 'sha1', true), 0, 16); $data = openssl_encrypt($encrypt, 'AES-128-ECB', $key, OPENSSL_RAW_DATA); return base64_encode($data); } //解密 private function decrypt($decrypt) { $key = substr(openssl_digest(openssl_digest(config::TOKEN, 'sha1', true), 'sha1', true), 0, 16); return openssl_decrypt($decrypt, 'AES-128-ECB', $key); } }