上海知识产权法院民 事 判 决 书（2019）沪73知民初84号原告(反诉被告)：上海毅舒空调工程科技有限公司，住所地上海市松江区。法定代表人：姚磊磊，总经理。委托诉讼代理人：王琦，男。委托诉讼代理人：张永奇，上海金永成德律师事务所律师。被告(反诉原告)：飞兽信息科技(上海)有限公司，住所地上海市闵行区。法定代表人：吕书飞，执行董事。委托诉讼代理人：刘婷，上海达沃律师事务所律师。委托诉讼代理人：林雅聪，上海达沃律师事务所律师。原告上海毅舒空调工程科技有限公司(以下简称毅舒公司)与被告飞兽信息科技(上海)有限公司(以下简称飞兽公司)计算机软件开发合同纠纷一案，本院立案后，依法适用普通程序进行审理。审理过程中，飞兽公司提出反诉，本院依法予以受理。2020年1月16日，本院公开开庭进行了审理。原告(反诉被告)毅舒公司的委托诉讼代理人王琦、张永奇，被告(反诉原告)飞兽公司的法定代表人吕书飞及其委托诉讼代理人刘婷、林雅聪到庭参加诉讼。本案现已审理终结。毅舒公司向本院提出本诉诉讼请求判令：1.解除双方签订的《格力空调定制开发项目—服务协议》；2.飞兽公司返还毅舒公司已支付的开发费人民币(以下币种相同)105,000元及相应银行利息，利息计算方法为：自2018年2月5日起至2019年8月19日止，按照中国人民银行同期贷款利率计付；自2019年8月20日起至实际支付之日止，按照全国银行间同业拆借中心公布的贷款市场报价利率计付；3.飞兽公司支付毅舒公司违约金75,000元。事实和理由：毅舒公司和飞兽公司于2017年11月10日签署《格力空调定制开发项目——服务协议》，毅舒公司委托飞兽公司开发“基于微信公众号和小程序的空调销售系统”。依据合同约定，飞兽公司应于2018年2月15日完成整个项目的功能开发，并在功能开发完毕通过验收之日完成清单所约定的商品信息，但其一直拖延履行合同义务，且经多次催告无果，毅舒公司已无法实现合同目的。针对毅舒公司的本诉请求，飞兽公司辩称：飞兽公司已经履行完毕合同义务，并协助毅舒公司以其名义申请了软件著作权，不存在任何违约行为。飞兽公司不同意解除合同，请求法院判决驳回毅舒公司的诉讼请求。飞兽公司向本院提出反诉诉讼请求判令：1.毅舒公司向飞兽公司支付剩余开发费用45,000元；2.毅舒公司向飞兽公司支付违约金75,000元；3.毅舒公司向飞兽公司支付合同外的费用26,000元。事实和理由：涉案合同签订后，飞兽公司依约完成了软件开发工作，但毅舒公司至今未支付剩余合同款项。并且，毅舒公司以今后合作为名，要求飞兽公司提供超出涉案合同约定的服务内容，该部分内容经核算共计26,000元。针对飞兽公司的反诉请求，毅舒公司辩称：飞兽公司作为专业的软件开发公司，在合同签订后没有依照合同的约定完成软件的开发，在测试过程中，毅舒公司及时向飞兽公司多次提出过程序中存在的技术问题，但一直无法得到解决，毅舒公司有权解除该合同，并要求飞兽公司返还已经支付的合同款项。本案审理中，当事人围绕诉讼请求依法提交了证据，本院组织当事人进行了证据交换和质证。其中，毅舒公司提交的合同及附件、付款凭证，飞兽公司提交的邮件、发票、支付凭证系当事人对真实性无异议的证据，且本院认为与本案审理具有关联，本院予以确认并在卷佐证。飞兽公司还提供了部分聊天记录，用以证明毅舒公司就涉案软件的开发提出了诸多新增功能。毅舒公司确认飞兽公司在本案中的新增开发功能系双方在合同履行过程中所协商的结果，但认为该些所谓新增功能并没有超出合同约定的范围。本院认为，鉴于毅舒公司对于飞兽公司所主张新增功能的内容本身无异议，故对于飞兽公司提供的相关聊天记录，本院不再另行作为证据予以采纳。根据当事人陈述和经审查确认的证据，本院认定事实如下：一、涉案合同签订情况2017年11月10日，毅舒公司(甲方)与飞兽公司(乙方)签订了《格力空调定制开发项目—服务协议》，约定由甲方委托乙方开发空调销售系统。合同主要内容如下：……二、合作内容：乙方根据甲方的要求，组织技术团队进行甲方的项目开发工作。根据本合同约定，甲方委托乙方开发的软件产品为：基于微信公众号和小程序的空调销售系统。软件的构成及功能需求、验收标准以经甲方确认的《功能及报价清单》(见附件一)为准。乙方根据甲方的要求，根据相关需求，乙方可提供系统维护服务，如有特殊需求，另行商榷。乙方根据甲方的要求，对甲方软件专利和相关知识产权申请过程中，乙方予以配合，提供相关代码片与样图。三、工作进度。乙方应在合同签订日2017年11月10日后70个工作日内完成项目的功能开发，并在功能开发完毕通过验收之日起内完成清单所约定的商品信息。如逾期未完成，每延期5个工作日，甲方减少支付合同总价的1%。四、费用支付项和金额(勾选服务项)(一)选择服务项：【注：对应功能及报价清单(附件一)】微信公众平台开发【√】小程序开发【√】微信认证【√】云主机【√】万次计短信【√】软件知识产权【√】(二)赠送服务：功能开发完毕通过验收，可赠送三个月维护服务。(注：云主机、微信认证、包年/维护、短信)(三)开发费用15万元。签订合同甲方支付乙方20%；程序模板验收完成甲方支付乙方50%；交付验收前甲方支付乙方20%；验收完一个月后支付尾款10%……五、软件项目协议及补充说明：1.由乙方向甲方提供产品/代运营服务，甲方可在该平台上充分展示自己的产品/服务，管理会员等。微信公众号、小程序号所有权归甲方所有。2.甲方根据本协议约定向乙方支付平台使用开发和维护服务费，乙方按甲方选择服务内容提供服务。3.协议生效后，甲方拥有合作时限内微信营销平台的使用权。4.乙方在合同生效后5个工作日，需配合甲方确定项目范围与功能。5.乙方按下列进度完成开发工作，如果甲方在开发过程中需求变更，乙方根据甲方变更内容，协商时间进度。6.甲方应向乙方提供的技术资料及协作事项如下：技术资料清单，提供时间和方式：按乙方需求提出三个工作日内；其他协作事项，配合开发需求调研工作，协助门户所需要的材料……7.甲方应按以下方式支付研究开发经费和报酬：研究开发经费以附件一【项目功能和清单】为标准。六、权利义务。1.乙方的权利义务。乙方负责微信营平台的运营和管理，保证按照协议约定向甲方提供各项服务……八、违约责任……2.乙方必须保证甲方的系统运营正常，否则给甲方造成的损失由乙方承担……4.乙方开发程序未能达到甲方要求，则赔偿甲方合同总价的50%。若甲方未能按时付款，则赔偿乙方合同总价的50%。5.若一方违反本协议约定导致协议无法履行，另一方有权终止协议。6.若一方违约造成对方不良社会影响或经济损失，则守约方有权追究违约方责任，要求其消除影响，对守约一方做相应的经济赔偿，并有权终止协议……毅舒公司与飞兽公司签订的上述合同附件一《格力空调开发按项目(微信公众平台与小程序、多用户角色管理版、后台管理系统)功能及报价清单》，详见附件1。《格力空调定制开发项目—服务协议》签订时，飞兽公司向毅舒公司提供了“空调金管家流程图”。二、涉案合同的履行情况2017年11月13日、2018年2月5日，毅舒公司分别支付飞兽公司合同款30,000元、75,000元。2017年11月29日，2018年1月30日，飞兽公司向分别毅舒公司开具增值税发票，金额总计15万元。2018年2月8日，毅舒公司取得支付宝商家认证。2018年2月8日，毅舒公司作为申请人申请微信公众平台认证，公众号名称为“空调金管家(kongtiaojinguanjia)”。2018年2月9日，毅舒公司作为网络主办者申请“kongtiaoguanjia.com”域名。2018年2月11日，毅舒公司通过微信支付商户资料审核。2018年11月12日，毅舒公司完成微信认证。微信中有名为“空调金管家”的微信小程序。上述微信公众号、小程序账号注册认证以及支付宝账号、域名的申请工作均由飞兽公司完成。飞兽公司支付微信认证费用300元、阿里云域名费用55元、阿里云服务器购买费用1,260元。2018年11月14日，毅舒公司委托律师向飞兽公司发送律师函，主要内容如下：根据双方合同约定，贵司应于2018年2月15日完成项目的功能开发，并在功能开发完毕通过验收之日完成清单所约定的商品信息。但贵司无故拖延，未按双方约定按时完成项目的开发并交付验收。期间，经委托人多次催促，贵司至今尚未完成项目开发并交付验收。现函告贵司：自收到本律师函之日起解除双方签署的《格力空调定制开发项目—服务协议》，并于三日内向委托人返还已付款105,000元，违约金可友好协商处理。三、涉案软件的演示情况关于涉案软件中“小程序”的开发，毅舒公司主张软件已完成功能存在问题共有17项，另有6组功能缺失。本院组织双方当事人就上述争议问题进行了当庭演示，结果详见附件2和附件3。关于飞兽公司主张其开发的软件新增功能，本院亦组织双方当事人进行了当庭演示，演示结果详见附件4。经审查，在微信中搜索“空调金管家”，进入名为“空调金管家”微信公众号中后，点击相关页面，内容显示如下：“该域名已过期，不能正常访问，续费后可恢复使用。请您联系您的域名服务商尽快完成续费，以避免域名被删除或被他人注册的风险。”“微信号：kongtiaojinguanjia帐号主体：上海毅舒空调工程科技有限公司。”本院认为，涉案合同系双方当事人的真实意思表示，且未违反法律强制性规定，应为合法有效，双方均应按合同约定行使权利并履行义务。根据双方当事人的诉辩意见，本案的争议焦点有四个方面，一是飞兽公司是否依约完成合同义务；二是飞兽公司主张的新增开发内容是否超出合同约定；三是涉案合同是否应予解除；四是若涉案合同应予解除，如何处理解除后果。以下分别进行评述：一、飞兽公司是否依约完成合同义务本案中，毅舒公司主张飞兽公司开发的微信小程序功能存在问题，且未完成微信公众号的开发。(一)关于微信小程序的开发毅舒公司主张涉案微信小程序开发中存在17个问题。在演示过程中，毅舒公司明确不再主张问题12。根据演示结果，本院对上述问题的认定意见如下：问题1.该问题并不属于软件功能问题，且双方当事人亦对此予以认可。问题4、5、7、8、10、11、13、16在演示时并不存在。问题2“首页视频不能修改”演示结果显示，重新添加视频地址后可以正常播放，毅舒公司亦在庭审中确认该问题并非重大瑕疵，进行修改即可。问题3“分类点击进去出现不可修改并且跳出BUG”，演示时可以实现分类功能，但对分类进行修改显示报错，本院认为该功能完成存在瑕疵。问题6“产品介绍页面不可编辑、不可换图、图片样式全部定死”，演示时显示图片可以进行编辑，但输入文字无法显示。飞兽公司辩称根据设计不需要显示文字，只需要显示图片详情。本院认为，产品介绍通常需要通过文字进行，在产品介绍页面实现文字输入是此类软件应具备的基本功能，无需合同再做特别约定，故飞兽公司对该功能的开发存在瑕疵。问题9“商品详情页点击销售员无法使用对话”，演示时商品详情页显示的是客服，而非销售员。本院认为，对话功能已经实现，销售员与客服只是名称不同，可根据需要更换名称，故该功能的开发不存在瑕疵。问题14“师傅登入成功之后，随意点击就跳转至重新登入”，演示时显示点击“订单”“我的”不会弹出登录，点击“首页”“分类”后需要重新登录。本院认为，此类软件一次登录后，再行点击页面内容通常不需要再次登录，飞兽公司该功能的开发与此类软件通常应具备的功能不符，且会影响用户的软件使用，故该功能的开发存在瑕疵。问题15“销售和安装没有在一个流程中”，本院认为，涉案合同未明确约定两者必须在一个流程，且实际开发的情况不影响相应功能的实现。问题17，毅舒公司确认系公众号问题，而非小程序开发中的问题。毅舒公司还主张，涉案微信小程序存在6组功能缺失。根据演示结果，本院对上述问题的认定意见如下：第1组功能中“施工确认”“验收”、第2组功能“客户输入”“联系客服—在线报价—报价生成”第3组功能中“师傅端预约上门安装”“安装位置确认”、第4组功能中“师傅端预约”“保养报告”、第5组功能中“安装位置确认”，以及第6组功能均缺失。其余功能均已完成。毅舒公司主张微信小程序开发中还存在其他问题，但未明确具体的问题，本院无法组织进行演示。对于毅舒公司的相关主张，本院不予支持。(二)关于微信公众号的开发毅舒公司主张，进入涉案微信公众号后页面无法打开，其中的功能是否开发完成并不知晓。并且，经法院审查的“空调金管家”微信公众号不能证明系飞兽公司为其所开发。本院认为，首先，经审查的微信公众号帐号主体显示是毅舒公司，微信号的名称与申请微信公众平台认证的微信号相同，上述证据足以证明该微信公众号系飞兽公司为毅舒公司所开发的涉案微信公众号。其次，涉案微信公众号不能正常访问，其原因为未续费导致域名过期。本院认为，依据通常商业惯例，软件开发费用并不包含有关功能运行需向第三方支付的服务费用。在涉案合同没有明确约定域名续费应由飞兽公司支付的情况下，该费用应由毅舒公司支付。因此，涉案微信公众号因续费问题无法演示，应由毅舒公司承担相应不利的法律后果。二、飞兽公司主张的新增开发内容是否超出合同约定飞兽公司主张的新增功能共19项，其中第18、19项不属于功能开发。经演示，第6、7、16项功能未开发完成，故该些功能是否属于新增功能，已无判断必要，本院对此不再予以评判。对于其余功能是否属于新增功能，本院认为，计算机软件开发是一个功能不断调整和细化的过程，在合同订立之初，双方所约定的功能需求在描述上通常较为抽象或概括，需在合同履行过程中进一步地具体化。对于开发过程中某一开发内容是否属新增功能，需要根据合同关于需求的具体约定、开发成本以及双方协商情况进行综合判断。功能1、3、4系对界面设计的合理调整，且并未过度增加飞兽公司的工作量，不属于新增功能。功能2、5，以及8-15属于对原有功能的进一步细化，且均为此类软件通常需具备的功能，故不属于新增功能。功能17系新增的开发系统，属于新增开发功能。三、涉案合同是否应予解除本案中，毅舒公司认为飞兽公司的行为构成根本违约，其合同目的已不能实现，有权解除涉案合同。本院认为，根据上述认定，飞兽公司开发完成软件具有一定瑕疵，且部分功能缺失，但多数功能均已开发完成，不足以导致软件主体不能运行，故飞兽公司虽存在违约行为，但尚不构成根本违约。毅舒公司主张以此解除合同，本院不予支持。本案中，毅舒公司明确其不再继续履行合同，而飞兽坚持主张已经完成所有合同项下的义务，无继续履行合同的必要，基于当事人双方均已无继续合同的意愿，强制履行涉案合同既无必要，亦无可能，故本院判决解除涉案合同。四、涉案合同解除后的处理《中华人民共和国合同法》第九十七条规定，合同解除后，尚未履行的，终止履行；已经履行的，根据履行情况和合同性质，当事人可以要求恢复原状、采取其他补救措施，并有权要求赔偿损失。本院将根据涉案软件的完成情况、当事人各自的违约程度以及合同性质确定合同解除后的处理后果。飞兽公司已经完成了涉案软件的多数功能，且毅舒公司不愿继续履行合同是导致涉案合同解除的重要原因，故毅舒公司应支付相应的合同费用。涉案合同并未就软件具体功能约定相应的对价，本院根据合同总价款、涉案软件的实际完成情况，以及双方当事人的违约程度，认定飞兽公司已开发完成成果及其向第三方支付的部分费用，与毅舒公司已经向飞兽公司支付的合同款项，在对价上基本相当。因此，对于毅舒公司主张飞兽公司返还已支付的合同款项，以及飞兽公司主张毅舒公司继续支付合同尾款和新增功能费用的诉请，本院均不予支持。飞兽公司还主张，其向第三方申请软件著作权，微信认证服务等产生的劳务费应由毅舒公司负担。本院认为，软件知识产权、微信认证、云主机的申请本就系飞兽公司的合同义务，飞兽公司向有关第三方支付的费用应由毅舒公司承担，但由此产生的劳务费用则应包含在合同价款之内。本案中，飞兽公司与公司均存在违约行为，故对其各自请求对方支付违约金的诉请，本院均不予支持。综上，依照《中华人民共和国合同法》第八条、第九十七条规定，判决如下：一、解除原告(反诉被告)上海毅舒空调工程科技有限公司与被告(反诉原告)上海飞兽信息科技(上海)有限公司签订的《格力空调定制开发项目—服务协议》；二、驳回原告(反诉被告)上海毅舒空调工程科技有限公司的全部诉讼请求。三、驳回被告(反诉原告)上海飞兽信息科技(上海)有限公司的全部反诉请求。本诉案件受理费人民币3,900元，由原告(反诉被告)上海毅舒空调工程科技有限公司负担；反诉案件受理费人民币1,610元，由被告(反诉原告)上海飞兽信息科技(上海)有限公司负担。如不服本判决，可以在判决书送达之日起十五日内，向本院递交上诉状，并按照对方当事人的人数提出副本，上诉于最高人民法院。审 判 长  陆凤玉审 判 员  范静波人民陪审员  吴惠丽二〇二〇年三月二十四日书 记 员  周 颖附：相关法律条文《中华人民共和国合同法》第八条依法成立的合同，对当事人具有法律约束力。当事人应当按照约定履行自己的义务，不得擅自变更或者解除合同。第九十七条合同解除后，尚未履行的，终止履行；已经履行的，根据履行情况和合同性质，当事人可以要求恢复原状、采取其他补救措施，并有权要求赔偿损失。