您的位置:首页 > 其它

WEB安全扫描软件=:joomscan

2015-02-02 12:25 169 查看
很久木有来写博文!最近研究微信接口开发,从网上查到的资料不是很多,就把自己研究成果跟大家分享一下!
首先我们需要申请一个微信公众账号,因为这个公众账号是公司的,所以不方便透露给大家! 相信简单的申请工作都是没有问题的!申请成功之后,菜单栏会出现“高级功能”,如下图:



里面有2中模式可以选择,“编辑模式”和“开发模式”,上面都详细的描述就不再想大家作解释了!

这里我们要讲的是开发模式。好了,到现在为止就可以进入开发模式的讲解了!
进入开发模式之后,我们需要在http://mp.weixin.qq.com/wiki/index.php?title=%E6%B6%88%E6%81%AF%E6%8E%A5%E5%8F%A3%E6%8C%87%E5%8D%97这个页面最底部,有一个demo例子,下载之后,放到服务器的某个目录里面。
然后我们在配置URL和Token值,如下图:



URL:填写我们放demo的访问网址,例如:http://www.123.com/wx_sample.php

Token:这个值可以随便写。
打开文件wx_sample.php,修改下面的内容
define("TOKEN", "weixin"); //修改成自己填写的token
填写之后,就可以提交了!
验证成功之后,我们可以写一个小例子测试一下,如下代码:
<?php
/**
* wechat php test
*/
// define
// your
// token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->responseMsg();
class wechatCallbackapiTest {
public function valid() {
$echoStr = $_GET["echostr"];
// valid
// signature
// ,
// option
if($this->checkSignature()) {
echo $echoStr;
exit();
}
}
public function responseMsg() {
// get
// post
// data,
// May
// be
// due
// to
// the
// different
// environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

// extract
// post
// data
if(!empty($postStr)) {

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";
if(!empty($keyword)) {
$msgType = "text";
$contentStr = "Welcome to wechat world!";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
} else {
echo "Input something...";
}
} else {
echo "";
exit();
}
}
private function checkSignature() {
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];

$token = TOKEN;
$tmpArr = array($token,$timestamp,$nonce);
sort($tmpArr);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);

if($tmpStr == $signature) {
return true;
} else {
return false;
}
}
}
?>
最简单的回复消息完成了!

本文出自 “成长记录” 博客,请务必保留此出处http://jsny821.blog.51cto.com/4736911/1265249
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: