1。2 开发工具的选用及语言介绍
1。2。1 微信二次开发
微信是腾讯公司推出的在智能终端提供的一种即时通讯的服务软件。微信公众号是微信向用户提供的一种账号形式,用户关注公众号后可以方便地获取多种多样的服务。为了使微信的开发者更好地进行微信的开发和拓展,微信公众号为用户提供了种类众多的open API,这些接口为开发者进行二次开发提供了支持。
微信公众平台为用户进行二次开发提供了众多的open API,主要有消息接收接口、消息发送接口、获取用户信息接口、客服接口、菜单接口等[7]。微信的消息接收接口主要处理消息的接收与回复,消息的处理等。获取用户消息接口主要是通过用户的openid(用户在公众号中的标识)获取用户的头像、用户名等信息[8]。当用户和公众号发生一些动作的交互时,微信可以用一定的接口将消息发送给微信的第三方开发者,开发者可以在交互发生48小时内调用客服接口,通过https请求的POST方法将一个json数据包发送给服务器,服务器对json数据进行解析,达到主动向用户发送消息的目的。这个接口可以在一定条件下满足开发者主动向用户发送消息的请求,可以使用户在使用时获得更加令人满意的使用体验,提升微信公众号进行消息处理的灵活性。菜单接口用于微信菜单的定义与管理[9]。
微信接口为用户进行二次开发,提供了固定的格式,用于xml或者json数据传输或实现一定的功能。以微信进行接口验证的接口为例,如下:
private function checkSignature()
{
$signature = $_GET["signature"];//获取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 );//sha1 加密
if( $tmpStr == $signature ){//如果验证匹配通过
return true;//返回true
}else{
return false;//返回false
}
}
以上接口主要是为了进行接口的验证与连接第三方开发者,主要包括token值(标志微信公众号与验证),signure(微信加密签名,signature是对用户填写的token参数和请求中的timestamp参数、nonce参数的结合。),timestamp(从服务器获得的时间戳),nonce(服务器产生的一组随机数),echostr(服务器产生随机字符串)作为验证标志。
以微信进行普通消息传书的XML文档为例:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>//传递接收方的openid
<FromUserName><![CDATA[fromUser]]></FromUserName>//传递发送方的openid
<CreateTime>1333333333</CreateTime>//传递时间戳
<MsgType><![CDATA[text]]></MsgType>//传递消息的类型
<Content><![CDATA[this is a test]]></Content>//传递消息的内容
<MsgId>1111111111111</MsgId>//信息的id值
</xml>
主要包括,微信发送者的openid,接收者的openid,消息内容等。微信根据规范的xml文档格式进行消息的解析[10]。
微信公众平台作为微信提供的一种服务对接口权限和调用频次具有一定限制,在这里不做详细说明。 php+mysql基于微信的辅助教学系统设计与实现(4):http://www.youerw.com/jisuanji/lunwen_81930.html