中华人民共和国最高人民法院 民 事 判 决 书 （2020）最高法知民终1677号 上诉人（原审被告、原审反诉原告）：宁波红松信息技术有限公司。住所地：浙江省宁波市北仑区梅山盐场**办公楼****。 法定代表人：张瑞华，该公司董事长。 委托诉讼代理人：王磊，北京长安（上海）律师事务所律师。 被上诉人（原审原告、原审反诉被告）：北京快乐格子信息技术有限公司。住所。住所地：北京市海淀区中关村东路****楼C-1606div> 法定代表人：杨坤英，该公司董事。 委托诉讼代理人：倪加元，男，该公司员工。 上诉人宁波红松信息技术有限公司（以下简称红松公司）因与被上诉人北京快乐格子信息技术有限公司（以下简称快乐格子公司）计算机软件开发合同纠纷一案，不服北京知识产权法院于2020年6月28日作出的（2017）京73民初1888号民事判决，向本院提起上诉。本院于2020年10月26日立案后依法组成合议庭，于2020年12月10日对本案进行了询问。红松公司委托诉讼代理人王磊，快乐格子公司委托诉讼代理人倪加元到庭参加询问。本案现已审理终结。 红松公司上诉请求：1.撤销原审判决第一、二、三项;2.判令驳回快乐格子公司要求红松公司支付合同价款113750元的诉讼请求;3.判令驳回快乐格子公司要求红松公司支付违约金22750元的诉讼请求;4.判令解除红松公司与快乐格子公司签订的《技术开发合同》（以下简称涉案合同）;5.判令快乐格子公司返还红松公司已付合同价款211250元。事实和理由： （一）原审法院关于“由于《软件系统结项验收单》（以下简称《验收单》）是该阶段验收工作确认后形成的文件，因此验收工作的开始依据并非快乐格子公司提交《验收单》，而应以快乐格子公司提交验收测试版，并且明确提请验收作为开始的依据”“快乐格子公司提交的系统于2016年11月7日通过验收。红松公司应于2016年11月10日向快乐格子公司支付第四笔款81250元”的认定均属错误。第一，涉案合同第七条明确约定：“……第三阶段：《验收单》，验收标准为：……验收时间为5个工作日，逾期不反馈即为默认确认……以上文件，均需甲乙双方签署确认。”根据前述约定，验收应是以《验收单》为开始，以签署《验收单》为结束；验收时间5个工作日的计算起点也应为红松公司收到《验收单》，原审判决的相关认定没有事实依据。第二，本案核心争议在于快乐格子公司是否依约完成软件系统开发工作，其提交的软件系统是否已通过验收。红松公司认为，快乐格子公司未能完成涉案合同约定的工作，其开发的软件系统未通过验收。首先，快乐格子公司未能在合同约定的期限内完成系统开发工作，直至2016年10月，快乐格子公司仍在对系统的测试版本进行修改，工作严重逾期。其次，快乐格子公司提交的软件验收测试版未达到使用要求，双方没有签署《验收单》，故无法通过验收。快乐格子公司技术、管理等能力薄弱，其开发的系统具有天生缺陷，虽经多次修改但仍无法达到使用要求。快乐格子公司虽然于2016年10月又通过邮件附件将涉案软件测试版的安卓系统客户端二维码、iOS端二维码、后台账号密码、结项确认书发给红松公司，但因快乐格子公司已严重逾期，软件系统经多次修改仍未达到使用要求，且未提交《验收单》，故红松公司未予回复。但是，不能因为红松公司未予回复即认定红松公司默认确认验收合格，亦不能由此认定快乐格子公司提交的验收测试版通过红松公司的验收。最后，涉案合同约定的工作成果（包括软件程序、完整源代码和设计文档、测试报告文档）现存于快乐格子公司处。根据涉案合同的约定，红松公司支付全部款项后，快乐格子公司应将前述工作成果交付红松公司。既然工作成果在快乐格子公司处，只要将其提交、展示即可说明其完成了涉案合同约定的系统开发工作。但原审庭审过程中，快乐格子公司始终无法提交并展示工作成果，由此说明其未完成相关工作，无法将工作成果最终交付给红松公司。第三，因系统未通过验收，故涉案合同约定支付第四期款81250元的付款条件不成立。原审判决认定红松公司应于2016年11月10日向快乐格子公司支付第四笔款81250元，显属错误。 （二）原审法院关于“快乐格子公司提交的证据可以证明其于2016年9月4日将系统iOS端上线于苹果应用商店中”“系统安卓端的上线时间为2016年12月23日”“系统上线工作于2016年12月23日全部完成，红松公司应于2017年1月4日之前，向快乐格子公司支付第五笔款32500元”的认定均属错误。第一，原审庭审中，快乐格子公司提交的证据不能证明其于2016年9月4日将系统iOS端上线于苹果应用商店，也不能证明系统安卓端的上线时间为2016年12月23日。快乐格子公司提交的相关证据包括：证据6红松车行iOS版、安卓版上线截图；补充证据1红松车行APP的苹果应用商店账号的后台数据截图3张；补充证据2百度快照截图。但红松公司对于前述截图的真实性均不予认可。原审庭审中，快乐格子公司未能将前述截图的来源当庭演示，无法证明其真实性，故前述证据不能作为认定案件事实的依据。即使前述截图真实，仅凭此证据也不能证明快乐格子公司将所述的软件上线。第二，原审庭审中，红松公司提交了（2019）京长安内经证字第4812号公证书（以下简称第4812号公证书），证明苹果应用商店中没有系统iOS端；（2019）京长安内经证字第5219号公证书（以下简称第5219号公证书），证明2019年2月2日虽然可以下载红松车行APP安卓版，但显示该APP的上线时间为2017年7月27日，且下载的APP无法正常使用。以上证据足以证明软件未上线。第三，涉案合同第五条约定：项目正式上线（发布至应用商店）后7个工作日内，红松公司向快乐格子公司支付尾款32500元。结合合同内容可知，所谓“正式上线”是指系统验收合格后由红松公司（快乐格子公司辅助红松公司）进行系统上线。因此，“正式上线”应符合如下条件：1.系统验收合格；2.红松公司将系统上线。根据原审查明的事实，软件系统根本没有正式上线。首先，因软件系统一直未能验收合格，故红松公司未进行系统上线的工作。其次，快乐格子公司所述软件系统上线发生于2016年8、9月，但原审证据显示2016年8、9月涉案软件系统仍在反复修改且未通过验收。故即使快乐格子公司所述系统上线一事属实，该“上线”亦非“正式上线”。第三，上线包括安卓系统、iOS系统，而在应用商店上线APP需要履行一整套流程，包括注册账号、信息认证、开发审核等，但快乐格子公司不能提供上述材料，由此说明软件系统根本未正式上线。最后，因软件系统未正式上线，故涉案合同约定支付尾款32500元的付款条件不成立，快乐格子公司无权要求红松公司向其支付尾款。原审认定红松公司应于2017年1月4日之前向快乐格子公司支付第五笔款32500元，亦属错误。 （三）原审法院关于“本案不属于《中华人民共和国合同法》（以下简称合同法）第九十四条规定的情形，红松公司并未获得解除权，无权要求解除涉案合同，也无权要求快乐格子公司返还已支付的合同款”的认定错误。涉案合同约定:快乐格子公司工作范围包括开发《平安汽车租赁APP》的安卓手机版、iOS手机版、管理后台；开发时间从2016年4月18日至2016年7月15日；快乐格子公司最终应交付的工作成果包括软件程序、完整源代码和设计文档、测试报告文档；开发费用总额325000元。根据上述约定可知，红松公司签订涉案合同的目的是在支付325000元后按时获得质量合格、可正常使用的“平安汽车租赁”APP手机安卓版、iOS手机版、管理后台的软件程序、完整源代码和设计文档、测试报告文档等。红松公司已依约支付前三期开发费用共计211250元。虽然涉案合同约定快乐格子公司在收到全部合同款前，系统的所有权益（包括源代码）归快乐格子公司所有，其在收到全部款项325000元后将工作成果交付红松公司，但既然快乐格子公司要求支付全部款项，则至少其有义务证明工作成果的存在,以保证在收到全部款项后有能力履行交付成果的义务。在红松公司已依约支付前三期开发费用共计211250元的前提下，快乐格子公司不能证明工作成果的存在，可见红松公司的合同目的已不能实现。根据合同法九十四条、九十七条的规定，红松公司有权解除合同并要求快乐格子公司返还已付合同款211250元。 （四）基于前述第一、二、三条上诉理由，因快乐格子公司的履行未满足涉案合同约定的付款条件，故其要求支付合同价款113750元的诉请不应得到支持，其要求支付违约金22750元的诉讼请求亦不应得到支持。 （五）原审判决结果对红松公司显失公平。红松公司已向快乐格子公司支付合同价款211250元，假如红松公司再向快乐格子公司支付113750元，则红松公司将支付全部合同价款325000元。但快乐格子公司在原审庭审过程中始终未能提交并展示其工作成果，由此表明其无法继续履行交付义务。在此情况下，原审仍判令红松公司向快乐格子公司支付剩余合同价款及违约金，导致红松公司的获得与付出严重不对等，对红松公司而言显失公平。 综上，请求二审法院依法支持红松公司的上诉请求。 快乐格子公司辩称：原审判决认定事实清楚，适用法律正确。 （一）红松公司关于“验收就是以《验收单》为开始，以双方签署《验收单》为结束；验收时间5个工作日的起算点也应为红松公司收到《验收单》。原判决相关认定没有事实依据”的上诉理由是错误的。验收工作的开始依据并非快乐格子公司提交《验收单》，而应为快乐格子公司提交验收测试版并明确提请验收。快乐格子公司于2016年8月18日、9月26日、10月11日、10月17日、11月16日多次提请验收并请求进行回复，红松公司均未回复。相反，红松公司总是以法定代表人出国、项目负责人更换等各种理由进行搪塞。 （二）红松公司关于“快乐格子公司未能完成该合同约定的工作，其开发的系统未通过验收”的上诉理由是错误的。快乐格子公司针对红松公司每次提出的修改意见和反馈均是及时快速完成沟通和修改，并多次提请验收。快乐格子公司在未收到全部款项前系软件成果的所有权人，依约对软件iOS版和安卓版进行了上线，并于2016年11月7日通过验收确认。根据涉案合同的约定，在快乐格子公司未收到全部合同款项之前，系统的所有权益（包括源代码）归快乐格子公司所有。虽然快乐格子公司迟延履行，但已经履行了相关开发义务。在2016年10月11日红松公司回复快乐格子公司的邮件中，红松公司明确说要在国庆后进行交接和结款；2016年10月26日的短信中红松公司的法定代表人朱培松明确称：“已经不会有什么修改了，已经修改完全部的功能了，等新的人就位就可以接收。”快乐格子公司经过多次沟通和修改，不断测验提交的软件版本，并对系统进行上线，已经依约完成了系统开发工作。红松公司在无法指出任何需要进一步修改之处的情况下，却以各种理由拖延，只能说明其没有付款的意愿。 （三）红松公司关于快乐格子公司不能证明将软件上线的上诉理由是错误的。快乐格子公司提交的截图除了上线截图外，还有iOS端在一段时间内被下载上千次的截图，足以证明上线行为的真实性。涉案系统上线至少一年多后由于苹果帐号和苹果政策变更的原因，导致iOS端后被下架。红松公司的公证书于2019年作出，距离2016年已长达3年之久，在互联网信息更新日新月异的情况下，于2019年对2016年的产品状态进行公证所得结果没有意义。快乐格子公司于2016年12月2日给红松公司的催款函中提到iOS端已经在2016年9月4日上线，如果红松公司反对，应该在第一时间指出，但红松公司并未回复。依据合同约定，快乐格子公司在未收到全部款项之前，拥有所有权益（包括源代码），而且快乐格子公司拥有上线所需的资料，故快乐格子公司将软件系统上线是合理合法的。 （四）红松公司关于其有权要求解除合同并要求快乐格子公司返还己付合同价款211250元的反诉请求应当得到支付的上诉理由是错误的。涉案软件系统开发和验收过程中，快乐格子公司多次向红松公司提交验收版本、修改后的成果，而且快乐格子公司已经明确告知红松公司已经上线。快乐格子公司完成的工作成果是真实存在的。因为距合同约定的验收时间已过去数年，系统的工作成果已被封存，在快乐格子公司收到全部款项后，快乐格子公司可以按当时封存的状态（包括源代码）给红松公司进行交付。同时，由于涉案软件依赖的软硬件系统在近几年期间已经有很大改变（涉案合同约定的是运行系统环境是建议安卓3.1、4.0、4.1、4.2、4.3、4.4以及iOS5、6、7、8，而现在已经步入安卓10及以上、iOS11及以上的年代），故如果软件需要进行修改以适应当前的软硬件系统，所需修改费用应由红松公司承担。红松公司认为其通过涉案合同仅获得几个二维码，快乐格子公司存在根本违约的理由并无事实依据。快乐格子公司虽在提请验收环节存在迟延履行，但其后续已经履行相关开发义务，本案不属于合同法第九十四条规定的情形，故红松公司未获得法定解除权，无权要求解除涉案合同及要求快乐格子公司返还己支付的合同款。 （五）红松公司关于原审判决结果对其显失公平的上诉理由是错误的。涉案系统已多次提请验收，且己正式上线，工作成果也已由快乐格子公司多次向红松公司发出邮件或短信请求确认。2016年11月7日系统通过验收确认。红松公司认为其通过涉案合同仅获得几个二维码，快乐格子公司存在根本违约的理由并无事实依据。快乐格子公司虽然迟延履行，但后续已经履行了相关开发义务。快乐格子公司仍可将封存的工作成果交付给红松公司。如果红松公司支付全部款项，且提供因自身拖延导致系统环境变化而必须的各项修改费用，快乐格子公司依然可以提交、展示、交付其工作成果。在快乐格子公司多次提交成果、提醒验收、催促付款的情况下，项目验收拖延是红松公司造成的，未依约支付款项也是红松公司违约所致，其理应自负其责。 综上，请求二审法院依法驳回上诉，维持原判。 快乐格子公司向原审法院提起诉讼，原审法院2017年11月14日立案受理。快乐格子公司起诉请求：1.判令红松公司支付合同价款113750元；2.判令红松公司支付违约金22750元。 红松公司原审辩称：涉案合同签订后，红松公司已经依约支付了前三笔合同款。涉案合同约定开发时间为2016年4月18日至2016年7月15日，但直至2016年11月16日快乐格子公司才发送项目测试报告，大大超过合同约定的完成时间。快乐格子公司提交的测试版本不符合合同约定，无法验收通过。请求依法驳回快乐格子公司全部诉讼请求。 红松公司反诉请求：1.确认双方签订的涉案合同于2017年8月3日解除；2.快乐格子公司返还合同款211250元。 针对红松公司的反诉请求，快乐格子公司原审辩称：快乐格子公司直至2016年11月16日才要求验收，系因为红松公司不断延期，拒绝验收，且不断提出修改意见，从而导致项目延期。请求依法驳回红松公司的反诉请求。 原审法院认定事实： 一、关于双方当事人签订合同的事实 2016年4月18日，红松公司（甲方）与快乐格子公司（乙方）签订了项目名称为“平安汽车租赁APP”的涉案合同。涉案合同约定： 工作范围：开发本系统的安卓手机版、iOS手机版、管理后台。 研发时间：3个月，乙方从2016年4月18日起，到2016年7月15日止，完成系统开发工作。 甲方的责任和义务：1.甲方应确保APP功能和双方确认的UI/UE原型经过甲方公司内部的评审及确认。产品验收以UE确认邮件为准。2.甲方有义务确定该项目的总负责人或授权负责人，所有项目阶段性确认函以该负责人的回复为准，回复方式为办公邮件、签字文件、QQ和QQ邮件、微信、短信。3.甲方有义务在3天内对乙方的项目开发阶段性确认函的所有内容进行确认。因甲方逾期未确认造成的后果由甲方承担。4.甲方有权督促乙方按规定时间完成项目开发；在验收阶段应及时办理乙方交付产品的验收。5.甲方有责任及时向乙方提供制作上述应用程序的所有素材。6.如需要甲方提供接口、SDK、服务器等内容，甲方有责任保证提供时间与完成质量，并且该时间符合项目实施过程中甲乙双方确认的时间，因甲方提交物的质量问题或时间延期，造成的项目成本增加、项目延期由甲方承担。7.甲方应当按照协议，按时向乙方支付开发费用。 乙方的责任和义务：1.乙方有责任按甲方的要求在规定的时间内独立完成合作软件的语言、设计、编码、系统测试、验收测试，并提交与合作软件相关的文档和代码。2.乙方应辅助甲方做好系统的上线，服务器主机的选择。3.乙方在开发阶段，保证每2周发送一次测试包给客户，及时汇报开发结果和进度等。 开发费用：总额为325000元。支付方式为：1.本合同签订后3个工作日内，甲方向乙方支付合同总额的20%作为预付款，即65000元；乙方收到款项后开始运作，款项收到日次日为项目开始日期，若有延迟支付，项目开始时间顺延。2.本系统完成《界面效果图》，甲方须在3个工作日内进行确认，并支付合同总额的20%费用（进度款），即65000元。3.本系统完成《界面效果图》确认后15天内，给甲方发送出第一个可安装的应用测试包，甲方须在3个工作日内进行确认，并支付合同总额的25%费用（进度款），即81250元。4.本系统开发完成提交验收测试版，甲方须在10个工作日内进行验收测试，甲方测试完毕后3个工作日内，甲方向乙方支付合同总额的25%费用（进度款），即81250元。5.项目正式上线（发布至应用商店）后7个工作日内，甲方向乙方支付合同总额的10%尾款，即32500元。6.若合同执行过程中系统需求发生变更，乙方需重新估算工作量和费用。在3个工作日内告知甲方，工期和费用由双方协商变更。7.如果因为甲方原因延期支付超过3个工作日，乙方有权中止项目，由此带来的后果和责任由甲方全部承担。 成果交付：系统上线后乙方收到甲方全部款项的次日，向甲方交付：软件程序、完整源代码和设计文档、测试报告文档。交付方式：以邮件加密形式发送至甲方邮箱：ｚｈｕ×××＠ｃｐａｃｒ.ｃｎ。交付生效：邮件发送成功即生效。 成果验收：第一阶段，《产品原型图确认单》，验收标准：符合《软件功能和报价清单》中提到的需求和功能，验收时间为3个工作日，逾期不反馈即为默认确认；第二阶段，《界面效果图确认单》和/或《软件需求规格说明书》（以下简称PRD），验收标准:符合《产品原型图确认单》和/或PRD文档标明的设计的功能和界面，验收时间为3个工作日，逾期不反馈即为默认确认；第三阶段，《验收单》，验收标准:符合《界面效果图确认单》或PRD中的系统功能和性能要求，验收时间为5个工作日，逾期不反馈即为默认确认。为了便于甲乙双方的工作，签字验收单的形式包括:书面签字、邮件回复确认，两种任选其一即可，均具有法律效力。 合同变更：本合同的变更必须由双方协商一致，并以书面或邮件形式确定。 知识产权：本系统的知识产权和软件著作权归乙方所有……甲方使用本系统的运营收益归甲方所有。在乙方收到所有款项和交付之前，本系统的所有权益（包括源代码）归乙方所有。如甲方不能按期支付款项，乙方有权中止项目，由此造成的延期和违约均由甲方承担。 违约责任：因为乙方原因造成的逾期交付(不包含因为甲方需求变更产生的逾期，不包含不可抗拒原因)，乙方应向甲方支付违约金。违约金按照每迟交付一周支付原合同总金额的0.3%确定(不足一周的，按一周计算)。甲方逾期付款(不可抗拒原因除外)，甲方应向乙方支付违约金，按照每迟付款一周支付原合同总金额的0.3%确定(不足一周的，按一周计算)。 附件：《平安汽车租赁APP软件功能与报价清单》。 二、关于双方当事人履行合同的事实 红松公司于2016年4月20日向快乐格子公司支付合同款65000元。 2016年5月26日，红松公司回复快乐格子公司称，APP界面效果具体调整如下……以上确认，如无问题进入下一阶段……申请打款流程。2016年5月30日，红松公司向快乐格子公司支付合同款65000元。 2016年6月15日，快乐格子公司向红松公司发送邮件，邮件中有“红松车行”的安装链接。红松公司回复称，收到，先运行测试看这一版本。2016年6月30日，快乐格子公司发送主题为“第一版可安装APP确认”的邮件，邮件中称已经按照要求调整完第一版可安装的APP，并提请支付第一阶段款项，邮件包括“红松车行”iOS端和Android端的安装链接。2016年6月30日及7月4日，快乐格子公司向红松公司发送邮件，主题为“平安汽车-第三笔进度-催收”，邮件主要内容是：快乐格子公司认为，按照涉案合同的约定，第三笔进度款是在UI效果图确认两周时提供可安装版本给红松公司，红松公司即应支付该笔款项，并提请红松公司注意，该笔款项不是以最终验收作为付款依据。2016年7月8日，红松公司向快乐格子公司支付合同款81250元。 2016年7月4日，快乐格子公司向红松公司发送邮件称，后台所有功能、iOS所有功能、Android所有功能均已完成，本周结束第二轮系统测试，并修改所有的bug，如果没有问题下周申请验收。 2016年7月7日，快乐格子公司向红松公司发送邮件称，APP上线需要提供以下资料……2016年7月8日，红松公司提供了相应资料。 2016年7月15日，快乐格子公司向红松公司发送邮件，询问如下问题：高德地图需要红松公司申请成为开发者，平安汽车里价格小数点问题，平安汽车验收后上线还是验收前上线。 2016年7月22日，快乐格子公司向红松公司发送邮件[注：此处应为原审法院笔误，应是红松公司向快乐格子公司发送邮件]，反馈意见主要有：APP：iOS字型略小，希望调整到适当大小；购车页面：购物车缺少删除操作；后台：数据库录入，车型信息页面无修改项等。 2016年7月26日，快乐格子公司向红松公司发送邮件称，现将部分问题相关文件给您：1.引导页、启动页规格尺寸；2.数据导入基本模板。 2016年8月2日，快乐格子公司向红松公司发送邮件，要求红松公司提供保险相关功能开发所需原始信息，红松公司回复称，收到，关于保险险种等信息，以前给我们开发团队发过邮件，我把林总当初发的材料再给您发一份。 2016年8月9日，快乐格子公司向红松公司发送邮件称：通过2016年8月5日的沟通，将项目日期更改如下：1.8月15日，开验收会；2.8月18日，开APP上线的发布会；3.8月20日，正式上线。目前已完成：1.iOS上线工作；2.功能完善；3.保险等计算公式确认；4.数据填充（您那边录入，正在进行中）；5.主流机型测试。待完成：1.出险救援功能模块显示；2.APP介绍（您那边提供）；3.沟通APP演示方式；4.Android版本上线；5.新版本打包测试；6.后台细节调整。红松公司当日回复称，收到。 2016年8月18日，快乐格子公司向红松公司发送邮件称，经过不断努力与完善，现已将程序完善，我方认为可以达到交付阶段，现将结项确认单发送给您，请您审核签字确认。 2016年8月29日，红松公司向快乐格子公司发送邮件称，附件是我公司领导对APP及后台的一些修改意见……APP开发已经进入验收阶段，希望我们双方共同努力，尽快解决相关问题，早日完成验收！ 快乐格子公司提交的证据显示，“红松车行”iOS端在苹果应用商店的更新日期为2016年9月4日，版本号为1.0。“红松车行”安卓端在应用商店的更新日期为2016年12月23日，版本号为0.1.3。红松公司提交了第4812号公证书，该公证书中记载，2019年1月31日，红松公司的代理人使用其持有的iPhone手机查看手机APP及所浏览的内容进行证据保全，在APPStore中搜索“红松车行”显示无结果。红松公司还提交了第5219号公证书，该公证书中记载，2019年2月2日，红松公司的代理人使用其手机（设备名称：HUAWEIP9）通过网络下载红松车行APP并查看相关功能的过程及内容进行证据保全，在该手机应用市场中搜索“红松车行”，显示该应用时间为2017年7月27日，版本为0.1.3，开发为快乐格子公司，下载安装该APP后，该APP中部分功能无法使用，显示“网络不给力，请检查网络设置”。 2016年9月20日，快乐格子公司向红松公司发送邮件称，平安汽车项目已经完成开发，bug已经修复完毕，现将Android、iOS两端的安装包以二维码的形式发送给您，请您安装查验，现在开始进入验收阶段，并确认结项事务，进入维护阶段。3日内未收到邮件回复（截至2016年9月23日），默认通过验收。邮件附件包括Android、iOS两端的安装链接。 2016年9月26日，红松公司回复验收中发现的问题，快乐格子公司对此进行了反馈。 2016年10月11日，快乐格子公司再次发送结项邮件，称与红松公司工作人员朱培林沟通，对产品进行修改与调整，最终达成一致，并将Android、iOS两端的安装链接发送给红松公司。邮件中还记载，如果三日内没有提出异议，自动默认结项通过。 2016年10月11日，红松公司回复，明天公司会对APP开发项目有一个讨论，之后会进行联系，办理后续产品交接和结款事宜。 2016年10月14日，红松公司向快乐格子公司发送邮件称，附件是昨天团队查出的问题，希望贵司把今天提交的问题解决后，最迟在10月18日双方见面，对软件做最后的验收交付。快乐格子公司回复称，会尽快处理，在今天下班前修改完毕。 2016年10月17日，快乐格子公司向红松公司发送邮件称，能修改的都修改了，请重新测试，APP无法跳转到支付页面是由于版本没有更新，现在可以正常使用。 2016年11月16日，快乐格子公司向红松公司发送邮件称，附件是快乐格子公司在10月11日发出的结项确认单，一直未回复，请红松公司收到此邮件后，回复本项目结项确认。 2016年12月2日，快乐格子公司向红松公司发送邮件进行催款。 原审法院认为：快乐格子公司与红松公司签订的涉案合同是双方当事人真实意思表示一致的结果，且不违反法律法规效力性强制性规定，系有效合同，双方当事人应严格按照涉案合同的约定履行。 合同法第六十条第一款规定，当事人应当按照约定全面履行自己的义务。根据涉案合同的约定，快乐格子公司的开发义务应当分为如下阶段：1.第一阶段《产品原型图确认单》，验收标准：符合《软件功能和报价清单》中提到的需求和功能。2.第二阶段《界面效果图确认单》和/或PRD，验收标准:符合《产品原型图确认单》和/或PRD文档标明的设计的功能和界面。3.第三阶段《验收单》，验收标准:符合《界面效果图确认单》或PRD中的系统功能和性能要求。对上述阶段中所指的确认单与验收单，应是验收通过后产生的确认文件，并不要求其记载详细的验收项目。 根据涉案合同约定，红松公司的付款义务分为如下阶段：1.第一笔款为合同签订后3个工作日即行支付65000元。2.第二笔款为本系统完成《界面效果图》，红松公司应对此在3个工作日内进行确认，并支付65000元。3.第三笔款为确认《界面效果图》后15天内，快乐格子公司给红松公司发送出第一个可安装的应用测试包，红松公司在3个工作日内进行确认，并支付81250元。4.第四笔款为本系统开发完成提交验收测试版，红松公司须在10个工作日内进行验收测试，测试完毕后3个工作日内，支付81250元。5.第五笔款为项目正式上线（发布至应用商店）后7个工作日内，红松公司支付32500元。 根据本案查明的事实，红松公司已经支付第一笔至第三笔合同款，红松公司也认可该三笔款的付款条件均已成就。因此，就双方的履行进度而言，快乐格子公司已经完成了第一阶段及第二阶段的开发工作，红松公司已经履行了第一笔至第三笔合同款的支付义务。双方对快乐格子公司是否完成第三阶段开发工作及第四笔、第五笔款项的付款条件是否成就存在争议。 关于第三阶段开发工作及第四笔款付款条件，快乐格子公司应当先向红松公司提交验收测试版，红松公司应在10个工作日内进行验收测试，测试完毕3个工作日内支付第四笔款。验收的依据是该验收测试版符合经过双方确认的《界面效果图》中的系统功能和性能要求，验收时间为5个工作日，逾期不反馈即视为默认确认。此处所指10个工作日，应是红松公司准备验收的期限，红松公司进入验收环节后，即应在5个工作日内完成验收。由于《验收单》是该阶段验收工作确认后形成的文件，因此，验收工作的开始依据并非快乐格子公司提交《验收单》，而应以快乐格子公司提交验收测试版，并且明确提请验收作为开始的依据。 本案中，2016年8月18日快乐格子公司的邮件中明确了提请验收的意思表示，红松公司于2016年8月29日进行了反馈。快乐格子公司根据反馈意见修订后，于2016年9月20日发送的邮件中，附上新的系统安装链接，并提请红松公司进行验收。2016年9月26日，红松公司进行了反馈。2016年10月11日，快乐格子公司再次于邮件中明确了提请验收的意思表示，并附上Android、iOS两端的安装链接。2016年10月14日，红松公司进行了反馈。2016年10月17日，快乐格子公司再次发送邮件，在该邮件中提请红松公司重新测试。该验收申请提交后，红松公司未再反馈。2016年11月16日，快乐格子公司提醒红松公司对2016年10月11日的验收申请予以回复，红松公司也未提交回复的证据。 根据涉案合同的约定，针对快乐格子公司于2016年10月17日的验收申请，红松公司应当在十个工作日内即2016年10月31日之前，进行功能测试，并在五个工作日内即2016年11月7日之前，完成验收，逾期未进行反馈则应视为确认验收。故原审法院确认，快乐格子公司提交的系统于2016年11月7日通过验收。红松公司应于2016年11月10日向快乐格子公司支付第四笔款81250元。红松公司并未提交相应支付证据，原审法院确认其并未完成支付款项的义务，应属违约。 关于第五笔款项的付款条件，项目上线至应用商店后，红松公司即应于7个工作日内完成支付。该支付条件中，上线工作应当全部完成后方可认为达到付款条件，上线至应用商店并未明确上线的主体，根据涉案合同的约定，快乐格子公司辅助红松公司做好系统的上线，可见，系统的上线工作应以红松公司为主进行，但是，由于系统的著作权归快乐格子公司所有，且在快乐格子公司收到所有款项和交付之前，系统的所有权益（包括源代码）归快乐格子公司所有，因此，在快乐格子公司自红松公司处取得相关上线资料后进行上线的行为，不应认定为违约行为。本案中，虽然红松公司的证据中显示，2019年1月30日，苹果应用商店中已经没有涉案系统的iOS端，但快乐格子公司提交的证据可以证明其于2016年9月4日将系统iOS端上线于苹果应用商店中，互联网中也存在系统iOS端上线的痕迹。因此，原审法院确认系统iOS端于2016年9月4日上线至苹果应用商店。快乐格子公司提交的证据显示，2016年12月23日，系统安卓端已经上线。快乐格子公司虽主张安卓端上线时间也在9月，但并未提交充分的证据；红松公司提交的证据显示系统安卓端的时间为2017年7月27日，但是安卓端的应用商店种类较多，红松公司证据中应用商店所显示系统安卓端的时间，不能直接认定为系统安卓端最早的上线时间，在快乐格子公司提交了在先上线证据的情况下，原审法院确认系统安卓端的上线时间为2016年12月23日。 综上，系统上线工作于2016年12月23日全部完成，红松公司应于2017年1月4日前向快乐格子公司支付第五笔款32500元。红松公司并未提交相应支付证据，原审法院确认其并未完成支付款项的义务，应属违约。 红松公司主张，快乐格子公司并未完成系统开发工作，且其提交验收测试的时间为2016年11月16日，远远晚于涉案合同约定的开发截止时间2016年7月15日，涉案合同目的已经不能实现，故红松公司有权解除涉案合同，并要求快乐格子公司返还合同款。对此，原审法院认为，根据双方往来邮件，2016年8月9日双方已经就涉案合同关于履行期限的约定进行了变更，变更后验收时间应在2016年8月15日，系统正式上线应在2016年8月20日。2016年8月18日，快乐格子公司才开始提请验收，确实晚于变更后的验收时间，存在迟延履行的情形，但并未达到不能实现合同目的之地步。在快乐格子公司提请验收后，双方就系统中存在的问题不断沟通，系统也完成了上线工作，并于2016年11月7日通过验收确认。根据涉案合同的约定，在快乐格子公司未收到全部合同款之前，系统的所有权益（包括源代码）归快乐格子公司所有，因此，红松公司所称其通过涉案合同仅获得了几个二维码，快乐格子公司存在根本违约的理由并无合同依据。快乐格子公司虽然迟延履行，但其后续已经履行了相关开发等义务，本案并不属于合同法第九十四条规定的情形，红松公司并未获得解除权，无权要求解除涉案合同，也无权要求快乐格子公司返还已支付的合同款。 合同法第一百一十四条第三款规定，当事人就迟延履行约定违约金的，违约方支付违约金后，还应当履行债务。本案中，快乐格子公司并未按照变更后的约定及时提交符合验收条件的系统，系统通过验收及上线时间存在迟延，属于迟延履行的情形。由于双方就迟延履行的违约责任进行了约定，红松公司有权主张快乐格子公司就迟延履行的违约行为支付相应违约金，但是红松公司并未提出该主张，故本案中快乐格子公司无需就迟延履行支付违约金。由于红松公司未按照涉案合同的约定支付第四笔及第五笔合同款，快乐格子公司有权要求红松公司支付相应违约金，根据涉案合同的约定，按照每迟付款一周支付涉案合同总金额的0.3%确定违约金，红松公司主张该违约金计算标准过高，原审法院认为违约金的计算一律以合同总金额作为基数确属不当，原审法院酌情调整为按照每迟付款一周支付未支付合同款金额的0.3%确定违约金，因此，第四笔款项的违约金应当以81250元为基数，自2016年11月10日起至实际给付日止，按照每周0.3%的利率进行计算；第五笔款项的违约金应当以32500元为基数，自2017年1月4日起至实际给付日止，按照每周0.3%的利率进行计算。经过计算，违约金总额已经超过快乐格子公司主张的数额。因此，原审法院确认红松公司应向快乐格子公司支付违约金22750元。 综上，原审法院判决：（一）红松公司于判决生效之日起十日内，向快乐格子公司支付合同款113750元；（二）红松公司于判决生效之日起十日内，向快乐格子公司支付违约金22750元；（三）驳回红松公司的反诉请求。如未按判决所指定的期间履行给付金钱义务，则应依据《中华人民共和国民事诉讼法》第二百五十三条之规定，加倍支付迟延履行期间的债务利息。本诉案件受理费3030元，由红松公司负担。反诉案件受理费4469元，减半收取2235元，由红松公司负担。 本案二审期间，双方当事人均未提交新证据。 本院经审理查明，原审法院查明的事实基本属实，本院予以确认。 本院另查明：双方在订立涉案合同后没有按照合同第七条的约定共同制定作为日后成果验收标准的《软件需求规格说明书》即PRD。 本院认为，根据当事人的诉辩意见及二审查明的事实，本案二审争议焦点问题是：（一）原审判决关于涉案合同第四期、第五期款项的付款条件已经成就的认定是否正确；（二）原审判决关于红松公司应向快乐格子公司支付违约金22750元的认定是否正确；（三）原审判决关于红松公司未取得涉案合同法定解除权的认定，以及快乐格子公司无需返回红松公司已支付开发款的认定是否正确。 一、关于原审判决对涉案合同第四期、第五期款项的付款条件已经成就的认定是否正确的问题 红松公司上诉认为，涉案合同第四期、第五期款项的付款条件未成就，主要理由是：（一）第四期款项的付款条件成就对应的是快乐格子公司开发完成涉案软件系统的验收测试版并通过红松公司的验收，但是，1.软件系统测试版工作的验收启动应以快乐格子公司向红松公司发出《验收单》为前提。快乐格子公司从未向红松公司发出《验收单》，从而导致无法完成验收；2.快乐格子公司未能在涉案合同约定的期限内完成软件系统测试版的开发工作，履行严重逾期；3.快乐格子公司的技术和管理能力薄弱，开发的软件系统具有天生缺陷，经多次修改仍未能达到使用要求；4.快乐格子公司始终无法提交、展示其声称已经全部完成的软件系统成果，亦无法将最终成果交付予红松公司。（二）第五期款项的付款条件成就对应的是涉案软件系统正式上线并发布至Android端和iOS端的应用商店，但是，1.快乐格子公司提交的在案证据不能证明其已将涉案软件上线至Android端和iOS端的应用商店；2.即使快乐格子公司将涉案软件上线至Android端和iOS端的应用商店，因其单方上线的软件此前并未通过红松公司的验收，自然不构成合同约定的“正式上线”。 结合红松公司的上诉理由，根据涉案合同的约定和二审查明的事实，本院认为，涉案合同第四期、第五期款项的付款条件已经成就，理由如下： 首先，关于第四期款项的支付问题。根据涉案合同第五条“开发费用”的约定，第四期款项的支付方式为：本系统开发完成提交验收测试版，红松公司须在10个工作日内进行验收测试，红松公司测试完毕后3个工作日内，向快乐格子公司支付合同总额的25%的进度款，合计81250元。针对第四笔款项对应的工作成果的验收事宜，涉案合同第七条“成果验收”约定：“第三阶段：《验收单》，验收标准为：符合《界面效果图确认单》或PRD中的系统功能和性能要求，验收时间为5个工作日，逾期不反馈即为默认确认。”通过梳理快乐格子公司和红松公司之间的交流记录，一方面，快乐格子公司先后于2016年7月4日、2016年8月18日、2016年9月20日、2016年10月11日、2016年11月16日的电子邮件中向红松公司提出对涉案软件测试版进行验收的请求，于2016年8月18日、2016年9月20日、2016年10月11日的电子邮件附件中附上结项确认书，特别是于2016年9月14日、2016年9月20日、2016年10月11日的电子邮件附件中均附上软件测试版的Android客户端二维码、iOS客户端二维码及后台账号密码，另于2016年10月17日针对红松公司最后一次针对涉案软件提出的修改意见（2016年10月14日）向后者发去请求重新测试的电子邮件。可见，作为开发方的快乐格子公司不但向红松公司交付了反复修改的涉案软件测试版，也数次向后者明确提出了申请验收的意思表示。另一方面，2016年8月至2016年10月期间，红松公司分别于2016年8月29日、2016年9月7日、2016年9月12日、2016年9月26日、2016年10月13日向快乐格子公司提出相应的软件修改意见，由此表明红松公司已收到快乐格子公司于不同时期提交的软件测试版。同时，针对红松公司提出的修改意见，快乐格子公司分别于2016年8月29日、2016年9月7日、2016年9月12日、2016年9月26日、2016年10月14日进行了反馈或配合进行了相应修改：（1）对于存在的设计瑕疵，快乐格子公司均及时进行了处理（例如针对红松公司于2016年9月12日提出的“后台的用户管理中，用户的基本信息要增加：真实姓名、身份证号、性别、出生日期、职业、职位、收入（年薪）”“账单中第二期还款日的计算公式仍然按照：交车日期（已交车）+15日”的问题，针对红松公司于2016年9月26日提出的“后台中‘费用表’删除‘表’字”“服务订单接单后，用户APP端订单显示‘取消’和‘去评价’有问题，‘取消’功能应删除，‘去评价’功能应在服务完成后显示”的问题，针对红松公司于2016年10月13日提出的“支付宝不能跳转”的问题）；（2）对于认为可以修改但内容含糊的问题，快乐格子公司及时请求红松公司澄清（例如针对红松公司于2016年9月26日提出的“角色管理中，添加手机号不是‘必填’，但是不填不能保存”的问题）；（3）对于不适宜修改或属于新增工时项目的问题，快乐格子公司也向红松公司给予说明。可见，对于红松公司提出的修改意见或反映的问题，快乐格子公司均在间隔不长的时间内作出了积极、快速的响应。而针对快乐格子公司的处理和反馈意见，从红松公司的再次反馈情况来看，并未看出其对快乐格子公司的工作提出实质性的质疑。特别是，针对快乐格子公司2016年10月14日的反馈意见，红松公司于2016年10月14日回应称“……我们希望贵司把今天提交的问题解决后，最迟在下周二（10月18日）咱们双方见面，对软件做最后的验收交付……”，但双方最终并未于2016年10月18日见面，红松公司未对此给出取消见面的合理解释。而且，在红松公司于2016年10月14日向快乐格子公司发出“10月18日双方见面”的电子邮件后，就再未向快乐格子公司发出任何邮件。并且，对于快乐格子公司于2016年10月17日发出的请求重新测试的电子邮件，以及于2016年11月16日发出的对2016年10月11日结项确认单再次请求确认结项的电子邮件，红松公司始终保持沉默。故在红松公司没有提交相关证据证明快乐格子公司2016年10月14日提交的最终测试版不符合软件功能需求的情况下，原审法院将2016年10月17日确定为快乐格子公司的最终验收申请日，符合双方在涉案合同履行过程中的实际交流情况。因此，原审法院根据涉案合同第五条“开发费用”和第七条“成果验收”的约定条款，认为红松公司应当在十个工作日内即2016年10月31日之前进行功能测试，并应在五个工作日内即2016年11月7日完成验收，红松公司逾期未反馈应视为确认验收，进而确认快乐格子公司提交的涉案软件系统于2016年11月7日通过验收，红松公司应于2016年11月10日支付第四期款项，具有合同依据和事实依据，并无不当。 其次，关于第五期款项的支付问题。根据涉案合同的约定，第五期款项的支付方式为：项目正式上线（发布至应用商店）后7个工作日内，红松公司向快乐格子公司支付合同总额的10%的尾款，合计32500元。其一，根据涉案合同第八条“知识产权”的约定，本系统的知识产权和软件著作权归快乐格子公司所有，在快乐格子公司收到所有款项和交付之前，涉案软件系统的所有权益（包括源代码）归快乐格子公司所有。因此，快乐格子公司对其于2016年10月14日修改完成的涉案软件，在没有收到红松公司支付的第四期、第五期开发款项前，有自由处分的合法权利。其二，红松公司订立涉案合同的目的，本就是为了将涉案软件发布至相关应用商店进行商业运营。涉案软件无论是由快乐格子公司单方主动上线，还是由快乐格子公司协助红松公司上线，均是其作为开发方应当履行的合同义务，也是其向红松公司主张第五期款项所应当支付的劳务对价。其三，通过将软件上线并接受市场的检验，有助于根据软件实际下载量和市场反馈情况，精准分析软件可以进一步完善改进的空间，进而通过后续的更新升级，使软件更为契合市场用户的需求，进而不断提升软件的用户满意度和市场占有率，这对于合同双方当事人而言实乃双赢局面。故快乐格子公司将修改完成的软件上线至Android端和iOS端的应用商店，与红松公司作为合同委托方的利益并不存在冲突，亦不背离红松公司订立涉案合同的目的。其四，快乐格子公司提交的在案证据，能够证明其开发的名称为“红松车行”的涉案软件已经先后于2016年9月4日、2016年12月23日发布至苹果应用商店和安卓应用商店。因此，原审法院根据涉案合同第五条“开发费用”和第七条“成果验收”的约定，认为快乐格子公司于2016年12月23日完成涉案软件系统的全部上线工作，红松公司应于2017年1月4日支付第五期款项，该认定具有合同依据和事实依据，并无不当。 最后，针对红松公司此节所提上诉理由，本院评述如下： 第一，关于应当如何理解《验收单》的问题。按照计算机软件开发合同的交易习惯，验收程序的启动应当以开发方提出验收申请为先导，以委托方审核确认软件符合功能需求并通过验收为完结。通常来讲，委托方如认可设计方开发的软件可以通过验收，或是在开发方提交的结项确认申请文件上签字盖章，或是单独给开发方出具验收通过的证明文件以示确认。当计算机软件开发合同当事人对于合同中的验收条款的相关措辞出现理解上的争议时，应当按照合同所使用的词句、合同的有关条款、合同的目的、交易习惯以及诚实信用原则，确定该条款的真实意思。对照涉案合同第七条“成果验收”关于三个阶段工作验收的文本内容，第一阶段的开发工作完结以双方共同签署《产品原型图确认单》为标志，第二阶段的开发工作完结以双方共同签署《界面效果图确认单》为标志，第三阶段的开发工作完结以双方共同签署《验收单》为标志。从涉案合同第七条所使用的措辞来看，无法得出每一阶段的验收程序的启动均需快乐格子公司提交确认单或验收单的解释结论。快乐格子公司在开发过程中数次向红松公司发出结项确认单，其请求启动验收程序的意思表示是真实、明确的。红松公司收到快乐格子公司提出的结项确认单后，并未以快乐格子公司未按照合同约定提交《验收单》为由，对快乐格子公司请求验收的意思表示提出质疑。因此，红松公司认为快乐格子公司软件测试版的验收启动，应以快乐格子公司向红松公司先行发出《验收单》为前提，快乐格子公司未提交《验收单》，故导致无法完成验收的上诉理由，既不符合涉案合同第七条的文本内容，亦有违计算机软件开发合同的交易习惯及诚实信用原则，本院不予支持。 第二，关于快乐格子公司是否履行严重逾期的问题。其一，涉案合同约定的研发周期为3个月，自2016年4月18日起至2016年7月15日止。但是，快乐格子公司于2016年8月9日向红松公司发出的电子邮件中称“通过2016年8月5日的沟通，将项目日期更改如下：1.8月15日，开验收会；2.8月18日，开APP上线的发布会；3.8月20日，正式上线……”,红松公司当日回复称“收到”。可见，红松公司并未对快乐格子公司关于双方经沟通后决定将项目周期作相应顺延的说法提出异议，故应认为双方已对涉案合同项目履行周期的变更达成合意。其二，涉案合同履行过程中，红松公司从未向快乐格子公司发出催促履行的书面通知。相反，红松公司于2016年10月14日给快乐格子公司的电子邮件中明确声称“……我们希望贵司把今天提交的问题解决后，最迟在下周二（10月18日）咱们双方见面，对软件做最后的验收交付……”可见，红松公司在最后一次给快乐格子公司发去的电子邮件中仍然表达出希望对涉案软件项目完成最后验收交付的愿望，并未流露出对快乐格子公司开发进度的不满。其三，快乐格子公司于2016年8月18日首次提出结项确认的申请，确实晚于原定于8月15日举行验收的日期，但仅凭借这一事实即认为快乐格子公司已构成履行严重逾期，理据并不充分。事实上，早在2016年7月4日，快乐格子公司给红松公司发送的邮件中即已明确声称“后台所有功能、iOS所有功能、Android所有功能均已完成，本周结束第二轮系统测试，并修改所有的bug，如果没有问题下周申请验收。”可见，快乐格子公司对于涉案合同原定的开发周期截止时点（2016年7月15日）具有清楚的认知，并展现出希望尽快推进项目完结的意愿，并无借故拖延履行的意图。而红松公司直至2016年7月22日才向快乐格子公司反馈测试版软件存在若干问题，该反馈时间已经超出涉案合同项目原定的周期截止日2016年7月15日。可见，红松公司并未对涉案合同项目的截止时间保持足够的敏感性。最后，在案事实进一步反映，双方在2016年8月-10月期间就软件的修改优化问题进行了多次往复沟通，这一情况客观上也造成软件不能按期验收和上线，但红松公司将该结果单方归责于快乐格子公司，对后者有失公平。原因在于，双方在订立涉案合同后并没有按照合同第七条的约定共同制定作为日后成果验收标准的《软件需求规格说明书》，由于缺乏前述说明书，双方在开发过程中就软件功能需求进行反复沟通的时间成本上升自然在所难免。因此，红松公司关于快乐格子公司未能在涉案合同约定的期限内完成软件系统测试版的开发工作，履行严重逾期的上诉理由不能成立，本院不予支持。 第三，关于快乐格子公司开发的软件是否存在严重缺陷的问题。一方面，前已述及，快乐格子公司所开发的涉案软件“红松车行”已于2016年12月23日完成在iOS端和Android端应用商店的全面上线工作，如果快乐格子公司将一款存在严重缺陷，根本无法满足使用要求的APP软件发布上线，无异于“自砸招牌”，于自身市场声誉和公司信誉而言丝毫没有任何益处可言，立足于理性人的认知和生活经验法则，可以合理推定快乐格子公司上线的软件能够满足正常使用要求。另一方面，软件是否存在使用上的瑕疵（俗称“bug”）与软件是否无法正常使用，不应归属于同一个概念认知范畴。一款软件开发完成后，开发人员根据软件后续使用过程中暴露出的漏洞或缺陷进行更新优化实属正常，但如果因此即倒推认为开发出来的软件系不能正常使用的软件，则实有违计算机软件开发行业的基本规律。红松公司关于“快乐格子公司技术管理能力薄弱，开发的软件系统具有天生缺陷，经过多次修改仍未能达到使用要求”的指摘，既未充分举证证明涉案软件的“天生缺陷”究竟为何，也未充分举证证明涉案软件尚未满足何种使用要求。因此，本院对快乐格子公司的前述上诉理由不予支持。 第四，关于快乐格子公司未交付全部软件系统成果的问题。根据涉案合同第六条“成果的交付”的约定，快乐格子公司向红松公司交付软件程序、完整源代码和设计文档、测试报告文档的前提条件是收到红松公司支付的全部款项。可见，结清开发款和交付全部软件系统成果存在履行上的先后顺序。红松公司在尚未结清第四期、第五期开发款项的情况下，自然无权要求快乐格子公司移交全部软件系统工作成果。涉案合同关于第四期、第五期款项支付的约定，也不以快乐格子公司向红松公司展示全部开发成果为条件。因此，红松公司关于快乐格子公司无法提交、展示、交付全部软件系统工作成果，故不能证明快乐格子公司完成涉案合同约定的开发工作的上诉理由不能成立，本院不予支持。 第五，关于快乐格子公司是否将涉案软件发布上线的问题。其一，前已述及，快乐格子公司提交的在案证据足以证明涉案软件分别于2016年9月4日、2016年12月23日发布至苹果应用商店和安卓应用商店。其二，红松公司提交的第5219号公证书亦可以证明在安卓市场中曾经出现应用时间为2017年7月27日、版本为0.1.3，开发者为快乐格子公司的“红松车行”APP软件，此一事实亦可从侧面佐证快乐格子公司将涉案软件发布上线。其三，红松公司所提交的第4812号公证书、第5219号公证书的公证保全时间均发生于2019年，而涉案软件的开发上线工作是在2016年，二者中间间隔时间长达三年，在该三年中因双方当事人围绕涉案合同履行出现纠纷导致软件上线后的维护运营工作受到影响，致使涉案软件被从应用商店中下架，也是可以合理预见之事。故不能因为红松公司2019年的公证保全未在iOS和Android应用端正常搜索到或使用涉案软件，即推翻快乐格子公司于2016年将涉案软件发布上线的事实。因此，红松公司关于快乐格子公司不能证明其将涉案软件发布上线的上诉理由不能成立，本院不予支持。 最后，关于快乐格子公司将涉案软件发布上线是否属于正式上线的问题。按照涉案合同的约定，涉案软件的上线，原本应当是经由红松公司与快乐格子公司完成涉案软件测试版的验收并签署《验收单》后，由快乐格子公司协助红松公司将软件发布至苹果端和安卓端的应用商店，即合同所指的“正式上线”。但是，由于红松公司对快乐格子公司于2016年10月17日发出的请求重新测试的电子邮件、于2016年11月16日发出的对2016年10月11日结项确认单再次请求确认结项的电子邮件均未作出反馈。故涉案软件测试版是按照合同中“拟制验收”的规定（即逾期不反馈即为默认确认），于2016年11月7日视为通过验收。前已述及，快乐格子公司有权将涉案软件单方发布上线。因此，基于前述关于快乐格子公司已于2016年12月23日完成软件系统上线全部工作的事实认定，应认为涉案软件项目已经正式上线。红松公司一方面对快乐格子公司于2016年10月17日提出的重新测试和结项确认请求无故保持沉默，另一方面又认为只有满足“系统验收合格”和“由红松公司进行系统上线”才构成“正式上线”，显然不符合诚实信用原则。因此，对于红松公司关于快乐格子公司单方将涉案软件发布上线不构成正式上线的上诉理由，本院不予支持。 综上，原审判决关于涉案合同第四笔、第五笔款项的付款条件已经成就的认定正确，红松公司此节上诉理由不能成立，本院不予支持。 二、关于原审判决对红松公司应向快乐格子公司支付违约金的认定是否正确的问题 根据合同法的相关规定，依法成立的合同，对当事人具有法律约束力。当事人应当按照约定全面履行自己的义务。当事人一方不履行合同义务或者履行合同义务不符合约定，应当承担继续履行、采取补救措施或者赔偿损失等违约责任。当事人可以约定一方违约时应当根据违约情况向对方支付一定数额的违约金，也可以约定因违约产生的损失赔偿额的计算方法。 本案中，根据涉案合同第十二条“违约责任”的约定，红松公司逾期付款（不可抗拒原因除外），其应向快乐格子公司支付违约金，违约金按照每迟付款一周支付原合同总金额的0.3%确定（不足一周的，按一周计算）。如前所述，涉案合同第四期、第五期款项的付款条件已经成就。红松公司没有正当理由，拖欠支付快乐格子公司第四期、第五期开发款，已构成违约，应当承担支付违约金的违约责任。红松公司此节关于其不应支付违约金的上诉理由，与红松公司在第一个争议焦点所提上诉理由密切相关，鉴于本院在第一个争议焦点问题中对于红松公司的上诉理由已详加回应，于此不再赘述。 综上，原审判决关于红松公司应当向快乐格子公司支付违约金的认定，具有合同依据和事实依据，并无不当。红松公司此节上诉理由不能成立，本院不予支持。 三、关于原审判决对红松公司未取得涉案合同法定解除权的认定是否正确，以及快乐格子公司是否需要返还红松公司已支付的开发款的问题 根据前述两个争议焦点问题的分析，快乐格子公司依约履行了涉案合同约定的全部主合同义务，红松公司无正当理由拖欠支付最后两期开发款，已构成实质违约。红松公司作为违约方，以快乐格子公司未完成涉案软件的开发为由主张解除合同并要求返还第一期至第三期的开发款项，缺乏理据。因此，原审判决关于红松公司未获得解除权、其无权要求解除涉案合同、无权要求快乐格子公司返还已支付的开发款的认定正确，红松公司该项上诉理由不能成立，本院不予支持。 综上所述，原审判决认定事实清楚，适用法律正确，应予维持；红松公司的上诉请求及理由不能成立，应予驳回。依照《中华人民共和国民事诉讼法》第一百七十条第一款第一项之规定，判决如下： 驳回上诉，维持原判。 二审案件受理费6516元，由宁波红松信息技术有限公司负担。 本判决为终审判决。 审判长 何 鹏 审判员 欧宏伟 审判员 李自柱 二〇二〇年十二月二十三日 法官助理陈文琳 书记员管众 裁判要点                            案 号                       （2020）最高法知民终1677号                               案 由                       计算机软件开发合同纠纷                               合议庭                       审判长：何鹏             审判员：欧宏伟、李自柱                                                     法官助理：陈文琳                       书记员：管众                               裁判日期                       2020年12月23日                               关键词                       计算机软件开发合同；违约；拟制验收；解除合同；违约金                               当事人                       上诉人（原审被告、原审反诉原告）：宁波红松信息技术有限公司；             被上诉人（原审原告、原审反诉被告）：北京快乐格子信息技术有限公司。                               裁判结果                       驳回上诉。维持原判。             原判主文：一、宁波红松信息技术有限公司于本判决生效之日起十日内，向北京快乐格子信息技术有限公司支付合同款113750元；二、宁波红松信息技术有限公司于本判决生效之日起十日内，向北京快乐格子信息技术有限公司支付违约金22750元；三、驳回宁波红松信息技术有限公司的反诉请求。                               涉案法条                       《中华人民共和国合同法》第八条、第九十四条、第一百零七条、第一百一十三条、第一百二十五条；             《中华人民共和国民事诉讼法》第一百七十条第一款第一项。                               法律问题                       关于计算机软件开发合同验收程序的理解                               裁判观点                       按照计算机软件开发合同的交易习惯，验收程序的启动应当以开发方提出验收申请为先导，以委托方审核确认软件符合功能需求并通过验收为完结。通常来讲，委托方如认可设计方开发的软件可以通过验收，或是在开发方提交的结项确认申请文件上签字盖章，或是单独给开发方出具验收通过的证明文件以示确认。计算机软件开发合同当事人对于合同中的验收条款的相关措辞理解出现争议时，应当按照合同所使用的词句、合同的有关条款、合同的目的、交易习惯以及诚实信用原则，确定该条款的真实意思。对照涉案合同第七条“成果验收”关于三个阶段工作验收的文本内容，第一阶段的开发工作完结以双方共同签署《产品原型图确认单》为标志，第二阶段的开发工作完结以双方共同签署《界面效果图确认单》为标志，第三阶段的开发工作完结以双方共同签署《验收单》为标志。从涉案合同第七条所使用的措辞来看，无法得出每一阶段的验收程序的启动均需快乐格子公司提交确认单或验收单的解释结论。快乐格子公司在开发过程中数次向红松公司发出结项确认单，其请求启动验收程序的意思表示是真实、明确的。红松公司收到快乐格子公司提出的结项确认单后，并未以快乐格子公司未按照合同约定提交《验收单》为由，对快乐格子公司请求验收的意思表示提出质疑。因此，红松公司认为快乐格子公司软件测试版的验收启动，应以快乐格子公司向红松公司先行发出《验收单》为前提，快乐格子公司未提交《验收单》，故导致无法完成验收的上诉理由，既不符合涉案合同第七条的文本内容，亦有违计算机软件开发合同的交易习惯及诚实信用原则。                               注：本摘要并非判决书之组成部分，不具有法律效力。