河北省高级人民法院民 事 判 决 书（2021）冀知民终10号上诉人（一审原告、反诉被告）：保定东义德房地产开发有限公司，住所地河北省保定市白沟新城北环路北侧京白路东侧世纪城商业楼三楼301室。法定代表人：姚鹏跃。委托诉讼代理人：陈海亮，河北盛誉（白沟）律师事务所律师。被上诉人（一审被告、反诉原告）：山东开创云计算有限公司（原名称为山东开创云软件有限公司），住所地山东省济南市槐荫区腊山河西路中段报业大厦B座2001室。法定代表人：周伯虎，该公司董事长兼经理。委托诉讼代理人：邓璞，山东众成清泰（济南）律师事务所律师。委托诉讼代理人：徐菲，山东众成清泰（济南）律师事务所律师。上诉人保定东义德房地产开发有限公司（以下简称东义德公司）因与被上诉人山东开创云计算有限公司（以下简称开创云公司）技术委托开发合同纠纷一案，不服河北省保定市中级人民法院（2020）冀06知民初74号民事判决，向本院提起上诉。本院于2021年2月5日立案后，依法组成合议庭，进行了审理。本案现已审理终结。东义德公司上诉请求：1、依法撤销保定市中级人民法院（2020）冀06知民初74号民事判决，依法改判或发回重审；2、一、二审诉讼费由被上诉人承担。事实和理由：一、一审认定事实存在重大错误。即涉案软件大体分为三个主要功能即外卖功能、周边服务功能和跑腿功能。实际上开创云公司只对外卖功能进行了开发。开创云公司提供的证据只有关于外卖功能的，没有另外两个功能的。法庭没有就这两个功能进行询问和审查，导致一审法院以外卖功能就概括了整个案件事实，进而导致整个案件事实的认定错误。且交付软件必须交付代码，交付代码后软件上线运行并交付了软件运行的关键控制功能（例如服务器）才能称之为交付。开创云公司员工朱琳向东义德员工王某发送名为修改.ｒａｒ的文件并非是交付。2019年2月21日聊天记录中王某只是对聊天中某一具体事宜进行回应，而非对软件合格的认定。一审法院认为朱琳与刘某微信记录中刘某发送的订单可以证明多次完成订单，因此软件无问题属于断章取义。此外，开创云公司协助东义德公司取得的著作权是最初版本的软件，但开创云公司完成软件著作权登记应当以最终版本软件的著作权登记为准，而不是以最初版本为准。二、一审法院审查证据出现重大错误，严重违背证据规则。一审支持开创云公司主张、驳回东义德公司诉求的证据实际上就有两个，一是朱琳与王某的微信聊天记录，另一个是朱琳与刘某的微信聊天记录。这两个证据均是电子证据，开创云公司举证时存在虚假举证，掐头去尾不完全举证，选择性举证等问题。开创云公司只选择性地出示了聊天记录中微小片段，完全不能反映出双方的完整的意思表示。且一审法庭既拒绝了东义德公司代理人查看完整聊天记录的要求，也不自己审查完整证据，反而对证据加以认定，是严重违法。本案中开创云公司控制了微信聊天记录却无正当理由拒不提交完整的聊天记录，依照最高人民法院《关于民事诉讼证据的若干规定》，一方当事人控制证据无正当理由拒不提交，对待证事实负有举证责任的当事人主张该证据内容不利于控制人的，人民法院可以认定该主张成立。据此，本案中，开创云公司控制了微信聊天记录却无正当理由拒不提交完整的聊天记录，人民法院应当认定东义德公司主张成立。存有疑点的视听资料、电子数据不能单独作为认定案件事实的依据。本案中，开创云公司证明软件合格的证据只有微信记录，而微信记录存在重大疑点，因此，微信记录根本不能作为认定事实的依据。综上，请求二审法院对一审判决中的错误予以纠正。开创云公司辩称：一审判决认定事实清楚，适用法律正确，判决结果公平公正，请求驳回上诉，维持原判。一、开创云公司完成了涉案软件全部功能的开发，并向东义德公司交付，涉案软件经东义德公司验收合格后投入适用，且东义德公司取得了涉案软件的著作权，开创云公司不存在违约行为，东义德公司应当依照约定支付开发费用。根据《ＡＰＰ功能修改及新增协议》及附件可知，在2018年11月16日签订本补充协议前，开创云公司即开发了涉案软件的周边服务功能及跑腿功能，东义德公司对软件功能还提出了反馈意见。根据开创云公司员工朱琳及东义德公司负责人王某的微信聊天，开创云公司已经在2018年12月13日向东义德公司交付了全部软件。东义德公司负责人王某对软件验收签字的《开创项目验收单》以及王某在2019年2月21日对软件验收合格的认可均是针对整个软件，东义德公司并未就周边服务功能及跑腿功能提出异议。二、开创云公司在2018年12月13日向王某发送的“修改.ｒａｒ”文件，该文件包括软件的安装包以及一份操作说明，此时已经完成软件交付。东义德公司故意混淆软件交付和源代码交付的概念，根据双方签订的《ＡＰＰ功能修改及新增协议》第4条约定“在维护期完成后，甲方有权继续有偿让乙方维护更新，或者甲方有权要求乙方交付该项目全部源代码”，据此，交付源代码系在维护期结束后东义德公司才享有的权利，软件交付与源代码交付是两个概念。三、涉案软件经东义德公司验收合格后投入使用并形成了交易订单，涉案软件能够正常使用。四、开创云公司协助东义德公司于2018年5月30日取得了案涉软件的著作权登记，因此，东义德公司应当支付开创云公司第四期开发费用28000元。五、针对微信聊天记录，开创云公司根据《最高人民法院关于民事诉讼证据的若干规定》的规定提交了截屏打印件、原始载体以及《公证书》，一审法院审查证据合法合规，不存在任何违法情形。因本案中开创云公司提交的微信聊天记录系开创云公司与东义德公司员工之间的聊天记录，东义德公司同样掌握，并非开创云公司单方控制的证据。对于开创云公司提交的证据，东义德公司未提交相反证据予以反驳，其应当承担举证不能的不利后果。同时，开创云公司提交了合同、邮件、验收单等一系列证据，形成了完整的证据链条，证据完整、系统、逻辑前后一致，微信聊天记录并非认定案件事实的唯一依据。综上，一审法院认定证据正确，程序合法。为维护当事人合法权益，请求二审法院依法驳回东义德公司的上诉请求。东义德公司向一审法院起诉请求：1.判令解除东义德公司与开创云公司签订的《APP委托开发合同》、《APP功能变更协议》、《APP功能修改及新增协议》；2.判令开创云公司赔偿东义德公司损失428710元；3.本案诉讼费由开创云公司承担。开创云公司向一审法院提出反诉请求：1.判令东义德公司向开创云公司支付软件开发费用人民币112000元；2.依法判令东义德公司向开创云公司支付违约金28000元；3.依法判令东义德公司承担本案一切诉讼费用。一审法院认定的事实：2017年12月24日，东义德公司作为甲方与开创云公司作为乙方签订了《APP委托开发合同》，合同约定甲方委托乙方为智慧社区APP进行有关的策划、设计和制作，其中第一条委托开发费用及支付方式约定，委托开发费用总额为人民币280000元，包括项目验收后一年的维护费用，不包括项目申请第三方接口（含支付接口及分享接口等）的费用，具体支付方式和时间为第一期：甲方应于合同签订时支付合同金额的30%作为首付款，即人民币84000元，交付节点为合同签订后2个工作日内；第二期：效果图设计完成，并由甲方验收，签订效果图确认单，支付合同金额30%，即人民币84000元，交付节点为乙方签订效果图确认单2个工作日内；第三期：项目开发完成并上线，支付合同金额的30%，即人民币84000元，交付节点为项目开发完成并正常运行，签订项目确认单后5个工作日内；第四期：乙方协助甲方申请到软件著作权等后续相关手续后，支付合同尾款10%，即人民币28000元，交付节点为项目正常运行无重大bug，完成软件著作权审批。第三条开发约定，乙方自收到甲方交付的全部所需资料及所述首付款之日起103个工作日内完成项目开发工作。第五条违约责任约定，乙方违反合同开发期限的约定，排除甲方原因或不可抗力因素的，应每逾期一日向甲方支付合同金额3‰的违约金，但总额不超过合同金额的10%；甲方违反合同付款期限的约定，排除乙方原因或不可抗力因素的，应每逾期一日向乙方支付合同金额3‰的滞纳金，但总额不超过合同金额的10%，甲方迟延付款的，由此导致的项目工期延期与乙方无关。2018年5月29日，东义德公司作为甲方与开创云公司作为乙方签订了《APP委托开发合同补充协议》，合同约定双方于2017年12月24日签订了《APP委托开发合同》，由于项目预计延期问题，双方对原合同内容做如下变更：1.原合同“外卖功能”，乙方保证在甲方能申请到软件著作权的前提下修改为直接使用乙方公司“指动生活”产品，包含对应的骑手端、商家端及后台。2.外卖工期：2018年6月15日前完成外卖功能。2018年11月16日，东义德公司作为甲方与开创云公司作为乙方签订了《APP功能修改及新增协议》，合同约定由于乙方逾期，导致项目无法交付问题，双方对原合同内容做如下变更：1.原合同“物业员工模块APP”，修改为目前开发的“外卖商家APP”及“周边服务商家APP”，原合同中的“物业员工模块APP”不再进行开发。2.乙方对目前APP需要新增、修改及优化的问题（参考附件），在协定签订起20个工作日内完成，甲乙双方一块对软件进行测试，附件中新增的功能为免费，不再收取甲方的开发费用。3.项目完成后，乙方将修改完成的软件交付甲方，10个工作日内乙方配合甲方完成测试及验收（验收内容：软件实现现有功能+本协议附带功能同时并保证各个模块正常使用），甲方验收成功，甲方需交付项目第三期款84000元，并签订项目开发验收单……5.项目交付后，如甲方不支付第三期款，乙方有权终止服务……9.生效及其他协议仅限于合同内容的变化，而不涉及主体的变更；协议中与原合同冲突的部分以最新协议为主；本协议是依托于原合同，与原合同具有同等法律效力。合同签订后，东义德公司已经给付开创云公司第一期、第二期费用共计168000元。2018年5月30日，东义德公司作为著作权人取得了“优享汇生活APP软件【简称：汇生活】V1.0”的计算机软件著作权登记证书。开创云公司向东义德公司交付了涉案软件，经东义德公司验收并投入使用。另查明，山东开创云软件有限公司于2019年9月30日名称变更为山东开创云计算有限公司。一审法院认为，东义德公司与开创云公司所签订的《ＡＰＰ委托开发合同》、《ＡＰＰ委托开发合同补充协议》、《ＡＰＰ功能修改及新增协议》系双方的真实意思表示，且不违反法律、行政法规的规定，合法有效。合同签订后，双方均应按照约定享有权利、履行义务。本案所涉《ＡＰＰ委托开发合同》约定，“开创云公司自收到东义德公司交付的全部所需资料及首付款之日起103个工作日内完成项目开发工作”；2018年5月29日双方签订的《ＡＰＰ委托开发合同补充协议》约定，由于项目预计延期问题，双方对原合同内容进行变更，外卖工期于2018年6月15日前完成；2018年11月16日双方签订的《ＡＰＰ功能修改及新增协议》约定，由于乙方逾期导致项目无法交付，双方对原合同内容进行变更，对目前ＡＰＰ需要新增、修改及优化的问题，在协议签订起20个工作日内完成。上述合同的签订过程，证明双方自愿对交付涉案软件的日期进行了变更，应以双方最后确定的交付日期为准。《ＡＰＰ功能修改及新增协议》签订日期为2018年11月16日，按照合同“20个工作日”的约定，开创云公司应于2018年12月14日前交付涉案软件。东义德公司申请证人王某出庭作证，王某当庭陈述其为东义德公司涉案项目负责人。开创云公司提交了2018年12月13日其员工朱琳与王某微信聊天截屏，东义德公司对其真实性不持异议，该聊天截屏显示朱琳称“文档上和其他的模块都重新测了下”“我看ＢＵＧ管理平台上的基本上改完了下午我们再走一遍”，王某回复“行，好嘞好嘞”，朱琳向王某发送了“修改.ｒａｒ”,证明开创云公司已经按照约定日期向东义德公司交付了软件，故对东义德公司关于开创云公司延期交付涉案软件的主张，不予支持。东义德公司提交了2019年1月4日开创项目验收单，王某”作为东义德公司的授权代表在该验收单上签字确认，并注明“除配后台定位不准确外，其它合格”，东义德公司对开创云公司交付的软件进行了验收，除“后台定位不准确”问题未通过验收，其他项目验收合格。开创云公司提交了2019年2月21日朱琳与王某的微信聊天视频、2019年2月20日朱琳与东义德公司员工刘某微信聊天截屏的原始载体，东义德公司虽持有异议，但未提交足以反驳的证据，上述证据应当作为认定案件事实的依据。王某在与朱琳微信聊天中认可涉案软件合格，刘某在与朱琳微信聊天过程中向朱琳发送了订单完成截图，该截图显示2019年1月1日至2019年1月31日期间已经完成订单2817份，其中2019年1月31日完成多笔订单，应当认定开创云公司所交付的涉案软件已经东义德公司验收合格，并且投入使用，故对东义德公司关于开创云公司所交付的涉案软件无法使用的主张，不予支持。开创云公司庭后向一审法院邮寄了情况说明，载明其于2019年2月24日关闭了东义德公司服务器。因本案所涉《ＡＰＰ功能修改及新增协议》约定，项目交付后如东义德公司不支付第三期款项，开创云公司有权终止服务，东义德公司并未给付开创云公司第三期款项，故对其关于开创云公司关闭后台构成违约的主张，不予支持。开创云公司提交了计算机软件著作权登记证书，东义德公司对其真实性不持异议，且东义德公司认可该登记证书所涉软件为本案中其委托开创云公司所开发的软件，故开创云公司已经按照合同约定完成了协助东义德公司取得软件著作权的义务。开创云公司已经依约履行了全部合同义务，故对其要求东义德公司给付第三期、第四期委托开发费用共计112000元的主张，应当予以支持。《ＡＰＰ委托开发合同》违约责任中约定，东义德公司违反本合同付款期限的约定，排除开创云公司原因或不可抗力因素的，应每逾期一日向开创云公司支付合同金额3‰的滞纳金，但总额不超过合同金额的10%。因双方当事人对涉案软件交付日期进行了变更，不能准确界定付款日期，故对开创云公司要求东义德公司给付违约金的主张，不予支持。综上所述，依照《中华人民共和国合同法》第六十条、第四百零五条，一审法院判决如下：一、原告（反诉被告）保定东义德房地产开发有限公司于本判决生效后十日内给付被告（反诉原告）山东开创云计算有限公司委托开发费用112000元；二、驳回原告（反诉被告）保定东义德房地产开发有限公司的全部诉讼请求；三、驳回被告（反诉原告）山东开创云计算有限公司的其他诉讼请求。本院二审期间，东义德公司向本院提交了以下证据：证据一：涉案软件2020年8月13日被进行漏洞修复的相关软件市场的记录，证明开创云公司在2020年8月13日还在对软件进行修复，说明其交付的软件是不合格的；证据二：提交一审东义德提交的证据21（客户端操作视频）的原始载体，形成时间是2019年2月22日（经当庭播放显示与一审提交的视频一致），证明涉案软件无法进行支付；证据三：证人王某的证人证言，欲证明开创云公司交付的软件只有外卖功能，其他功能不能使用，王某填写的验收单也仅针对外卖功能，不包括其他功能，且开创云公司未按时交付软件；证据四：证人刘某的证人证言，欲证明开创云公司交付的软件只有外卖功能能支付，跑腿功能和周边服务模块存在支付问题，不能正常运营；证据五：证人孙某的证人证言，欲证明开创云公司交付的软件定位不准，无法点击确认送达。开创云公司发表质证意见称：对证据一，真实性有异议，而且无论应用市场的注册账户、密码还是服务器的账户、密码，东义德公司均掌握，上诉人的该份证据无法证明是开创云公司对软件进行了更新；对证据二，真实性不予认可，无法确认录像具体的操作时间，而且，退一步讲，即便软件有漏洞，根据《ＡＰＰ功能修改及新增协议》，东义德公司是可以要求开创云公司进行维护和修改的，但是这也改变不了软件已经验收合格的事实；对证据三、四、五，对三位证人的证人证言均有异议，三位证人均是东义德公司员工，与被上诉人东义德公司存在利害关系，证人王某的陈述与其签订的开创项目验收单记载的信息存在矛盾，对证人刘某的询问可知东义德公司有案涉软件后台的账号和密码且不需要其他信息即可登录，证人孙某的证人证言恰能证明涉案软件已经投入使用。本院对东义德公司二审提交的证据认证如下：对证据一，由于软件在使用过程中进行ｂｕｇ的修复和更新非常常见，案涉软件进行了更新和ｂｕｇ修复，并不能反过来推导出开创云公司交付的软件就是不符合合同约定的，且从双方当事人签订的《ＡＰＰ功能修改及新增协议》第7条的约定，“随着软件的运营，对于软件中出现的ｂｕｇ，乙方应免费并及时进行维护及修改”，也可以看出，软件在正常运营中，也会进行维护和修改，故不能据此认定开创云公司交付的软件不合格。对证据二，该证据可以证明开创云公司交付的软件存在问题，但该证据的形成时间无法确定，且根据《ＡＰＰ功能修改及新增协议》第7条的约定，东义德公司是可以要求开创云公司对软件运行中的问题进行维护和修改，故该证据不能证明交付的软件就是不合格的；对于三、四、五，三个证人的证人证言，由于三位证人和东义德公司存在利害关系，且王某作为案涉软件项目的主要负责人，其证言的内容与其签订的开创项目验收单记载的信息存在矛盾，刘某和孙某的证言也与东义德公司出具的开创项目验收单有矛盾，本院对其三人的证人证言均不予采信。本院二审查明的其他事实与一审法院一致。本院认为，根据当事人的诉辩主张，本案当事人争议的焦点是：开创云公司是否交付了符合合同约定的软件。双方对该问题的争议主要集中在以下几点：一是开创云公司是否完成了合同约定的全部软件功能的开发。对此，根据双方当事人签订的合同，涉案软件的功能模块包括“周边服务”、“外卖功能”、“跑腿送”等，根据双方当事人在2018年11月16日签订的《APP功能修改及新增协议》第2条约定，开创云公司对目前APP需要新增、修改及优化的问题（参考附件），该附件中第9条为“跑腿支付没有提示：后台提示功能，语音提示”，第17条为“安卓周边服务分类背景白底没显示”，第18条“安卓首页和周边服务首页没有下拉刷新功能”，以上双方对交付软件存在问题的列举表明，在2018年11月16日，开创云公司开发的涉案软件中已经包括了周边服务、外卖功能、跑腿功能，但由于存在问题，故双方在《APP功能修改及新增协议》第2条约定，对目前APP需要新增、修改及优化的问题，在协议签订起20个工作日内完成，甲乙双方一块对软件进行测试。从开创云公司员工朱琳与东义德公司案涉项目负责人王某2018年12月13日的微信聊天记录看，该聊天截屏显示朱琳称“文档上和其他的模块都重新测了下”“我看ＢＵＧ管理平台上的基本上改完了，下午我们再走一遍”，王某回复“行，好嘞好嘞”，朱琳向王某发送了“修改.ｒａｒ”,证明开创云公司已经按照《ＡＰＰ功能修改及新增协议》约定时限向东义德公司交付了修改后的软件。从开创云公司提交的2019年1月4日东义德公司负责人王某签订的开创项目验收单来看，其中载明的验收项目包括7项，王某的验收意见系手写的“除配后台定位不准确外，其他合格”，由此可见，东义德公司对涉案软件进行了全面验收，并非其提出的只是对外卖功能进行验收。根据开创云公司提交的2019年2月21日王某向朱琳发送的语音，王某也明确认可了“。。。东西能行了，我看着也没什么问题了”。由此，以上证据之间互相印证，足以证明开创云公司已经完成了涉案软件的交付。关于东义德公司主张王某仅是对软件的部分功能进行了验收，且王某在微信聊天中对软件合格进行的确认仅是对软件部分功能的确认，但东义德公司并未提供有效证据予以反驳。东义德公司在对软件相关功能进行验收后又主张开创云公司交付的软件不符合合同约定，其言行前后矛盾，对其认为开创云公司未交付合格软件的主张本院不予采纳。关于东义德公司主张开创云公司应当进行源代码的交付才算完成了软件交付，而不仅仅限于安装包的交付。对此，本院认为，认定软件交付的标准应当以双方签订的合同为依据，由于在双方当事人签订的《APP功能修改及新增协议》的第4条约定“在维护期完成后，甲方有权继续有偿让乙方维护更新，或者甲方有权要求乙方交付该项目全部源代码”，由该条规定可以看出，双方当事人在合同中双方认可的交付标准并不包含源代码的交付，虽然东义德公司有权要求开创云公司交付源代码，但并非交付了源代码才能认定为完成了软件交付。故对东义德公司的该项主张，本院不予支持。对于东义德公司主张开创云公司未完成著作权登记问题，本院认为，开创云公司已经在2018年5月30日协助东义德公司申请到了涉案软件的著作权，现东义德公司认为由于最终版本的软件与最初约定的软件已经有较大差别，代码也是不同，最终版本的软件并未完成著作权登记。对此，由于软件著作权登记后，著作权人是有修改权的，不能因为软件进行了修改而否定开创云公司已经协助东义德公司完成了著作权登记。对于东义德公司认为开创云公司提交的电子数据未完整提交，要求查看完整聊天记录的理由，本院认为，由于开创云公司提交的微信聊天记录系开创云公司与东义德公司员工之间的聊天记录，东义德公司同样掌握，并非开创云公司单方控制的证据，故并不符合证明妨碍规则的适用要件。东义德公司虽然对开创云公司提交的微信聊天记录提出异议，但并未提交证据予以反驳，开创云公司提交的微信聊天记录，可以作为认定案件事实的依据。综上所述，东义德公司的上诉请求不能成立，应予驳回。依照《中华人民共和国民事诉讼法》第一百七十条第一款第一项之规定，判决如下：驳回上诉，维持原判。二审案件受理费3865元，由保定东义德房地产开发有限公司负担。本判决为终审判决。审判长  邢会丽审判员  张守军审判员  梁贤勇二〇二一年四月二十六日书记员  常 慧