public function toJsonString(WxSendMsg $msg)
    {
        if ($msg instanceof WxSendTextMsg) {
            return $this->sendTextMsgToJsonString($msg);
        } elseif ($msg instanceof WxSendImageMsg) {
            return $this->sendImageMsgToJsonString($msg);
        } elseif ($msg instanceof WxSendVoiceMsg) {
            return $this->sendVoiceMsgToJsonString($msg);
        } elseif ($msg instanceof WxSendVideoMsg) {
            return $this->sendVideoMsgToJsonString($msg);
        } elseif ($msg instanceof WxSendMusicMsg) {
            return $this->sendMusicMsgToJsonString($msg);
        } elseif ($msg instanceof WxSendNewsMsg) {
            return $this->sendNewsMsgToJsonString($msg);
        }

        throw new \InvalidArgumentException("unknown wx send msg");
    }