presign_body($params,config::FIELDS); $signed = $this->sign($body); $params['signed'] = $signed; $params['act'] = 'convert'; $params['op'] = 'fcode'; return config::CONVERT_URL . "?" . http_build_query($params); } public function user($params) { $body = $this->presign_body($params,config::FIELDS); $signed = $this->sign($body); $params['signed'] = $signed; $params['act'] = 'convert'; $params['op'] = 'user'; return config::CONVERT_URL . "?" . http_build_query($params); } private function sign($body) { openssl_sign($body, $signed, self::$pri_key); $signed = base64_encode($signed); return $signed; } private function presign_body($input,$fields) { ksort($input); reset($input); $params = []; foreach ($input as $key => $val) { if(in_array($key,$fields)) { $params[] = "{$key}={$val}"; } } return implode('&',$params); } }