广东省惠州市中级人民法院民 事 判 决 书（2021）粤13民终970号上诉人（原审被告、反诉原告）：深圳市优品云网络科技有限公司，住所地广东省深圳市龙岗区龙岗街道南联社区南联路24号仁和兴业大厦710室，统一社会信用代码：91440300MA5F3DFFXT。法定代表人：范辉凤。委托诉讼代理人：林桂起，广东惠泰律师事务所律师。委托诉讼代理人：曹伟，该公司员工。被上诉人（原审原告、反诉被告）：夏奋岗，男，1979年1月24日出生，汉族，住广东省深圳市南山区××××××，公民身份号码：×××××××××××。委托诉讼代理人：祁正元，广东颂业律师事务所律师。上诉人深圳市优品云网络科技有限公司与被上诉人夏奋岗因合同纠纷一案，不服广东省惠州市惠阳区人民法院（2020）粤1303民初4187号民事判决，向本院提起上诉。本院受理后，依法组成合议庭审理了本案，现已审理终结。上诉人深圳市优品云网络科技有限公司（以下简称“优品云网络公司”）的上诉请求：一、请求判令撤销一审判决，改判驳回被上诉人夏奋岗的所有诉讼请求，并改判由被上诉人夏奋岗继续履行《软件开发协议》的约定向上诉人支付剩余三成中期款12000元和剩余的两成尾款8000元，共计20000元。二、请求判令本案一、二审所有诉讼费用由被上诉人夏奋岗承担。事实与理由：一、上诉人按约定履行协议义务，不存在违约。（一）上诉人与被上诉人系经协商一致将《软件开发协议》中约定的小程序变更为公众号。上诉人作为受托方为被上诉人夏奋岗开发软件，并签订《软件开发协议》，该协议系双方的真实意思表示。根据《中华人民共和国合同法》第四十四条规定，该协议合法有效。上诉人积极履行开发义务和约定，但因被上诉人的原因要求将《软件开发协议》中约定的小程序更为公众号，虽然双方在在变更过程中双方未签署变更补充协议，但被上诉人在2020年6月12日与上诉人微信聊天记录中，明确向上诉人提供公众号的账户和密码。在一审中上诉人也提供聊天记录证据，证明被上诉人多次授权和配合公众号开发的事实，证明双方系经协商一致将《软件开发协议》中约定的小程序变更为公众号。上诉人提供的微信聊天证据作为电子证据具有合法性、真实性、关联性，上诉人认为应该作为法院判决的依据。即使一审法院认为该聊天记录不能直接证明变更的事实，但在软件开发合同附件中有明确的说明被上诉人需要提供域名以及服务器和认证小程序给上诉人，但被上诉人只提供了服务器和域名，和认证好的公众号，配合上诉人的多次登录授权接口开发，并未提供认证小程序给上诉人，这说明被上诉人夏奋岗要求上诉人开发服务的是小程序。即使法庭不认可被上诉人同意变更为公众号，但被上诉人从签订协议至今从未向上诉人提供开发小程序所需的材料，因此造成的履行不一致的责任应该由被上诉人夏奋岗承担。（二）因被上诉人服务器系统原因及多次修改和提出新的产品要求，导致上诉人未按协议约定期限交付产品。虽然上诉人未按协议约定期限交付，但是都是在被上诉人授权和配合的情况下进行的，是基于被上诉人服务器系统原因及不断提出修改意见的原因，导致未能按协议约定期限交付产品，上诉人在一审及上诉中均提交相关的微信聊天记录。根据《中华人民共和国合同法》第三百三十四条规定:【受托人的违约责任】研究开发人违反约定造成研究开发工作停滞、延误或者失败的，应当承担违约责任。在本案中，未能按《软件开发协议》约定期限开发系被上诉人应承担的责任，非上诉人的过错。二、上诉人已按约定交付产品，被上诉人夏奋岗应当继续履行协议的约定向上诉人支付剩余三成中期款12000元和剩余的两成尾款8000元，共计20000元。在软件开发中不管是公众号还是小程序，前端只是作为一个展示入口，其核心功能主要是程序框架代码中的逻辑关系并且由后台来控制和管理，因此上诉人的工作已基本完成。在签订的《软件开发协议》第二条第2款明确的约定开发进度和付款进度:“软件后台功能开发出版交付给乙方，乙方必须向甲方支付第二笔款定价的30%，即12000元人民币。”而上诉人在将产品安装在被上诉人提供的服务器配置好服务器和网站管理后台，交付好产品后台后，被上诉人却未履行协议约定支付中期款项12000元的义务。上诉人为被上诉人夏奋岗完成了协议约定中的功能开发，为对方配置好了网站域名和公众号以及api支付接口以及登陆授权接口，主体功能都达成。并且将程序源代码交付安装到对方提供的服务器空间。并且软件源码上诉人有备份文件，已经安装好测试服务器可以当庭核验。根据《中华人民共和国合同法》第三百三十一条规定［委托人义务］委托开发合同的委托人应当按照约定支付研究开发经费和报酬；提供技术资料、原始数据；完成协作事项；接受研究开发成果。上诉人完成了《软件开发协议》中明确列出的软件开发功能需求，可以用程序测试与协议中的要求进行比对并且在被上诉人的配合下将程序源代码交付安装到被上诉人的服务器上面，被上诉人验收过也提出过意见，上诉人都有积极配合被上诉人的意见整改，此次上诉人之所以产生纠纷是源自于被上诉人对行业对产品的理解和认知不够综上所述，上诉人勤勤恳恳完成被上诉人的变更要求，付出大量的人力物力，却要承担违约责任，恳请法院重新判决，给上诉人一个公道。被上诉人夏奋岗辩称，一、被答辩人没有履行《开发合同》的约定，构成违约。（一）被答辩人在上诉状中称，“因被上诉人的原因要求将《开发合同》中约定的小程序变更为公众号”，但被答辩人并没有提供证据证明是答辩人在什么时间、提出的哪些原因，说服被答辩人同意变更《开发合同》的约定，应承担举证不能的责任。（二）被答辩人在上诉状称答辩人提供了公众号账户和密码，来证明双方系协商一致变更合同履行。答辩人认为，被答辩人提供的部分聊天记录，无法完整、真实的反映答辩人为什么要提供公众号账户和密码给被答辩人，况且，提供公众号账户和密码和变更合同履行之间没有必然联系，因为《开发合同》约定的是开发小程序，而不是公众号。（三）被答辩人经过一番论证后得出结论，“说明被上诉人要求上诉人开发服务的是小程序”，构成自认。至于被答辩人称答辩人至今从未向上诉人提供开发小程序所需要的材料，更是与事实不符。因为被答辩人作为专业的技术开发人员，需要答辩人提供的其他材料，在签订合同之时就应该提交详细的材料清单给答辩人，以便答辩人准备。且被答辩人也应当具备与自身经营范围相符合的各种条件。既然《开发合同》和附件都没有列明被答辩人需要的材料清单，可以推定被答辩人在履行《开发合同》过程中不需要答辩人准备材料。（四）被答辩人在上诉状中称“因答辩人服务器的系统的原因及多次提出修改和提出新的产品要求，导致上诉人未按协议约定期限交付产品。”与事实不符。被答辩人提交的聊天记录显示，答辩人说“不是吧，这二十天都过了”被答辩人说“理解一下”，答辩人回应“都这么久了现在还不知道日期，你让我咋理解呢”。这可以推断出，是被答辩人自己的原因造成逾期，要求答辩人理解一下。如果是答辩人的原因造成逾期，按常理是答辩人向被答辩人致歉而不是反过来。而且，被答辩人明确表示“未按协议约定期限交付”，构成自认。因此，被答辩人未按协议约定期限交付，构成违约。综上所述，被答辩人没有履行《开发合同》的约定，构成违约。二、被答辩人要求答辩人支付《开发合同》约定的中期款和尾款共计20000元与事实不符，应予以驳回。（一）《开发合同》约定，小程序软件后台功能开发出版交付给答辩人后，答辩人向被答辩人支付定价的30%（12000元人民币）为第二笔款，被答辩人开发完毕软件并原告检验通过后，答辩人一次性付清余款的20%（8000元人民币）。前已述及，和被答辩人提供的证据已证明，被答辩人超过约定时限尚未完成开发交付义务。（二）被答辩人称“在软件开发中不管是公众号还是小程序，前端只是作为一个展示的入口”。这是不是说，公众号和小程序的前端功能一样？如果按被答辩人的这种逻辑，《开发合同》签订后，被答辩人就按合同约定开发小程序即可。可为什么从一审到二审，被答辩人一直试图证明是答辩人要求变更开发合同，且被答辩人按答辩人的要求开发了公众号，并开发交付完毕呢？（三）被答辩人称完成了《开发合同》中明确列出的软件开发功能需求，且答辩人验收并提出过意见，被答辩人积极配合答辩人的意见整改，即与事实不符，也不符合常识。如果被答辩人是完全按合同要求开发交付并按答辩人的意见整改完毕，按常理答辩人应该马上接收并投入使用，因为早点投入使用就可以早点产生收益，而不是诉诸诉讼解决。总之，被答辩人要求答辩人支付剩余中期款和尾款共计20000元的上诉请求即无事实依据，也不符合常识，应予以驳回。三、《中华人民共和国合同法》第七十七条第一款规定“当事人协商一致，可以变更合同。”此款包含如下要件:1.为更好实现合同目的，需要变更合同；2.双方当事人为此进行了协商；3.双方当事人有协商过程；4.双方当事人协商后达成了一致意见，同意变更合同。而被答辩人从一审应诉到提出反诉再到上诉，一直没有提供证据证明上述四个要件。因此，根据《中华人民共和国合同法》第七十八条“当事人对合同变更的内容约定不明确的，推定为未变更。”的规定，被答辩人应按《开发合同》的约定，向答辩人交付万能空间小程序。截止二审开庭，被答辩人没有交付万能空间小程序，应承担返还双倍定金的违约责任，并退还答辩人支付的预付款壹万贰仟元。四、《最高人民法院关于适用《中华人民共和国民事诉讼法》的解释》第九十一条规定:“人民法院应当依照下列原则确定举证证明责任的承担，但法律另有规定的除外:（二）主张法律关系变更、消灭或者权利受到妨害的当事人，应当对该法律关系变更、消灭或者权利受到妨害的基本事实承担举证证明责任。”被答辩人没有提供证据证明双方协商一致将《开发合同》约定的开发小程序变更为公众号，应承担举证不能的责任。综上所述，被答辩人的上诉请求既不符合事实，也没有相应的证据证明，恳请法庭予以驳回。原审原告、反诉被告夏奋岗向一审法院起诉请求：1、判令解除原被告签订的《软件开发协议》；2、判令被告立即返还原告多余支付的款项12000元；3、判令被告立即向原告支付双倍定金16000元；4、判令被告承担本案诉讼费。原审被告、反诉原告优品云网络公司向一审法院反诉请求：1、判令被反诉人执行与反诉人签订的《开发合同》中的中期款约定支付剩余三成中期12000元和剩余两成尾款8000元共计20000元；2、判令被反诉人承担本案诉讼费；3、判令被反诉人向反诉人道歉。一审法院认定的事实：2020年4月24日，原告夏奋岗与被告深圳市优品云网络科技有限公司签订一份《软件开发协议》，协议约定被告为原告开发“万能空间小程序”软件一套，价款40000元。付款方法：协议签订的1天内，原告须向被告交付软件定价的50%的定金即20000元，软件后台功能开发出版交付给原告，原告须向被告支付第二笔款定价的30%即12000元，软件开发完毕并由原告检验通过后，原告一次性付清剩余的20%即8000元。软件开发时间为2020年4月27日起至2020年6月13日止。协议签订当日，原告向被告支付了定金20000元。协议约定的期限届满后，被告未能向原告提供“万能空间小程序”软件。后经双方协商未果，原告遂于2020年8月17日诉至一审法院。案经受理后，审理期间，被告提出反诉，一审法院将两案合并审理。一审法院认为：本案争议的焦点是：1、原被告约定的是万能空间小程序还是万能空间公众号；2、被告是否完成约定的义务。关于原被告约定的是“万能空间小程序”还是“万能空间公众号”的问题。从双方签订的《软件开发协议》来看，协议约定，“甲方（指被告）为乙方（指原告）开发万能空间小程序软件一套。”由此表明，原被告约定完成的事项是万能空间小程序，而不是万能空间公众号。被告主张双方约定的事项由万能空间小程序变更为万能空间公众号，并未提供双方协商一致的依据，按照《中华人民共和国合同法》第七十七条关于“当事人协商一致，可以变更合同。”和第七十八条关于“当事人对合同变更内容约定不明的推定为未变更。”的规定，被告主张双方约定的事项由万能空间小程序变更为万能空间公众号依据不足。关于被告是否完成约定义务的问题。原被告签订的《软件开发协议》约定，软件开发时间为2020年4月27日至2020年6月13日止。现有证据不能表明被告在上述时间完成了合同约定的事项，被告的行为构成违约。又因被告的违约行为致使原告不能实现合同目的，原告诉请解除合同，符合法律规定，予以支持，被告反诉事实和法律依据均不充分，不予支持。关于原告请求被告返还多余支付的款项12000元及双倍返还定金16000元的问题。原告在《软件开发协议》签订当日，即向被告支付了协议约定软件定价的50%的定金20000元，按照《中华人民共和国担保法》第九十一条规定，定金不得超过主合同标的额的百分之二十。因此，原告支付合同标的额的50%定金超过了法律规定定金限额为主合同标的额20%的规定，因此，在原告支付的20000元中，只能认定定金为8000元，其余12000元为预付款。《中华人民共和国合同法》第一百一十五条规定，“当事人可以依照《中华人民共和国担保法》约定一方向对方给付定金作为债权的担保。债务人履行债务后，定金应当抵作价款或者收回。给付定金的一方不履行约定的债务的，无权要求返还定金；收受定金的一方不履行约定的债务的，应当双倍返还定金。”现被告收受原告定金不履行债务，原告请求被告双倍返还定金16000元有法律依据，予以支持。又因合同解除，原告请求被告返还预付款12000元，符合《中华人民共和国合同法》第九十七条关于“合同解除后，尚未履行的，终止履行；已经履行的，根据履行情况和合同性质，当事人可以要求恢复原状、采取其他补救措施，并有权要求赔偿损失。”的规定，予以支持。综上，依照《中华人民共和国合同法》第四十四条、第六十条第一款、第九十四条、第九十七条、第一百一十五条、《中华人民共和国担保法》第九十一条、《最高人民法院关于适用〈中华人民共和国民事诉讼法〉的解释》第九十条、《中华人民共和国民事诉讼法》第六十四条、第一百四十二条的规定，判决如下：一、解除原告夏奋岗与被告深圳市优品云网络科技有限公司于2020年4月24日签订的《软件开发协议》。二、被告深圳市优品云网络科技有限公司应于本判决发生法律效力之日起10日内返还12000元给原告夏奋岗。三、被告深圳市优品云网络科技有限公司应于本判决发生法律效力之日起10日内双倍返还定金16000元给原告夏奋岗。四、驳回被告深圳市优品云网络科技有限公司的反诉请求。本诉受理费250元、反诉受理费150元，由被告深圳市优品云网络科技有限公司负担。本案二审中，上诉人优品云网络公司提交以下证据材料：1.微信聊天记录；2.微信聊天记录；3.域名信息备案管理系统截图；4.产品管理后台展示截图、产品前段部分展示截图。证明目的：1.应被上诉人的要求，将小程序变更公众号的事实；2.被上诉人因系统原因及不断提出新的产品要求，导致逾期交付的事实；3.上诉人完成约定义务，交付产品，被上诉人不支付。被上诉人发表质证意见：上述证据不符合民事诉讼法以及民事诉讼证据若干规定的要求，不具有证据能力和证明力。对上述证据的真实性、关联性不予认可。对当事人在二审中争议的事实，本院认定如下：一审查明事实属实，本院予以确定。本院认为，本案系合同纠纷。根据《中华人民共和国民事诉讼法》第一百六十八条的规定，第二审人民法院应当对上诉请求的有关事实和适用法律进行审查，当事人未提出上诉请求或上诉未请求部分，本院不作处理。根据本案双方当事人的上诉意见和答辩意见，本案的争议焦点为：本案双方对合同内容万能空间小程序是否约定变更为万能空间公众号。双方签订的《软件开发协议》约定“甲方为乙方开发万能空间小程序软件一套”，协议约定的是万能空间小程序，上诉人优品云网络公司在二审查询中陈述变更协议内容开发万能空间小程序为万能空间公众号，是双方口头约定，但被上诉人夏奋岗不予认可。根据本案查明的事实，上诉人优品云网络提供的证据并未充分证明双方约定的事项由万能空间小程序变更为万能空间公众号，未体现双方达成协商变更合意。根据《中华人民共和国合同法》第七十八条关于“当事人对合同变更内容约定不明的推定为未变更。”的规定，上诉人优品云网络公司主张双方对合同内容万能空间小程序约定变更为万能空间公众号，缺乏事实与法律依据，本院不予支持。案涉《软件开发协议》约定，协议签订的1天内，被上诉人夏奋岗须向上诉人优品云网络公司交付软件定价的50%的定金即20000元，软件后台功能开发出版交付给原告，被上诉人夏奋岗须向上诉人优品云网络公司支付第二笔款定价的30%即12000元，软件开发完毕并由被上诉人夏奋岗检验通过后，被上诉人夏奋岗一次性付清剩余的20%即8000元。”，双方合同义务有先后履行顺序，现上诉人优品云网络公司超出合同履行期未完成合同约定事项，被上诉人夏奋岗有权拒绝先为给付。上诉人优品云网络公司主张被上诉人夏奋岗不断提出新的要求导致其违约，并未提供充分证据予以证明，本院不予采信。基于前述理由，上诉人优品云网络公司的主张理据不足，本院不予支持。综上所述，上诉人深圳市优品云网络科技有限公司的上诉请求不能成立，本院予以驳回。原审判决认定事实清楚，适用法律正确，本院予以维持。依照《中华人民共和国民事诉讼法》第一百七十条第一款第一项规定，判决如下：驳回上诉，维持原判。本案二审案件受理费人民币800元，由上诉人深圳市优品云网络科技有限公司负担。本判决为终审判决。审 判 长 陈晓文审 判 员 黄**锋审 判 员 刘艳妹二〇二一年六月二十九日法官助理 岑羽翎书 记 员 谢晓蕾附相关法律条文：《中华人民共和国民事诉讼法》第一百七十条：第二审人民法院对上诉案件，经过审理，按照下列情形，分别处理：（一）原判决、裁定认定事实清楚，适用法律正确的，以判决、裁定方式驳回上诉，维持原判决、裁定；（二）原判决、裁定认定事实错误或者适用法律错误的，以判决、裁定方式依法改判、撤销或者变更；（三）原判决认定基本事实不清的，裁定撤销原判决，发回原审人民法院重审，或者查清事实后改判；（四）原判决遗漏当事人或者违法缺席判决等严重违反法定程序的，裁定撤销原判决，发回原审人民法院重审。原审人民法院对发回重审的案件作出判决后，当事人提起上诉的，第二审人民法院不得再次发回重审。