广东省广州市中级人民法院
民 事 判 决 书
（2018）粤01民终10511号
上诉人(原审原告、原审反诉被告)：中山市南星汽配有限公司，住所地广东省中山市南区悦来南路二度桥穗丰花园B幢首层12号。
法定代表人：麦桂芳。
委托诉讼代理人：郭嫦娟，广东登都律师事务所律师。
委托诉讼代理人：林嘉涛，广东登都律师事务所律师。
被上诉人(原审被告、原审反诉原告)：广州前实网络科技有限公司，住所地广东省广州市白云区云城西路888号1611房。
法定代表人：段绍斌，该公司经理。
委托诉讼代理人：刘勇，北京市盈科（佛山）律师事务所律师。
委托诉讼代理人：谢尧琼，北京市盈科（佛山）律师事务所律师。
上诉人中山市南星汽配有限公司（以下简称南星公司）因与被上诉人广州前实网络科技有限公司（以下简称前实公司）合同纠纷一案，不服广东省广州市白云区人民法院（2017）粤0111民初4795号民事判决，向本院提起上诉。本院2018年5月20日立案后，依法组成合议庭进行了审理，本案现已审理终结。
南星公司上诉请求：1.撤销一审判决；2.解除双方签订的《APP开发服务合同》；3.前实公司向南星公司双倍赔偿服务费共60000元；4.本案的诉讼费用全部由前实公司承担。事实和理由：1.涉案的《APP开发服务合同》第三部分“服务费用及支付方法”中明确约定，南星公司在收到前实公司调试后的最终版本后支付余款，APP的最终版本就是具备上述合同及其《补充协议》约定的全部软件功能并经前实公司调试后运行正常的版本，最终版本侧重于前实公司的调试以及功能的完备。前实公司一直没有提供包括IOS版本、安卓版本及网页版本在内的最终版本，也未提供任何证明交付全部APP最终版本的证据。因此，一审法院对最终版本标准不予认定不正确，应予以纠正。2.前实公司提供的涉案APP发布日期截图仅系APPIOS版本，而南星公司委托前实公司开发的还包括安卓版本及网页版本。实现APP全部功能的正常运行以及合同目的还需要前实公司依约履行调试义务并向南星公司交付所有最终版本，这也是双方签订合同时设置最终调试版本的目的。前实公司并未对APP进行调试，APP大部分功能无法运行，最终版本亦未交付给南星公司，致使南星公司合同目的无法实现。因此，一审法院仅根据涉案APPIOS版本的发布日期截图及南星公司的付款事实认定前实公司已交付正式版本且该版本具备一定的使用功能的事实是错误的。3.涉案《APP开发服务合同》明确约定，软件“汽配商城”可提供客户直接下单（直接连接南星公司库存数据服务器），且前实公司提供免费一年的软件维护服务，次年开始维护费用为6000元/年。数据库接口设计必须综合考量APP内在结构、所需数据种类、数据需求量、APP获取方式等重要信息，才能组织好数据、满足APP端数据请求，因此数据库接口应当由前实公司这一专业的软件开发公司开发设计。同时，软件维护建立在软件开发完毕的基础之上，系对软件正常使用的支持和保障，在APP开发未完毕且功能无法使用，前实公司未依约提供三种版本的最终版本及源代码的情况下，软件维护的前提尚未成就，软件维护仍未开始。同时，涉案《APP开发服务合同》已明确约定双方项目联系人，且源代码作为便携的最原始程序的代码，其是否具有B部分对应的逻辑结构、是否具有结构性、逻辑性、相关性、可被编译性及有效性等均需要前实公司派员前往南星公司处进行调试，前实公司作为专业的软件开发公司，负有对源代码进行开发和前往南星公司处调试交付的义务。因此，一审法院对前实公司称涉案APP功能无法使用系“南星公司未提供数据库接口、免费维护期已过故第三方服务器被停用”的答辩意见的采纳是错误的。
前实公司辩称，不同意南星公司的上诉请求。首先，虽然前实公司没有提起上诉，但是保留了另案起诉的权利。对于APP的源代码，合同仅约定在“开发完成后”交付源代码，即应在前实公司交付最终版本之后，但并未明确约定交付最终版后多少天内要交付源代码。根据合同第三条约定，源代码应在交付最终版本后交付，故南星公司支付余款与前实公司交付源代码应同时进行，前实公司享有同时履行抗辩权，在南星公司未交付余款时，前实公司可以行使同时履行抗辩权暂时拒付。从另一角度分析，若按照南星公司“前实公司未交付最终版本”的说法，既然APP开发未完成，那么不存在交付源代码的条件，前实公司也不构成违约。同时，一审开庭时，前实公司以光盘的形式把源代码当庭向法庭和南星公司做了交付。关于这部分前实公司不认同一审的认定，对于该诉求前实公司保留诉讼的权利。另外，前实公司已经向南星公司提供了APP的最终版本，在2015年12月14日提交了IOS版本，安卓版本的具体时间因腾讯后台系统原因无法显示，但也是在同期。IOS正式版本提交时间是在2015年10月9日，安卓正式版本提交时间是在2015年11月2日。在提交了最终版本之后，IOS版本在2016年2月26日做了补丁，打补丁的版本是2.3.0，安卓版本在2016年1月29日做了补丁，打补丁的版本是2.3.3。因此前实公司提交了最终版本，并且在最终版本上做了补充与修正。因此前实公司不认同一审法院以及南星公司的说法，即前实公司认为最终版本是已经交付的。其他一审法院认定的事实前实公司都认同。南星公司上诉的意见在一审中前实公司全部都驳斥了，一审法院也予以了评述，前实公司同意一审法院意见。
南星公司向一审法院起诉请求：1.解除双方签订的《APP开发服务合同》；2.前实公司双倍赔偿服务费共6万元；3.本案全部诉讼费由前实公司负担。
前实公司向一审法院反诉请求：1.南星公司向前实公司支付软件开发余款1万元及利息（按中国人民银行同期同类贷款年利率6%，从2015年12月14日起计算至实际清偿之日止）；2.南星公司向前实公司支付因使用前实公司提供的VIN查询数据结果所产生的服务费6万元及利息（利息按中国人民银行规定的同期同类贷款利率从起诉日计算至实际清偿日）；3.反诉费由南星公司负担。
一审法院认定事实：2015年8月10日，南星公司（甲方）和前实公司（乙方）签订《APP开发服务合同》，约定本《APP开发服务合同》和《南冠APP功能设计图》两部分，《南冠APP功能设计图》是本合同不可分割的重要组成部分。一、服务内容。乙方自收到甲方项目首批服务费用后，启动一下服务：按照《南冠APP功能设计图》的设计需求开始项目设计；南冠APP分为叁部分支持：A即时通讯部分和B配件库存下单、广告推荐部分，C部分免费查询VIN码功能、A部分由乙方保证其功能正常运行，B部分由甲方自行管理，C部分由乙方保证其功能正常运行；乙方向甲方提供南冠汽配APP的IOS版，安卓版和网页版开发设计，并且提供B部分对应的后台代码，可供二次开发；乙方提供免费一年的软件维护服务，次年开始维护费用为6000元/年（含服务器费用、租用、B部分系统维护A、C部份正常功能使用）。服务备注：项目预估开发预期三个月，如需变动，双方提前沟通。二、软件需求补充。（一）汽配商场：1.可提供客户直接下单，（直接联接甲方公司库存数据服务器）。2.显示分店商铺名称，车型，产地，规格，品牌，库存，价格，可以控制客户仓位查询等信息、分客户销售价格。3.下单时配件的搜索界面（名称与原厂编码）保留置顶，查询结果是对应车型的配件。4.下单后可供客户选择支付方式……（二）对话功能。2.对话功能分组（自定义）-分个人。默认最后一个对话人。……（三）VIN车架查询：按车架号查询后最下面有对应车辆配件查询信息，可直接推送给销售员、或自行选择下单功能。……（七）软件定制甲方调试最终版本后。2.乙方为开发软件为委托开发方式，开发完成后，一次性将B部分软件产品开发源代码交由甲方，且该部分软件的一切所有权为甲方所有。乙方不得将软件出租，出让。否则甲方保留追究乙方法律责任权利。违约责任：1.如甲方在开发中途违约的乙方所收的服务费不再返还给甲方。2.如乙方有以上协议违约的乙方以双培服务费赔偿给甲方。三、服务费用及支付方式：甲方应于本合同签订之日起3个工作日内支付1万元，收到乙方提交正式版本之日起3日内支付2万元，在收到乙方调试后的最终版本后支付余款1万元。备注：该项目开发金额为4万元。《南冠APP功能设计图》约定了配件名称或编码搜索、客服在线对话、汽配商城-
客户下单、品牌车型选择、VIN查询、个人中心-
查看购买及退货情况的菜单栏内容。说明：1.该项目的APP一共3个版本，分为网页版，安卓版和IOS版本；2.南冠公司使用的是网页版进行PC端的操作，客户咨询和下单使用其他版本；3.开发周期为三个月；4.项目功能负责人联系电话：138××××6006。《补充协议》约定了APP的功能图基本情况。
合同签订当日，南星公司向前实公司支付1万元。2016年2月26日，南星公司向前实公司支付第二期费用2万元。前实公司已向南星公司交付APP正式版本，对于交付日期，南星公司主张是2015年12月21日，前实公司主张是2015年10月9日。合同约定的第三期尾款1万元南星公司至今未付，B部分软件产品的开发源代码至今未交付南星公司。
一审诉讼中，南星公司为证明其起诉内容属实，提供以下证据证明：1.IOS系统“APPStore”、安卓系统“应用宝”的截图及“南冠汽配”APP截图，拟证明截图显示APP大部分功能无法使用。该截图显示“开发商：GuangzhouNanxinNetworkTechnologyCo.Ltd.”。前实公司质证认为：该截图是2017年4月打印，不能真实反映当时前实公司交付给南星公司的APP最终版本情况，2017年4月第三方在南星公司没有续费的情况下已经停止了服务，此时APP已经过了免费维护一年时间，另对于截图显示部分功能不能正常使用的原因与答辩意见一致。2.2016年12月15日由南星公司工作人员刘仕沛和前实公司的股东兼经理卢锐（2017年6月2日查询的前实公司企业信用信息公示报告显示卢锐仍是前实公司的股东兼董事）的电话录音。前实公司质证认为：对该录音真实性无异议，但录音未经卢锐同意且卢锐已于2016年8月30日提交书面离职申请并于2016年9月离职，录音中南星公司提及的功能不完善的原因前实公司质证意见与答辩意见一致。
前实公司为证明其答辩及反诉意见成立，向一审法院提供以下证据证明：
1.后台代码截图，拟证明2015年9月30日，前实公司已基本完成APP的开发，只待南星公司提供数据库地址即可连接南星公司的库存数据服务器。南星公司质证认为：该证据未经南星公司确认，是前实公司单方制作的电子证据。APP开发合同只是约定了APP汽配商城可以直接连接到南星公司数据服务器的功能，没有约定南星公司要提供数据接口的义务，事实上服务器的数据接口需要前实公司针对服务器的情况、APP的需求架构等因素，通过软件的技术生成才会有的，在实际过程中，前实公司作为专业的软件开发公司一直没有派人到南星公司查看和分析南星公司的服务器，也没有对服务器的接口进行生成，因此该过错在于前实公司而不是南星公司。
2.“南冠汽配APP”版本发布日期截图。拟证明2015年10月9日前实公司提交了1.0.1正式版，2015年12月14日前实公司提交了2.1.0最终版，2016年2月26日前实公司为APP提供补丁并提交了2.3.0版本。南星公司质证认为：对证据真实性予以确认，对证明内容不予确认，根据前述刘仕沛与卢锐的通话可以知道，前实公司只是向南星公司提供正式版本即截图的2.3.0版本，而之前的版本不知道是用于什么用途。前实公司提交的时间是2016年2月26日，而南星公司支付版本费用的时间是在2015年12月21日，故南星公司没有违约。
3.南星公司注册客户名单（打印件）。
4.VIN查询截图。
5.VIN查询功能后台使用记录表（打印件）。
南星公司对证据3-5不予确认，理由是没有经过南星公司确认，且是前实公司单方制作的电子证据，从形式、来源形成的过程都无法核实。查询VIN码在VIN查询功能后台使用记录表没有体现出来，所以两证据是矛盾的。南星公司注册客户的名单表没有反映上面注册的人是南星公司的客户，其只是反映在APP上注册，而没有实际使用，注册和实际使用是两回事。
6.《车架号VIN接口查询服务协议》。拟证明2016年1月25日，第三方因使用前实公司的车架号VIN接口查询服务而支付使用费6万元给前实公司。2015年12月至2017年5月，南星公司使用了前实公司的VIN接口查询服务，故根据南星公司和前实公司的口头协议，南星公司应向前实公司支付使用服务费6万元。南星公司质证认为，对该合同的真实性、合法性、关联性均不予确认，南星公司从未见过该合同。
7.卢锐的辞职申请、卢锐和案外人签订的劳动合同书（前实公司陈述合同所写的签订日期“2016年9月26日”不真实，签约时间实际是2017年3月补签）。南星公司对证据不确认，认为是为了诉讼目的而制作的。
以上事实，有企业信用信息公示报告、《APP开发服务协议》、补充协议、收据、转账记录、APP截图、客户名单表、VIN查询截图、VIN查询功能后台使用记录截图、《车架号VIN接口查询服务协议》、辞职申请、《劳动合同书》、电话录音及当事人陈述等证据证明。
一审法院认为，南星公司和前实公司签订的《APP开发服务合同》是双方真实意思表示，内容无违反法律法规的强制性规定，该合同合法有效。南星公司和前实公司之间的承揽合同关系成立。《中华人民共和国合同法》第二百五十一条规定：“承揽合同是承揽人按照定作人的要求完成工作，交付工作成果，定作人给付报酬的合同”。前实公司应按合同约定将其开发的APP交付南星公司使用。现前实公司已交付APP给南星公司使用，本案争议焦点是前实公司交付的APP是否符合合同约定的质量要求。
关于已交付的APP是否符合质量要求。由于涉案合同对于什么是APP最终版无明确约定，现双方各执一词但无提供充分证据证明，故对于何为最终版一审法院无法认定。合同约定：“收到乙方提交正式版本之日起3日内支付2万元”，但现前实公司提供的“南冠汽配APP”版本发布日期截图,证明2015年10月9日前实公司已提交APP给南星公司，2015年12月14日前实公司提交了2.1.0版，而南星公司于2015年12月21日向前实公司支付第二期款2万元的事实，足以证明前实公司已交付正式版本的APP给南星公司且已具备一定的使用功能。关于南星公司诉称APP部分功能无法使用的问题，前实公司的答辩意见已作充分回应，该抗辩合理（关于交付后台代码/源代码的意见除外），一审法院予以采信。另从前实公司2016年2月26日为APP提供补丁并提交了2.3.0版的属实亦证明前实公司交付后亦采取了一些调试措施。综上，证明前实公司已基本履行合同开发设计APP及交付义务，已交付的APP已基本符合同约定质量要求，只是由于南星公司方自身原因导致无法正常使用，故南星公司主张前实公司违约证据不足，一审法院不予采纳。现南星公司要求解除合同、前实公司双倍返还服务费共6万元缺乏法律依据，前实公司不同意，一审法院不予支持，依法予以驳回。
关于前实公司的反诉。涉案产品是APP,有别于普通产品，按交易惯例及一般常理，前实公司交付APP给南星公司后，双方需互相配合好办理相关技术手续及作相应调试，方能更好实现定作人的合同目的，故前实公司对未交付后台代码/源代码的合同义务负有责任。因前实公司未交付后台代码/源代码，未完全履行合同义务，故前实公司反诉要求南星公司支付开发余款1万元及利息缺乏理据，一审法院不予支持。前实公司无提供证据证明双方曾口头约定南星公司于2015年12月至2017年5月期间使用前实公司的VIN接口查询需支付服务费6万元，现南星公司不同意支付，故前实公司要求南星公司支付6万元服务费及利息的反诉请求缺乏法律依据，一审法院不予支持，依法予以驳回。
一审法院依照《中华人民共和国合同法》第二百五十一条，《中华人民共和国民事诉讼法》第六十四条第一款的规定，于2018年1月5日作出判决：一、驳回南星公司的全部诉讼请求；二、驳回前实公司的全部反诉请求。一审案件本诉受理费1300元，由南星公司负担。一审反诉案件受理费785.5元、财产保全费120元，由前实公司负担。
本院二审期间,当事人围绕上诉请求依法提交了证据。本院组织当事人进行了证据交换和质证。前实公司提交了一份打印的网络资料，内容显示是“腾讯开放平台/管理中心，安卓应用，南冠汽配，已上线，上线时间2015-11-02，安装包最新版本：2.3.3，更新时间2016-01-2915:04:31等”；拟证明前实公司按约交付了正式版给南星公司，并且最终版也做了补丁。南星公司质证认为：该证据不属于二审新证据，不应采信。与对苹果版的意见一致，前实公司只是交付了正式版而没有交付最终版。且前实公司已经支付了款项。
对当事人二审争议的证据，本院认定如下：该证据为电子证据，前实公司未能当庭演示，该证据不能直接作为认定事实的依据。
二审庭审中，南星公司与前实公司均认可支付第二期款项2万元的时间为2015年12月21日，并非一审认定的2016年2月26日。此外，在2016年12月15日，前实公司卢锐与南星公司刘世沛的电话录音中，刘世沛提及“语音迟缓”，“小功能没有调试好”，“要移（源代码）过来”等问题。
经审理，本院对一审法院认定的其他事实予以确认。
本院认为，本案二审争议焦点为：1.前实公司已交付的版本应如何认定？2.前实公司在履行合同过程是否构成根本性违约？南星公司能否行使单方解除权？3.南星公司是否有权要求前实公司承担违约责任？
关于前实公司已交付版本的认定问题。首先，前实公司与南星公司对于已经交付了三个版本均无异议。其次，在南星公司与前实公司的相关人员的录音中，南星公司的卢锐也未否认交付的是正式版，其并无提及应是最终版。再次，在前实公司提交的证据中，ISO版的时间戳、安卓版提交时间戳，能够显示最终更新的时间，从时间上看均在2016年进行了最新的更新。此外，双方均认可第二期费用支付时间是2015年12月21日。该时间均在前述两个版本最新更新时间之前。而第二期付款的条件是收到前实公司提交正式版本。根据以上分析可知，第一，从付款时间上看，可以认定前实公司已经提交了正式版本。第二，从第二期付款和最终更新时间看，能够得出在正式版本交付之后，ISO版本和安卓版本得到了更新。但更新后的版本是否是最终版，前实公司的主张与卢锐的录音资料矛盾，则根据本案的证据仅能认定前实公司已经交付了正式的版本，并无提交最终版本，则前实公司因未交付最终版本而无权收取南星公司余款1万元。
关于前实公司在履行合同过程是否构成根本性违约以及南星公司是否有权行使合同解除权的问题。首先，南星公司已经收到了前实公司交付的正式版本。南星公司提出无法使用，但并无提交证据证明及时提出了异议。其次，南星公司对于前实公司未能完成合同第一条关于A、B、C三项功能的开发内容所提交的网页证据是其单方面制作及提交的。该些页面为何出现错误，是前实公司交付软件本身存在的问题还是基于其他的原因存疑，南星公司并无进一步举证。再次，南星公司称自收到前实公司交付的软件已经不能正常使用。但从时间上看，前实公司交付正式版本后近一年的时间，南星公司与前实公司的相关人员的录音资料中，南星公司仍未直接针对软件不能正常使用提出质疑，只是提及“语音迟缓”，“小功能没有调试好”，“要移（源代码）过来”等。据此，本院认为，南星公司有关软件完全不能使用的主张不能成立。进而认定，前实公司在履行合同中并无根本性违约，则南星公司不能行使单方解除权。
关于南星公司是否有权追究前实公司违约责任的问题。涉案合同第一条约定，前实公司要提供B部分对应的后台代码，可供二次开发。第二条第（七）款第2项约定，开发完成后，一次性将B部分软件产品的开发源代码交给南星公司。根据前实公司的陈述，其已经交付了最终版本，形同自认完成了开发，则其理应交付B部分的源代码。但直至一审庭审，前实公司仍未提交源代码。前实公司提出其有权根据付款条件的约定不交付。但双方约定的第三期付款条件是收到调试后的最终版本，并非以支付尾款作为交付源代码的条件。则前实公司有关因未支付尾款则未交付源代码的意见不能成立。前实公司未在开发完成后交付源代码属违约。根据合同约定，如违约，前实公司以双倍服务费赔偿给南星公司。前实公司提出了该约定违约金过高的辩解。本院认为，虽然有关最终版本的支付双方存在争议，但前实公司已经因此不能收取余款，即前实公司未能交付最终版本已经遭受了惩罚。而南星公司收到正式版之后可推定已经投入了使用，则其仍要求双倍服务费作为违约金显然有违权利义务对等的原则。基于本案中，前实公司最终已经交付了源代码则本院酌定，前实公司因未能及时交付源代码应承担向南星公司支付违约金3000元的责任。
综上所述，南星公司有关违约金的部分上诉请求成立，应予支持；其他上诉请求，本院予以驳回。一审判决认定事实基本清楚，但案件处理欠妥，应予纠正。依照《中华人民共和国民事诉讼法》第一百七十条第一款第二项的规定，判决如下:
一、维持广东省广州市白云区人民法院（2017）粤0111民初4795号民事判决第二项；
二、撤销广东省广州市白云区人民法院（2017）粤0111民初4795号民事判决第一项；
三、被上诉人广州前实网络科技有限公司于本判决生效之日起五日内向上诉人中山市南星汽配有限公司支付违约金3000元；
四、驳回上诉人中山市南星汽配有限公司的其他诉讼请求。
如果未按判决指定的期间履行给付金钱义务，应当依照《中华人民共和国民事诉讼法》第二百五十三条之规定，加倍支付迟延履行期间的债务利息。
一审本诉案件受理费1300元，由上诉人中山市南星汽配有限公司负担1235元，被上诉人广州前实网络科技有限公司负担65元。一审反诉案件受理费785.5元，财产保全费120元，由被上诉人广州前实网络科技有限公司负担。二审案件受理费1300元，由上诉人中山市南星汽配有限公司负担1235元，被上诉人广州前实网络科技有限公司负担65元。
本判决为终审判决。
审判长 张朝晖
审判员 刘革花
审判员 练长仁
二〇一八年七月十九日
书记员 罗永娟
潘威
陶智斌