微信签到开发

时间:2024.3.31

概述

微信签到系统是一种新型的会务模式,主要应用在各种大中小型会议、活动上,从会前报名、信息确认到会上签到全部借助微信来完成,无须其他设备,用微信扫码的形式来完成报名和签到流程。微信自助报名签到会务系统具有低碳、环保、高效的优势。还会让所有参会者关注主办方的微信平台,便于会后的回访和关系维系。

背景

对于大型会议来说,信息的收集和身份确认是头等大事。随着智能手机的普及,如何让这两部分同时进行,减轻参会者和主办方的压力,成为第三方开发者的重要课题。微信公众号的出现让第三方开发看见了曙光;利用微信的优势,将微信与会议签到结合在一起,让用户可以通过微信报名,扫码完成签到。

简介

微信签到系统是示剑网络自主研发的一种新兴的会议管理模式,与会者需要先关注会议主办方的微信公众账号,然后邀请函就自动推送给与会者,通知会议主题、内容、时间、地点,参会者可以直接在微信内填写报名表,提交报名信息。报名页面可以在朋友圈转发,可以用任何订阅号接入,报名信息与微信号一一绑定,到会场后,参会者只需要扫描二维码即可完成签到。这种模式无论与会人数多少,都可以快速准确的统计出与会人数,更加高效环保节能,节省了大量的人力和时间。

特点

1、吸粉:保证所有参会人员关注大会官方微信公众号,是最有效的吸粉神器

2、收集信息:保证收集到所有参会人员的报名信息

3、报名审核开关:可以根据参会是否收费,设置报名是否需要审核

4、抽奖范围:如果设置抽奖环节,可以控制抽奖范围,系统可以在所有签到人员中随机抽取12个人,进行抽奖,保证公平公正。

5、信息统计:可以快速统计出报名信息、签到信息。

6、扩大宣传:利用微信朋友圈的宣传,可以扩大会议知名度,吸引更多人参会。

7、群发短信:可以用来会前确认信息,或者会后活动通知。

8、无须任何设备:只需要借助微信即可,无须购买其他验证设备。

9、多客服辅助签到:利用微信多客服功能,可以将签到与完善信息同步进行。

10、对接微支付:如果开通微支付,可以直接微信报名付款。

11、调查问卷:会后可以设置调查问卷,收集参会者的印象及对大会的意见。

应用

微信签到系统应用广泛,会议签到,上课签到,活动签到,工作签到均可。

应用条件

想实现微信报名签到,必须具备的先决条件:

1.必须是服务号且是认证的服务号;

2.如果是收费会议,需要报名的同时支付,还需要开通微支付,必须缴纳微信支付接口的两万元押金。


第二篇:微信营销平台开发总结


下面将一步步来实现微信公众平台的开发

设置了开发者模式的url和token后我们就可以进行开发了

Token你自己随便设置

一、 我们要先验证消息的是否来自微信 当然这部也可以省略 实现如下

开发者接收用户消息的时候,微信服务器将发送GET请求到填写的URL上,并且带上四个参数(signature、timestamp、nonce、echostr),开发者通过对签名(即signature)的效验,来判断此条消息的真实性。

Signatur:微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数

Timestamp:时间戳

Nonce:随机数

Echostr:随机字符串

验证代码:

$signature = $_GET["signature"];

$timestamp = $_GET["timestamp"];

$nonce = $_GET["nonce"];

$token = TOKEN;//这个是你自己设置的token

$tmpArr = array($token, $timestamp, $nonce);

sort($tmpArr, SORT_STRING);

$tmpStr = implode( $tmpArr );

$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){

return true;

}else{

return false;

}

二、接受发送的消息

当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。我们可以在开发者手册上

http://mp.weixin.qq.com/wiki/index.php?title=%E6%8E%A5%E6%94%B6%E6%99%AE%E9%80%9A%E6%B6%88%E6%81%AF 看到各个类型消息的xml格式,我们要做的就是获取xml中的信息。实现代码如下:

xml = file_get_contents("php://input");//获得POST过来的xml

$xml = new SimpleXMLElement($xml); //创建xml对象

foreach ($xml as $key => $value) {

$data[$key] = strval($value);

}

将xml中的标签放到$data的键中 内容放到值中

以文本信息为例

<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1348831860</CreateTime>

<MsgType><![CDATA[text]]></MsgType>

<Content><![CDATA[this is a test]]></Content>

<MsgId>123xxxxxxxxxxxx</MsgId>

</xml>

如果我们想要的到用户发送的文本内容,使用$data[‘Content’] 就可以得到

通过 MsgType可以得到发送的信息类型有 text image voice video link location event 还有一些事件 例如 关注 取消关注等 xml中会有一个Event 标签 类型有:

包括subscribe(订阅)、unsubscribe(取消订阅)、CLICK(自定义菜单的点击事件) SCAN扫描 你可以通过 判断$data[‘MsgType] 和 $data[‘Event‘] 来根据自己的数据库或设计好的回复内容来进行操作

三、对于回复的信息你需要echo 一个xml字符串 回复的格式在文档中也可以找到

$retTMP = "<xml>

<ToUserName><![CDATA[%s]]></ToUserName>

<FromUserName><![CDATA[%s]]></FromUserName>

<CreateTime>%s</CreateTime>

<MsgType><![CDATA[text]]></MsgType>

<Content><![CDATA[%s]]></Content>

<FuncFlag>0</FuncFlag>

</xml>";

//对消息模版中的通配符进行替换

$resultStr = sprintf($retTMP,$fromUserName,$toUserName,time(),$retMsg);

//输出XML中的描述

echo $resultStr;

四、 调用接口

微信中有许多多接口例如发送客服消息 获得用户信息 列表 分组等

这些怎么实现呢?

这些其实就是为了让我们得到自己粉丝的信息我们好存在自己的数据库中

首先我们看到这些接口链接都需要ACCESS_TOKEN,可能有些人不知道这个怎么获得。其实这个有时通过接口请求获得一个ACCESS_TOKEN的,但是首先你要确定你的公众好是服务号 有Appid和AppSecret

首先我们要有两个函数用来请求接口

function curlGet($url){

$result = file_get_contents($url);

if (empty($result)){

$ch = curl_init();

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt ($ch, CURLOPT_URL, $url);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);

curl_close($ch);

}

$return = json_decode($result,true);

return $return;

}

public function curlPost($url,$Referer,$data) {

$header = array(

'Accept:*/*',

'Accept-Charset:utf-8;q=0.7,*;q=0.3',

'Accept-Encoding:gzip,deflate,sdch',

'Accept-Language:zh-CN,zh;q=0.8',

'Connection:keep-alive',

'Host:mp.weixin.qq.com',

'Origin:https://mp.weixin.qq.com',

'Referer:'.$Referer,

'X-Requested-With:XMLHttpRequest'//,

// 'Content-Type:application/x-www-form-urlencoded'

);

$curl = curl_init(); //启动一个curl会话

curl_setopt($curl, CURLOPT_URL, $url); //要访问的地址

curl_setopt($curl, CURLOPT_HTTPHEADER, $header); //设置HTTP头字段的数组 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); //对认证证书来源的检查

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); //从证书中检查SSL加密算法是否存在

curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20xx0101 Firefox/23.0'); //模拟用户使用的浏览器

//curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); //使用自动跳转

curl_setopt($curl, CURLOPT_AUTOREFERER, 1); //自动设置Referer

curl_setopt($curl, CURLOPT_POST, 1); //发送一个常规的Post请求

curl_setopt($curl, CURLOPT_POSTFIELDS, $data); //Post提交的数据包

curl_setopt($curl, CURLOPT_TIMEOUT, 30); //设置超时限制防止死循环

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //获取的信息以文件流的形式返回

curl_setopt($curl, CURLOPT_SSLVERSION,3);

$result = curl_exec($curl); //执行一个curl会话

curl_close($curl); //关闭curl

$return = json_decode($result,true);

return $return;

}

这两个一个是get方式请求一个是post方式请求 由于微信返回的信息基本都是json格式所以我们在函数内部已经将json变成了数组

获得ACCESS_TOKEN的方法

得到 AppId和 AppSecret $appid $appsecret

$url_get = 'https://api.weixin.qq.com/cgi-

bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$appsecret;//请求的地址 $result=$this->curlGet($url_get);

if(isset($result['errcode'])){

//请求出现错误 可以查看手册中的 基础支持中的全局返回码说明

}

$ACC_TOKEN = $result['access_token'];

得到token后我们就可以请求接口了 以关注者列表或粉丝的详细信息为例:我们可以把粉丝放到自己的数据库中这样以后操作就会方便很多

$getURL="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$ACC_TOKEN; $list=$this->curlGet($getURL);

if(isset($list['errcode'])){//获取失败

}

if(isset($list['count']) && !$list['count']){

//未发现新的粉丝");

}

下面我们就可以根据列表来请求得到每个粉丝的具体信息

foreach($list['data']['openid'] as $openid)

{

//获取用户信息

$url_info='https://api.weixin.qq.com/cgi-

bin/user/info?access_token='.$ACC_TOKEN.'&openid='.$openid.'&lang=zh_CN';

$indata[]=$this->curlGet($url_info);

}

$indata里面存储就是每个粉丝的信息,

然后我们在获得粉丝所在分组的信息

foreach($indata as $key=>$data){

$datagg=array();

$datagg["openid"]=$data['openid'];

$datagg=json_encode($datagg); //看手册接口的请求的POST参数要json格式 $refer='https://mp.weixin.qq.com/cgi-

bin/contactmanage?t=user/index&token='.$ACC_TOKEN.'&lang=zh_CN';

$re_group=$this->curlPost($url_group,$refer,$datagg);

$data[$key]['group']=$re_group['groupid'];

}

这样就可以得到粉丝的所在分组

其他接口形式都是和上面差不多 所区别的就是注意是GET还是POST以及参数的格式

更多相关推荐:
微信公众平台开发合同范本

技术开发委托合同项目名称微信公众平台系统开发委托方甲方受托方乙方签订时间本合同甲方委托乙方研究开发微信公众平台项目并支付研究开发经费和报酬乙方接受委托并进行此项研究开发工作双方经过平等协商在真实充分地表达各自意...

微信公众平台-微官网建设开发协议合同书

甲方乙方甲方委托乙方建设网站等业务乙方根据甲方的要求建立甲方微信公众平台为明确双方权利与责任根据中国现行法律经双方友好协商签订此合同以期双方共同遵守一委托事项及收费1甲方委托乙方在国际互联网上注册域名租用服务器...

微信开发合同书

微信开发合同书甲方乙方便优传媒网络科技部地址地址江西省南昌市青山湖区东方银座2单元1008电话电话079188318602甲乙双方根据国家知识产权及网络管理的有关规定就甲方委托乙方为甲方筹建网站制作网页的合作项...

微信公众平台委托开发合同

微信公众平台委托开发合同委托方甲方受托方乙方经甲乙双方平等友好协商就甲方委托乙方开发微信公众平台项目达成如下协议一甲方委托乙方开发的微信公众平台号为微信号类别为订阅号服务号服务器空间由负责开发语言为二甲方微信公...

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

微信服务合同甲方乙方滕州市乐易文化传播有限公司经甲乙双方友好协商就甲方所需微信服务达成以下共识双方申明双方都已理解并认可了本协议的所有内容同意承担各自应承担的权利和义务忠实地履行本协议第一条服务内容基础服务1为...

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

聚微管家微信服务合同甲方乙方联系人联系人联系电话联系电话经甲乙双方友好协商就甲方所需微信服务达成以下共识双方申明双方都已理解并认可了本协议的所有内容同意承担各自应承担的权利和义务忠实地履行本协议第一条服务内容具...

微信公众平台开发合同

技术开发委托合同项目名称微信公众平台系统开发委托方甲方受托方乙方签订时间技术开发委托合同委托方甲方公司地址法定代表人项目联系人联系方式通讯地址电话电子信箱受托方乙方公司地址法定代表人项目联系人联系方式电子信箱本...

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

公众微信营销服务合同甲方乙方平凉弘扬快讯广告传媒有限公司微信官家联系人联系人白亚斌联系电话联系电话181xxxxxxxx经甲乙双方友好协商就甲方所需微信服务达成以下共识双方申明双方都已理解并认可了本协议的所有内...

微信公众号开发合同

中科微汇微信公众号开发协议一总则甲乙双方经友好协商本着平等自愿诚实互惠互利的原则就微信公众号开发项目合作达成如下协议甲方委托乙方进行微信公众号二次开发和三级分销建设甲方向乙方支付技术开发费用二双方权利与义务21...

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

微信服务合同甲方乙方经甲乙双方友好协商就甲方所需微信服务达成以下共识双方申明双方都已理解并认可了本协议的所有内容同意承担各自应承担的权利和义务忠实地履行本协议第一条服务内容基础服务1为企业开通公众账号2根据企业...

微信服务合同(合同模板)_14

湖州呗壳互联网金融信息服务有限公司服务合同微信版甲方乙方湖州呗壳互联网金融信息服务有限公司电话电话05726367036传真传真地址地址浙江省湖州市长兴县太湖资本广场A座1116室服务申请人以下称甲方与湖州呗壳...

微信平台网络广告发布合同范本

网络科技有限公司微信平台网络广告发布合同范本广告客户名称甲方地址广告发布单位名称乙方地址根据中华人民共和国合同法中华人民共和国广告法等有关法律法规规章的规定甲乙双方在自愿平等协商一致的基础上签订本合同第一条广告...

微信开发合同范本(16篇)