微信公众平台开发营销服务合同

微信服务合同

甲方:                                      乙方:                   

联系人:                                    联系人:                  

联系电话:                                  联系电话:                 

经甲、乙双方友好协商,就甲方所需微信服务达成以下共识。双方申明、双方都已理解并认可了本协议的所有内容,同意承担各自应承担的权利和义务,忠实地履行本协议。

第一条:服务内容

基础服务

1. 为企业开通公众账号;

2. 编写企业公众账号介绍;

3. 编写欢迎语;

4. 根据企业要求,对企业公众账号关注人群进行分类;

5. 根据企业要求,基于微信公众平台为企业配置自动回复;

6. 设置头像及二维码;

7. 微信代认证服务(需企业配合提供相关资料)。

具体功能开发及实施项目(在□中打√做选择)

第二条:合同金额及付款方式

1.  本合同金额总计:人民币          元整。大写                    元整。 

2. 付款方式:现金□    汇款□    其他□              

3.  甲方需在签订合同后一次性支付合同金额      %的预付款给乙方,合计           元(大写:                       拾圆整)。

4.  甲方在验收之后3个工作日内向乙方支付合同剩余金额            元;(大写:                       拾圆整)。

第三条:乙方的权利和义务

1.  乙方提供专人与甲方联络。

2.  乙方按合同相关约定,为甲方提供微信营销服务。

3.  在合作期间,如未征得甲方同意,乙方不得擅自改变微信企业信息。

4.  在要求的期限内,完成合同规定项目,并通知甲方进行验收。

5.  乙方针对甲方约定的服务达标时应及时通知甲方,甲方也应即时通过互联网查看效果确认,如甲方未能即时确认,则该服务的合同生效日以乙方发出通知的第一周为准。

6.  乙方不得将甲方提供的资料传播、出售给第三方。

第四条:甲方的权利和义务

1.  甲方提供专人与乙方联络。

2.  甲方必须保证微信信息的合法性和真实性,如因此引起纠纷,乙方不承担任何法律责任

3.  合同签订后,甲方提供微信账号以及密码等各种必要的资料和授权。

4.  按照合同的约定,及时支付费用。如因乙方过错未能如期完成合同约定内容,甲方有权要求终止,并按未完成服务项目,要求乙方退还相应款项。

5.  合作期间甲方不得将乙方策划的微信活动信息复制、传播、出售或许可给其它第三方。

第五条:验收标准

1.  乙方应以电话、传真以及电子邮件提供开发运营结果。

2.  运营结果达到到约定效果即为验收合格。

3.  甲方请及时填写验收确认信息。甲方在乙方交付工作成果后一周内未书面签收也未提出异议的,视为甲方验收合格。

4.  甲方完成验收后以合同提供的联系方式及时联系乙方。

第六条:违约责任

1.  任何一方有证据表明对方已经、正在或将要违约,可以提出中止履行本合同,但应及时通知对方。

2.  双方除不可抗力之原因,任何一方如单方违约,均应承担全部违约责任,并应向另一方赔偿由此违约所造成的损失

3.  因地震、火灾等自然灾害、战争、罢工、停电、停网、政府行为、官方关闭端口等造成接口不能使用时,双方通过书面的形式通知对方,本合同自动转型为运营模式。

第六条:合同期限

本合同自签约双方签字盖章之日起生效,至签约双方履行完毕约定义务之日终止。

第七条:未尽事宜补充

本合同如有未尽事宜,双方协商解决。本合同一式二份,双方各执一份,经双方签字、盖章后生效,两份合同具有同等法律效力。

甲方(盖章):                                  乙方(盖章):

代表签字:                                     代表签字:

日期:                                         日期:

 

第二篇:微信公众平台开发学习

微信公众平台研究文档(java版)

一. 微信接口配置信息:

官方文档摘取如下:

按照文档的意思,只要原样返回echostr参数的内容就行,至于验证请求是不是来自微信服务器后面再说,这里可以不考虑。 那么我们可以建立个jsp文件,里面内容如下:

在校验的时候我发现如果返回的echostr前后有多余的空白行都会导致校验失败,所以必须删除jsp中开头所有包含<%@...%>的语句,因为这些语句会导致出现空白行。

二.验证请求是否来自微信服务器

按照文档说明,首先需要将token、timestamp、nonce

微信公众平台开发学习

微信公众平台开发学习

进行字典

序排序,这里可以使用JAVA自带Arrays类的sort方法进行排序。

接下来按照文档说明,我们需要将合并的字符串进行sha1加密,可以用JAVA自带的MessageDigest类。最后生成的byte数组不能直接new String出来,会乱码,原因大家可以百度一下,反正我也是网上搜的,找到一段转换成String的代码。

最后配合如下的代码,生成sha1字符串。

三. 接收用户信息:

我目前就研究了接受文本信息。

微信公众平台开发学习

微信公众平台开发学习

微信公众平台开发学习

微信公众平台开发学习

控制台可以看到接收到的xml文本信息,注意编码,否则中文会乱码。

目前就研究这么多,下面是整个代码,希望能对各位有所帮助,谢谢。 <%@ page contentType="text/html; charset=utf-8" language="java" %>

<%@ page import="java.sql.PreparedStatement"%>

<%@ page import="java.sql.ResultSet"%>

<%@ page import="cn.gov.ahpc.db.DBConnection"%>

<%@ page import="java.text.SimpleDateFormat" %>

<%@ page import="java.util.Arrays" %>

<%@ page import="java.security.MessageDigest" %>

<%@ page import="java.io.*" %>

<%!

public String toHex(byte[] buffer) {

StringBuffer buf = new StringBuffer(buffer.length * 2);

for (int i = 0; i < buffer.length; i++) {

if (((int) buffer[i] & 0xff) < 0x10) {

buf.append("0");

}

buf.append(Long.toString((int) buffer[i] & 0xff, 16));

}

return buf.toString().toLowerCase();

}

%>

<%!

public String arrayToString(String[] arr){

StringBuffer bf = new StringBuffer();

for(int i = 0; i < arr.length; i++){

bf.append(arr[i]);

}

return bf.toString();

}

%>

<%

String signature = request.getParameter("signature"); //微信加密签名 String timestamp = request.getParameter("timestamp"); //时间戳

String nonce = request.getParameter("nonce"); //随机数

String echostr = request.getParameter("echostr"); //随机字符串

String token = "131645111122"; //令牌

String dictSort = null;

String line=null;

String[] dictSorts = {token,timestamp,nonce};

Arrays.sort(dictSorts); //字典排序

dictSort = arrayToString(dictSorts); //将String数组合并成一个字符串 MessageDigest md = MessageDigest.getInstance("SHA-1"); //哈希加密 md.update(dictSort.getBytes());

if(toHex(md.digest()).equals(signature)){

//确认请求来自微信服务器

System.out.println("ok");

}else{

//恶意请求

System.out.println("no");

}

/*********************************************

*读取用户发来的信息

*/

StringBuilder buffer = new StringBuilder();

BufferedReader reader = null;

try{

reader = new BufferedReader(new

InputStreamReader(request.getInputStream(),"utf-8"));

while((line = reader.readLine())!=null){

buffer.append(line);

}

}catch(Exception e){

e.printStackTrace();

}finally{

reader.close();

}

System.out.println(buffer.toString());

/***********************************************/

%>

相关推荐