/** * 调用远程的方法 * * @param unknown $url * @param unknown $servicerpcfunction * @param unknown $params * @param string $verify * @return NULL|CommonUtilReturnVar */ static function call_remote_rpc($url, $servicerpcfunction, $params = [], $verify = NULL) { $message = CommonUtilMessage::create_with_rpccall($servicerpcfunction, $params, $verify); $encodemessage = CommonUtilMessage::encodeMessage([$message->toArray()]); $response = self::http($url, ["data" => $encodemessage]); if ($response['http_code'] != 200) { return null; } $response_str = $response['response']; if ($response_str == "f") { return null; } $retmessage = CommonUtilMessage::decodeMessage($response_str); if (is_null($retmessage)) { return null; } $retcode = null; foreach ($retmessage as $rpc_return) { if ($rpc_return[CommonUtilMessage::DBKey_msgdata][CommonUtilMessage::DBKey_cmd] === $servicerpcfunction) { $retcode = CommonUtilReturnVar::create_with_message_arr($rpc_return); break; } } return $retcode; }
/** * 获得返回结果中的编码 * * @param CommonUtilReturnVar $retdata */ public static function getcode($retdata) { return $retdata->get_retcode(); }