副问题[/!--empirenews.page--]
择要
微信公家好的开拓很火,小措施更火。于是也凑个热闹,实行了一把。
大抵的成果照旧有的,不外是不全,许多处所我没有举办处理赏罚。不外对付纯文本方法的交换,已经没有题目啦。
<p style="text-align: center">
情形搭建
下面大抵的讲讲微信公家号的道理吧。也许我领略的有些不到位,假若有些许不妥,接待品评指教。
客户端发送给微信平台哀求,微信平台将哀求转发给私服,交给措施处理赏罚之后,获取到私服的处理赏罚功效,然后反馈给客户端。
虽然,这个中起到焦点浸染的天然是“微信公家平台”啦。相等于提供了一个舞台,一个能让列位强人异士揭示出各自的特色的平台。着实,不只微信云云,阿里同样是这样,云云各大电商才气一展手脚不是。
开启设置
这第一步,就是先申请一个微信开拓者账号,小我私人的话选择订阅号就足够了。网上相干的资料许多,也很具体,我就不多说了。咱们直奔主题好了。
起首登岸开拓者账号乐成后,开启处事器端的配置即可,如下图
开启完成,按照本身处事器的环境举办一下配置即可。
- URL就是你的私服用于处理赏罚哀求数据的地点
- TOKEN就是一个令牌,任意配置。不外记着待会本身的代码上会用到。
- 至于密钥嘛,没什么较大的浸染,临时可以先不消管。
按需配置
配置完,就可以启用了。这就比如家里的电线所有装修睦了,此刻要行使,按下开关一样。如下图
启用处事器设置
处事器情形
关于处事器这块,官网上讲授的也是很具体的啦。
我们还可以下载官方的demo来模仿。
官方样本
代码也很简朴。根基上学过了PHP根基语法的都可以或许看得懂。
valid();
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)){
/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,the best way is to check the validity of xml by yourself */
libxml_disable_entity_loader(true);
$postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "
%s
0
";
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()
{
// you must define TOKEN by yourself
if (!defined("TOKEN")) {
throw new Exception('TOKEN is not defined!');
}
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token,$timestamp,$nonce);
// use SORT_STRING rule
sort($tmpArr,SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
?>
焦点思绪,无非检讨一下署名,处理赏罚一下哀求,反馈一下功效而已。
这里我不得不想说的就是,我认为腾讯着实可以将那些个模板什么的去掉,直接袒暴露黑盒模式,这样的话安详性会更高一点。许多时辰,权限放的越开,结果也许越差。
焦点类
接下来就是我本身的处理赏罚逻辑了,参照官方文档。微信公家好上有6大吸取接口,三大回覆接口。依据MsgType即可鉴定。
接口详情
验证
验证要领焦点就是依据咱们之前网页上配置的TOKEN来事变的,以是代码上会用获得。
回覆
回覆的代码必要依据客户端发送的数据的范例来区分看待,范例这块微信平台会将数据打包好封装起来,我们住必要挪用内部的MsgType举办处理赏罚即可。
拓展
拓展部门,是我本身异想天开往上加的。
添加呆板人
挪用一个呆板人接口,来取代本身发送回覆,手艺让用户获得一个精采的用户体验,还能愉悦公共,何乐而不为?
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|