广东省佛山市中级人民法院民 事 判 决 书（2019）粤06民终14368号上诉人（原审被告、反诉原告）：广州爱特安为科技股份有限公司，住所地广东省广州市荔湾区*************，1302室，1303室，统一社会信用代码914***********564J。法定代表人：邓某1。委托诉讼代理人：向振宏，广东莞泰律师事务所律师。委托诉讼代理人：宾芳梅，广东莞泰律师事务所律师。被上诉人（原审原告、反诉被告）：佛山市千径网络科技有限公司，住所地广东省佛山市顺德区乐从镇乐从社区*委会佛山新城裕和路**保利东瑞广场******（住所申报），统一社会信用代码91440606MA51XNLC1R。法定代表人：钟某1。委托诉讼代理人：龙嘉莉，广东为峰（白云）律师事务所律师。委托诉讼代理人：李军，广东为峰（白云）律师事务所律师。上诉人广州爱特安为科技股份有限公司（以下简称爱特安为公司）与被上诉人佛山市千径网络科技有限公司（以下简称千径公司）因合同纠纷一案，不服广东省佛山市顺德区人民法院（2019）粤0606民初13339号民事判决，向本院提起上诉。本院于2019年11月28日立案后，依法组成合议庭进行了审理。本案现已审理终结。千径公司向一审法院起诉请求：1.确认千径公司与爱特安为公司于2018年5月18日签订的《项目开发合同书》于2019年2月26日解除；2.爱特安为公司向千径公司退还已支付款项172800元及利息（以172800元为本金，自2019年2月27日起，按照中国人民银行同期逾期贷款利率的标准计算利息，算至爱特安为公司实际支付款项止）；3.爱特安为公司向千径公司支付违约金46368元（以288000元为本金，自2018年9月19日起，按照每日千分之一的标准计算，暂计至2019年2月26日，暂计161天）；4.爱特安为公司向千径公司赔偿全部损失176092.09元；5.本案的诉讼费由爱特安为公司承担。爱特安为公司向一审法院提出反诉，请求：1.千径公司继续履行《项目开发合同》；2.千径公司立即向爱特安为公司支付合同项目剩余全部未付款项115200元；3.千径公司立即向爱特安为公司支付因需求变更而增加爱特安为公司工作量对应的款项73901元；4.千径公司立即向爱特安为公司支付逾期支付合同款项的违约金（违约金以合同总价款288000元为基数，按每日千分之一的标准自2018年10月23日起计至款项付清之日止，暂计至2019年7月19日共270天为77760元）；以上暂合计266861元；5.千径公司承担本案诉讼费用。一审法院查明：千径公司拟委托爱特安为公司开发一款名为“步履千寻”的旅游APP。2018年5月11日，爱特安为公司根据千径公司的要求制定了《项目实施图》，载明了该款APP的模块（包括登录注册、广告查询等工具、旅行地图、旅行项目商品等）、功能及功能描述等内容。2018年5月18日，千径公司与爱特安为公司正式签订一份《项目开发合同书》，主要约定如下：1.爱特安为公司根据千径公司提供的相关项目开发需求资料，提供《项目需求规格说明书》《项目原型图》《UI页面设计稿》，并交付千径公司审批，经千径公司审核确认后，爱特安为公司应实现解决方案所述的全部开发功能（合同第一条第2点）。2.在爱特安为公司各项开发功能完善后，应就项目进行功能测试，并向千径公司提供测试报告，确保开发项目的各项功能正常使用（合同第一条第3点）。3.项目总工期为120个自然天，并以双方签订合约当天后开始计算，爱特安为公司需在总工期内完成相关软件开发、测试并交付产品（合同第二条）。4.千径公司对爱特安为公司在开发过程中所提交的技术资料、文件、确认函等，千径公司须在收到资料后5个工作日内作书面回复或确认，以确保开发的进度（合同第三条第3点）。5.爱特安为公司应在合同要求的期限完成项目开发，并及时通知千径公司进行验收，对千径公司在验收期内所提出本合同服务内容范围内的不合格地方，爱特安为公司应在5个自然天内修改完毕（合同第三条第9点）。6.在开发过程中，对千径公司提出本合同服务内容范围的合理删除或必要修改，爱特安为公司应尽力配合并完成，对超出服务内容范围的，爱特安为公司需提供相关书面资料给千径公司确认后协商处理（合同第三条第11点）。7.千径公司应积极配合爱特安为公司外测版本的测试工作，应在收到爱特安为公司提供的版本链接或安装包15个自然天内提供反馈文档，超过30个自然天没有任何反馈的默认该版本为验收版本（合同第四条第1点）。8.验收合格标准：项目功能符合《附件1：项目技术架构图》要求，并且正常运行，本项目运行稳定（合同第四条第3点）。9.经千径公司验收或试运行检查，发现爱特安为公司交付的开发成果不符合合同及附件描述验收标准的，千径公司有权要求爱特安为公司限期改正，爱特安为公司应于接到千径公司通知之日起5个自然天内修改完毕，并再次通知千径公司验收。若经千径公司二次验收后，仍不符合本合同约定的验收标准的，双方在第三次商议修改时间，仍不能按时交付，则千径公司有权解除本合同，不再履行本合同所列义务，爱特安为公司需要承担因此给千径公司造成的所有损失（包括但不限于退还全部千径公司已支付款项、项目延期损失等）（合同第四条第5点）。10.项目总金额为288000元，千径公司应分四期向爱特安为公司支付合同项目的开发费用：第一期应在签订合同之日起五个工作日内支付合同总金额的40%即115200元，第二期应在爱特安为公司完成UI并经千径公司邮件确认之日起三个工作日内支付合同总金额的20%即57600元；第三期应在爱特安为公司提交第一个完整测试版本时支付合同总金额的20%即57600元；第四期应在爱特安为公司完成项目编码的工作交与千径公司测试，千径公司经测试无异议后，在项目验收合格起三个工作日内支付合同总金额的20%即57600元（合同第六条）。11.由于爱特安为公司原因，未按合同约定期限提交相应的项目的，爱特安为公司应每日向千径公司支付合同总价千分之一的违约金，爱特安为公司由于自身过错未能按本合同规定的时间提交开发成果，逾期超过30个自然日的，千径公司有权解除合同，爱特安为公司需要承担因此给千径公司造成的所有损失（包括但不限于退还全部千径公司已支付款项、项目延期损失等）（合同第八条第4点）。12.如千径公司未在规定日期内向爱特安为公司缴纳合同规定的费用，千径公司应每日向爱特安为公司支付合同总价千分之一的违约金，千径公司超过15个工作日未支付合同规定的费用的，爱特安为公司有权停止项目的开发（合同第八条第5点）。2018年5月22日，爱特安为公司向千径公司提供项目进度计划表（即甘特图），载明爱特安为公司应于2018年9月7日向千径公司交付APP项目并由千径公司完成验收。2018年5月24日，千径公司向爱特安为公司支付合同约定的第一期款项115200元。2018年6月25日、2018年7月3日、2018年7月12日，爱特安为公司先后三次将原型确认书通过邮件发送给千径公司并要求其确认。2018年7月16日，千径公司最终确认爱特安为公司提供的《APP产品原型确认书》，爱特安为公司进入UI设计阶段工作。该确认书补充说明：千径公司确认后如果发生需求变更，都需要进行商务流程，并将变更需求记录到《客户需求变更表》中，可能会产生额外费用，具体费用以最终评估为准。2018年7月24日、2018年7月25日、2018年8月7日、2018年8月11日，爱特安为公司先后四次将UI风格图、UI页面设计图通过邮件发送给千径公司并要求确认。2018年8月15日，千径公司最终确认爱特安为公司提供的《UI确认书》，爱特安为公司进入开发工作。该确认书补充说明同上。2018年8月21日，千径公司向爱特安为公司支付合同约定的第二期款项57600元。双方对前述第一期及第二期付款阶段所对应的履行均无异议。2018年8月22日，双方确认新的甘特图，载明爱特安为公司应于2018年11月16日前向千径公司交付APP项目并由千径公司完成验收。2018年10月22日，爱特安为公司向千径公司提供APP的内测链接及后台管理员的账号、密码。同时，爱特安为公司通过微信向千径公司告知的开发进展如下：1.接口协议已完成，后台功能进展90%；2.前端静态页面开发完成，功能及对接接口进度95%；3.因微信账号不满足开通90天及30天流水的要求，提现功能暂时未对接；4.客服及后台数据统计预计这周可完成（略有延迟）；5.本周进入内部测试阶段（开发成果可直接在“步履千寻”公众号内点击进去体验，目前已对接公众号）。千径公司庭审中确认，爱特安为公司提供的该测试版本模块是完整的，但重点功能无法使用。2018年11月15日，针对千径公司的需求描述，爱特安为公司向千径公司发送一份《需求变更表V1.0》，收费价格免费。2018年11月19日，千径公司通过邮件向爱特安为公司发送《11.19系统测试反馈》，反映上述内测版本在用户登录、文档导出、商城、旅行地图等多个方面存在问题。2018年12月6日，爱特安为公司向千径公司发送《步履千寻项目测试版本验收单》，注明该项目完成进度为100%，要求千径公司进行验收。同时，爱特安为公司在邮件中亦要求千径公司支付第三期款项57600元，但千径公司均予以拒绝。2018年12月7日，千径公司再次通过邮件向爱特安为公司发送需要修改完善的内容，其中有两项对UI进行了修改。同日，针对千径公司的需求描述，爱特安为公司向千径公司发送一份《需求变更表V1.3》，其中有一项对UI进行了修改，收费价格免费。2018年12月12日，千径公司确认验收APP的旅行商城、个人中心、定制旅行三大模块。2018年12月19日，案涉APP在千径公司公众号上线，上线的模块为前述三大模块。2018年12月20日，针对千径公司的需求描述，爱特安为公司向千径公司发送一份《需求变更表V1.4》，收费价格无记载。2018年12月29日，针对千径公司的需求描述，爱特安为公司向千径公司发送一份《需求变更表V1.4》，收费价格为17800元。2019年1月4日，爱特安为公司再次向千径公司提供测试版本的链接，但千径公司认为该版本非真实环境下的完整测试版本。2019年2月21日，针对千径公司的需求描述，爱特安为公司向千径公司发送一份《需求变更表V1.5》，其中有八项属于需求变更、两项属于新功能，收费价格为66101元。2019年2月26日，千径公司通过邮件向爱特安为公司发送了解除《项目开发合同书》的通知。千径公司遂于2019年6月24日向法院提起本案诉讼。另查明，2019年7月10日，爱特安为公司前往广州市荔湾公证处对案涉APP在电脑上浏览网页情况进行了证据保全。一审法院认为：本案的争议焦点为：一、《项目开发合同书》约定的第三期款项支付条件是否成就；二、千径公司、爱特安为公司是否存在违约行为。针对第一个焦点。根据《项目开发合同书》第六条约定，双方对前两期款项的支付及履行均无异议。第三期则应在爱特安为公司提交第一个完整测试版本时支付合同总金额的20%即57600元，现双方对“完整测试版本”存在分歧。爱特安为公司系于2018年10月22日提交了第一个内测版本。千径公司认为根据前述合同约定，爱特安为公司应提交外测版本，但爱特安为公司提供的为内测版本且该版本存在多项功能缺失等问题；爱特安为公司则认为前述合同约定并无明确为内测抑或外测版本，其提供的内测版本功能完整，至于功能修复及完善则应在第三期款项支付后才进行。对此，法院认为，首先，虽该条款并无明确载明外测抑或内测版本，根据《中华人民共和国合同法》第六十一条“合同生效后，当事人就质量、价款或者报酬、履行地点等内容没有约定或者约定不明确的，可以协议补充；不能达成补充协议的，按照合同有关条款或者交易习惯确定”之规定，并结合《项目开发合同书》第四条第1点的约定以及甘特图的进度安排，可合理推断，爱特安为公司向千径公司提供的测试链接应为外测版本的链接。其次，关于该测试版本是否“完整”的理解，法院认为除了APP的架构、模块的完整，还应体现在基本功能的完整及基本顺畅上。而爱特安为公司提供的该测试版本，千径公司虽承认在模块上是完整，但根据证据显示，该测试版本存在许多功能上的缺失，导致用户无法正常使用。如最基本的登录，案涉APP是需要用户登录才能使用各项基本功能，但该测试版本在登录方面甚至存在无法登录或登录后前期操作无故灭失的情况。另，根据2018年10月22日当日爱特安为公司提供内测版本链接时的微信内容可知，爱特安为公司承认该测试版本功能及对接接口进度只达到90%。甚至于2019年7月10日爱特安为公司对案涉APP的网页操作情况进行公证的多份图片中，亦未能体现该APP在模块及基本功能上的完整性。综上，法院认为，合同里约定的第三期款项支付条件未成就，爱特安为公司反诉请求千径公司支付剩余项目款项的主张无事实依据，法院不予支持。针对第二个争议焦点。首先，爱特安为公司辩称案涉APP开发工期延期的原因在于千径公司确认时间较长。对此，法院认为，案涉APP开发的甘特图双方经过先后两次确认：第一次确认的完成期限为2018年9月7日，第二次延期后确认的完成期限为2018年11月16日。在延期前，根据第一份甘特图，爱特安为公司提供原型设计图的期限为2018年5月31日，但其实际是于2018年6月25日才首次向千径公司提交原型设计图供确认，工期延时达25个自然天。退一步论，即使千径公司在对原型设计图及UI设计图确认前多番要求修改而导致确认工期延迟至2018年11月16日，但爱特安为公司亦未能在延期后的工期内向千径公司提供完整的APP外测版本进行验收。根据千径公司提供的双方邮件往来、微信对话及软件功能缺失PPT，甚至在2018年12月19日提供的上线版本中，模块不完整，用户亦未能对APP的基本功能进行有效、流畅的使用。其次，根据《项目开发合同书》第一条第3点及第四条第3点的约定，爱特安为公司未能举证证明其在开发APP期间，在开发功能完成后，进行了功能测试并向千径公司提供测试报告以确保各项功能的正常使用。即爱特安为公司于2018年10月22日向千径公司提供第一个内测版本时，根据爱特安为公司在微信中的陈述进度，其不但未100%完成功能开发，更未对各项功能进行过测试，导致千径公司在进行内测时问题频现导致APP无法正常并流畅使用。综上，法院认为过错方为爱特安为公司。根据《中华人民共和国合同法》第二百五十一条“承揽合同是承揽人按照定作人的要求完成工作，交付工作成果，定作人给付报酬的合同”之规定以及《项目开发合同书》第八条第4点之约定，爱特安为公司未能在期限内按照千径公司的要求完成工作并交付合格的工作成果，千径公司有权解除合同。至于合同解除时间，千径公司已于2019年2月26日通过邮件向爱特安为公司明确表达了解除合同之意，爱特安为公司亦于当日收到该邮件，根据《中华人民共和国合同法》第九十三条第二款“当事人可以约定一方解除合同的条件。解除合同的条件成就时，解除权人可以解除合同”及第九十六条“当事人一方依照本法第九十三条第二款、第九十四条的规定主张解除合同的，应当通知对方。合同自通知到达对方时解除。对方有异议的，可以请求人民法院或者仲裁机构确认解除合同的效力”之规定，《项目开发合同书》于2019年2月26日解除。爱特安为公司反诉请求继续履行该合同，无事实及法律依据，法院不予支持。关于千径公司主张退还已支付款项的问题。如上所述，因爱特安为公司的行为构成违约，导致千径公司的合同目的无法实现，故千径公司根据《项目开发合同书》第八条第4点后部的约定行使了合同解除权，并有权要求爱特安为公司承担由此造成的所有损失即包括但不限于退还全部千径公司已支付款项、项目延期损失。又因爱特安为公司最终提供给千径公司APP测试连接及上线版本，均未达到合同第四条第3点约定的验收合格标准即APP能正常、稳定地运行，且爱特安为公司更从未向千径公司提供过《附件1：项目技术架构图》，其不能证明APP的各项功能已达到该附件载明的要求。故千径公司根据约定的违约责任要求爱特安为公司退还全部已支付的款项172800元，法院予以支持。至于利息，因法院确认《项目开发合同书》系于2019年2月26日解除的，而爱特安为公司的行为构成违约，其在未完成开发成果的前提下收取了千径公司相关款项，确造成千径公司的资金占用损失，故千径公司诉请爱特安为公司自解除之次日即2019年2月27日起按中国人民银行同期逾期贷款利率计算利息至款项清偿之日止，合理，法院予以支持。关于千径公司主张以合同总价为基数按日千分之一计付违约金的问题。因千径公司已选择解除合同并要求爱特安为公司退款，因此爱特安为公司无需再继续履行合同并完成千径公司委托开发的案涉APP，故千径公司再按照合同第八条第4点前部约定的迟延交付项目成果的违约责任按日计付违约金，明显不妥，故法院对该违约金主张不予支持。关于千径公司主张损失的问题。根据《项目开发合同书》第八条第4点后部的约定，爱特安为公司需承担的违约责任除了退还全部千径公司已支付款项外，还需赔偿项目延期损失。但诚如上文证据认证部分所述，千径公司提供的证据未能体现与案涉合同纠纷存在关联性，且证据所反映的开支，法院认为属于千径公司所开立公司的运营成本，与爱特安为公司是否违约无关。而千径公司称其开立公司是为了案涉运营APP的理由亦不充分，故法院不予采信。且上文法院支持爱特安为公司退还千径公司支付的款项并支付利息，已能弥补千径公司因爱特安为公司未能按约交付合格APP所造成的损失，故对该主张不予支持。关于爱特安为公司反诉主张工作量增加所对应的价款的问题。首先，如上文所述，案涉合同解除系由于爱特安为公司违约。其次，根据爱特安为公司提交的五份《需求变更表》，第一份《需求变更表V1.0》及第二份《需求变更表V1.3》均载明收费价格为免费，而爱特安为公司在庭审中承认其从2018年12月20日提交的第三份《需求变更表V1.4》开始，千径公司其后的修改要求，爱特安为公司并未完全执行，且从最终上线的APP内容来看，爱特安为公司并未完成开发项目。综前，法院对该反诉主张不予支持。关于爱特安为公司反诉主张违约金的问题。因第三阶段的支付条件并未成就，千径公司拒绝支付款项的行为不构成违约，且案涉合同解除的过错方在爱特安为公司，故法院对该反诉主张亦不予支持。综上，依照《中华人民共和国合同法》第六十条第一款、第六十一条、第九十三条第二款、第九十六条、第九十七条、第一百零七条、第二百五十一条，《中华人民共和国民事诉讼法》第六十四条之规定，判决：一、千径公司与爱特安为公司于2018年5月18日签订的《项目开发合同书》于2019年2月26日解除；二、爱特安为公司应于判决发生法律效力之日起十日内向千径公司返还172800元并支付其利息（利息计算方式：以172800元为基数，按中国人民银行同期逾期贷款利率自2019年2月27日起计至款项清偿之日止）；三、驳回千径公司的其他诉讼请求；四、驳回爱特安为公司的全部反诉请求。如果未按判决指定的期间履行给付金钱义务，应当依照《中华人民共和国民事诉讼法》第二百五十三条的规定，加倍支付迟延期间的债务利息。案件本诉受理费减半收取为3614.45元（千径公司已预交），由千径公司承担2034.28元，由爱特安为公司承担1580.17元；反诉受理费减半收取为2651.46元（爱特安为公司已预交），由爱特安为公司承担。爱特安为公司上诉请求：1.依法撤销原审判决第一项、第二项、第四项，改判驳回千径公司的第一、二项诉讼请求，支持爱特安为公司的全部反诉请求；2.本案一、二审诉讼费用均由千径公司承担。事实和理由：一、本案中不存在千径公司有权解除《项目开发合同书》的情形，案涉《项目开发合同书》继续有效，千径公司无权要求爱特安为公司返还在有工作付出的前提下依合同约定收到的进度款。1.《项目开发合同书》合法有效，对双方均具约束力，千径公司应按约履行自己的义务，不得擅自变更或者解除合同。2.根据《项目开发合同书》的约定，千径公司有权终止合同的情形仅有：（1）双方协商一致；（2）爱特安为公司严重违反合同约定且千径公司认为无履行该合同之必要。本案中,双方不存在协商一致终止《项目开发合同书》的情形,且根据千径公司在《民事起诉状》中陈述，至2018年10月22日爱特安为公司按项目计划向千径公司交付测试版本后，千径公司仍要求继续推进合同的执行，可见千径公司并不认为爱特安为公司存在严重违反合同约定的情形。根据《项目开发合同书》的约定，千径公司应向爱特安为公司支付第三期款，但至今千径公司未向爱特安为公司支付第三期款，爱特安为公司停止后续开发工作是依法行使法定和约定的权利，不属于违约，是千径公司违约所致的后果。二、爱特安为公司严格履行《项目开发合同书》的义务向千径公司交付了完整的测试版本，不存在违约的情形。案涉《项目开发合同书》约定的第三期款项支付条件已成就。1.双方对于前两期款项的支付及履行均无异议，本案中不存在工期延迟的情形。（1）爱特安为公司实际于2018年6月5日首次向千径公司提交原型设计图确认，不存在“工期延时达25个自然天”的情形；原审法院既认定双方对前两期款项的支付及履行均无异议，又认定双方前两期款项的履行存在延期情形，认定事实错误，且自相矛盾。（2）案涉APP开发的甘特图已经过双方先后两次确认，根据相同当事人就同一标的先后有不同约定则应认定后约定取代前约定的一般原理，本案应以后确定的甘特图为准，即案涉APP开发项目的完成期限为2018年11月16日，故不存在工期延迟的情形。2.爱特安为公司于2018年10月22日按计划向千径公司交付了第一个完整的测试版本，不存在逾期交付的情形。根据《项目开发合同书》的约定，第三期款项支付条件已成就。首先，完整的版本是指按照双方确认的原型及UI图进行开发，并且完成了原型及UI图上涉及的功能和模块，功能和模块完整，不存在缺失。也即该测试版本应该是具有原型及UI图上涉及的功能和模块的测试版本，并不要求该测试版本的功能不存在任何缺乏或达到最优状态。其次，千径公司已承认该测试版在模块上是完整的，且双方在10月22日的微信沟通中已确认该测试版本功能及对接接口进度未达100%是因微信账号不满足开通90天及30天流水要求的客观原因导致提现功能等暂时未能对接。为保障源码不被全部泄露，爱特安为公司只提供90%的功能到千径公司的服务器进行测试，原则上千径公司未付款前，爱特安为公司不能交付任何代码，出于友好合作关系，爱特安为公司还是交付了90%的代码给千径公司，但千径公司拒绝在爱特安为公司提供的测试环境做验收。另外，千径公司在2018年11月19日所反馈的测试情况没有关于测试版本不完整、模块上缺少的相应内容；根据千径公司于2018年12月7日下午4点44分发给爱特安为公司的邮件内容可知，可证实千径公司对爱特安为公司所交付测试版本的完整性是没有异议的，且《项目开发合同》只约定爱特安为公司向千径公司交付完整的测试版本，并没有约定测试版本需通过测试后，功能全部实现后才支付第三期款，故千径公司向爱特安为公司支付第三期进度款的条件已成就，千径公司要求再次提交测试后再安排付款不符合合同约定。再次，原审法院对外测版本与内测版本的推断是错误的，认为爱特安为公司应提交的版本是外测版本是没有依据的。外测测试一般是指对标的软件放入网络环境进行公开测试，案涉《项目开发合同书》并没有限定爱特安为公司向千径公司提交的第一个完整测试版本必须是完成了包括内部测试和公开测试的版本。测试版本并非指产品验收阶段的正式版本，尚未需要达到验收的标准，千径公司认为按照对正式版本的要求放上千径公司的服务器才算测试版本是没有道理的，并且拒绝在爱特安为公司提供的测试环境做验收，只是千径公司企图拖延付款责任的借口。因此，千径公司要求第一次交付的版本就是完成了内部以及公开测试的版本没有合同依据，也不符合常理和行业的基本常识。因此，原审法院仅根据《项目开发合同书》第四条第1点的约定以及甘特图的进度安排主观推断“爱特安为公司向千径公司提供的测试链接应为外测版本的链接”是不正确的，有失公正。最后，根据案涉《项目开发合同书》第一条第3点的约定，测试报告应在所有功能完成后才能交付。因测试版本存在隐藏性缺陷进行维护和修复的开发工作，并会根据千径公司的反馈进行修改，在没有得出最终测试版本的前提下无法提供测试报告。根据行业的惯例以及诚实信用原则，测试需要双方共同配合和协助。测试报告是完成所有的测试以后的一个总结性的材料。3.在2018年11月－2019年2月期间，千径公司向爱特安为公司提出了五次需求变更，需求和功能超出了双方事先约定的原型图和UI设计图，大量增加了爱特安为公司的工作量，故不存在爱特安为公司多次整改也无法达到合同约定完整功能的情形，千径公司提出的所谓测试版本存在多项问题、bug频现、不具备测试的条件等均不是事实，也不是千径公司可以拖欠爱特安为公司合同项目第三期款项的理由。4.千径公司提交的关于软件功能缺失的PPT，是在爱特安为公司与千径公司签署合同之前沟通的《旅游项目0511》基础上作比对，该所谓《旅游项目0511》没有经过双方共同确认，并非最终可以作为确定爱特安为公司交付标准的依据，本案中应以双方确认的原型图以及UI设计图作为交付标准的依据。而且，该软件功能缺失的PPT指出的所谓多达17项功能缺失与13项功能异常问题不是事实，功能缺失是指完全没有这个功能，而千径公司列举的17项功能存在但是有功能缺陷或者原型图中并无此功能，另外千径公司所述的13条功能异常均属测试版过程中千径公司协助测试发现的系统问题，并不能证明现阶段或者后期爱特安为公司再提交测试版本，未配合完善功能缺陷。功能缺陷是测试版本不可避免的，但并非功能不完整，千径公司以功能缺陷推卸履行合同责任，并不能否定爱特安为公司提交的版本是完整的测试版本。但原审法院并未核实、查明所谓17项功能缺失与13项功能异常问题的真实性，比如：(1)千径公司在《内测版本检查欠缺列表》中标注的功能缺失无“我的联系人、发票抬头、我的签收地址”，但是双方确认的原型是没有此功能的。(2)千径公司在《内测版本检查欠缺列表》中标注的功能异常“手机绑定功能依然异常，当重新输入验证码时又提示已绑定，无法进入商城。”这是千径公司在接受测试版本期间发现的功能缺陷问题，但爱特安为公司也在测试阶段积极配合予以完善，否则也无法在2018年12月19日上线系统，不能否定爱特安为公司提交的版本是完整的测试版本。(3)关于软件功能缺失的PPT提及给千径公司造成经济损失的“签到异常重大漏洞”不是事实，爱特安为公司提供给千径公司的是测试版本，尚未进入验收阶段，不能以测试版本试运营造成的经济损失要求爱特安为公司赔偿；另外，千径公司提及的重大漏洞(1次签到积分送了1万积分)，实质是因为千径公司在爱特安为公司提供给千径公司的测试版本的后台上设置了积分兑换的规则，致使签到积分规则产生变化，并非爱特安为公司过错。(4)关于软件功能缺失的PPT提及“价格显示功能问题”，这是因为千径公司没有上架商品价格操作不规范而导致的，非案涉APP的功能缺陷。5.爱特安为公司停止后续开发工作是基于千径公司至今未支付第三期款而依法行使法定和约定的权利，是千径公司违约所导致的后果。三、根据合同的约定及《中华人民共和国合同法》的相关规定，千径公司未支付到期价款的金额达到全部价款的五分之一的，爱特安为公司可以要求千径公司支付全部价款及要求千径公司按合同总价每日千分之一的标准支付违约金，并有权暂停合同项目的开发，待千径公司向爱特安为公司支付全部合同应付款项后继续进行合同项目的开发。四、原审法院未查明因千径公司多次变更需求导致爱特安为公司工作量大量增加，对爱特安为公司因工作量要求增加对应的价款不予支持，有失公允，违反等价有偿原则。而且爱特安为公司并未违约，反而基于友好合作的态度，将前三次需要增加收费的项目免费赠送给千径公司，截止至今，千径公司还在上线使用案涉APP软件。综上所述，原审法院对本案事实认定及适用法律存在错误，请求依法改判。千径公司答辩称：第三笔款项的支付条件未成就，爱特安为公司至解除合同时未交付合格软件，千径公司没有义务向爱特安为公司支付第三笔款项，爱特安为公司之前交付的仅是内测版，功能、模块不完善。千径公司有合同解除权，合同约定延迟交付达到30日即可以解除合同并要求赔偿损失，爱特安为公司延迟交付已超过30日，一审认定事实清楚，请求驳回上诉。爱特安为公司在二审期间向本院提交了以下证据：1.2018年6月5日第一次提交原型图的邮件，拟证明爱特安为公司已于2018年6月5日首次向千径公司提交原型设计图供确认，不存在“工期延时达25个自然天”的情形，双方对前两期款项的支付及履行均无异议；2.光盘[内含针对千径公司提交的PPT证据回应、针对千径公司对项目功能检查结果（多项功能缺失）的操作正常视频]，拟证明爱特安为公司按照项目的计划向千径公司交付了第一个完整的测试版本，不存在逾期交付的情形，即案涉《项目开发合同书》约定的第三期款项支付条件已成就；爱特安为公司提交的测试版本是具有原型及UI图上涉及的功能和模块的测试版本，不存在缺失，千径公司多次向爱特安为公司提出需求变更，千径公司指出的所谓多达17项功能缺失与13项功能异常问题不是事实，17项功能存在但是有功能缺陷或者原型图中并无此功能，13项功能异常均属测试版过程中千径公司协助测试发现的系统问题，并不能证明现阶段或者后期爱特安为公司再提交测试版本，未配合完善功能缺陷。经质证，千径公司认为爱特安为公司2018年6月5日提交的原型图有大量缺陷，爱特安为公司并没有理解客户的意图，该原型图不够完善，至2018年6月25日爱特安为公司才提交较为完善的原型图，UI界面开发比计划晚了48天，故对证据1的证明内容不予确认。对证据2，认为视频展现的是现在APP的状况，千径公司的产品均未上架，有几个模块（首页、旅行地图、邮寄）在现有的APP上仍没有，对证明内容不予确认。经审查，证据2光盘所记载内容的形成时间无法确定，且截至二审诉讼阶段千径公司所述的部分模块亦未在APP上体现，故本院对爱特安为公司举示该证据所要证明的内容不予确认。对证据1的认证意见，详见下文“本院认为”部分。千径公司在二审期间没有向本院提交新的证据。一审认定事实清楚，本院对一审查明的事实予以确认。本院认为，爱特安为公司上诉称其依约向千径公司交付了完整的测试版本，千径公司未能依约支付第三期款项，其有权停止后续开发，并要求千径公司支付余款、增加工作量的价款及违约金等。千径公司主张第三期款项的支付条件是爱特安为公司需向其交付可以挂在其服务器的外测版本，而非仅是交付模块完成的内测版本，现爱特安为公司未能依照约定期限交付工作成果，故其有权请求解除合同及返还已付款项。因此，综合双方的诉辩，本案二审争议焦点是双方履约是否符合约定及案涉《项目开发合同书》应如何处理。经审查，《项目开发合同书》第一条第3点约定“在乙方（爱特安为公司）各项开发功能完成后，应就项目进行功能测试，并向甲方（千径公司）提供测试报告，确保开发项目的各项功能正常使用”，根据上述约定，也就是说开发完成后交付前爱特安为公司应自行就项目进行功能测试，以确保其开发项目的功能正常。第六条第4点约定“甲方应在乙方提交第一个完整测试版本时，支付合同总金额的20%”；第5点约定“乙方完成项目编码的工作交与甲方测试，甲方经测试无异议后，在项目验收合格起三个工作日内支付总合同金额的20%”。第四条第1点约定“甲方应积极配合乙方外测版本的测试工作，应在收到乙方提供的版本或安装包15个自然天内提供反馈文档……”；第5点约定“经甲方验收或试运行检查”。2018年8月22日甘特图亦载明2018年10月22日至11月9日系整体测试和内部验收（时间为15天）、2018年11月13日至16日系客户验收和调整（5天）。因此，一审据此推断《项目开发合同书》第六条第5点约定付款条件系爱特安为公司应向千径公司提供外测版本，及认为“完整”应理解为APP架构、模块的完整并体现为基本功能的完整及基本畅顺，更为符合合同上下文的约定及对“完整”的理解。爱特安为公司上诉认为第三期款项的付款条件并非提供外测版本，依据不足，本院不予采纳。案涉APP的甘特图经双方先后两次确认，最后一次确认甘特图时所确认的完成期限为2018年11月16日。结合本案现有证据可知爱特安为公司截至在后甘特图所确认的前述完成期限届满时，仍未能向千径公司提交完整的外测版本以供验收。且，爱特安为公司亦未能举证双方曾协商一致延后完成期限。因此，爱特安为公司举示证据不足以证明其已依约定期限履行相应的合同义务。且，2018年10月22日爱特安为公司提供第一个内测版本亦确认未100%完成功能开发及未对各项功能进行过测试。因此，本院对爱特安为公司二审举示的证据1所要证明的内容不予确认。一审结合双方的微信沟通内容及公证APP操作未能体现模块及功能完整性，认为第三期款项的付款条件未成就，处理正确，本院予以维持。由于爱特安为公司未能在约定的期限内交付合格的工作成果，因此，一审认定千径公司有权请求解除合同，具有法律依据及合同依据，本院予以确认。千径公司已通过2019年2月26日的邮件向爱特安为公司发出解除合同的意思表示，因此，一审认定《项目开发合同书》已于该日解除，符合《中华人民共和国合同法》第九十三条第二款、第九十六条的规定，本院予以确认。爱特安为公司上诉请求千径公司支付合同余款、增加工作量款项及违约金，依据不足，本院不予支持。爱特安为公司未能交付符合约定的工作成果，构成违约，一审根据千径公司的请求判令爱特安为公司退还已付款项及从解除合同次日起计付利息，并驳回爱特安为公司请求继续履行合同、支付余款、违约金及增加工作量款项的请求，并无不当，本院予以维持。综上所述，一审认定事实清楚，适用法律正确，本院予以维持。爱特安为公司上诉理由不成立，应予驳回。依照《中华人民共和国民事诉讼法》第一百七十条第一款第（一）项的规定，判决如下：驳回上诉，维持原判。二审案件受理费7894.91元，由上诉人广州爱特安为科技股份有限公司负担。本判决为终审判决。审 判 长  罗 睿审 判 员  李秀红审 判 员  曾慧元二〇二〇年二月二十一日法官助理  梁碧姬书 记 员  邓斯敏