大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
公众账号需要根据不同微信用户的不同消息做出不同的响应,所以每一个公众账号需要开发自己独有的系统,这套系统需要运行在公网环境下,但是我们通常普通开发人员没有这个条件,所以我选择了新浪云(天真的我以为是免费的,结果花了10个小洋)。
第一步 注册微信公众账号
我用已有的微信号,扫码即可得到一个
第二步 注册新浪云
微信公众平台提供了一个php示例代码:http://mp.weixin.qq.com/mpres/htmledition/res/wx_sample.zip
下载下来,解压缩,打开编辑。将token值设置为你所需要的值,token可由开发者任意填写,用作生成签名。所以这里我选择PHP,之前我从来没写过PHP。
如上图所示,点击weixin->管理应用,然后点击 应用->代码管理 上传公众号后台系统的代码。(因为我也是刚开始学,所以没有修改示例程序,直接上传wx_sample.zip)
上面的基本上是我从网上搜集到的材料,但是下面这个坑,自己踩了将近3个小时,我看网上很多人也遇到了相同的问题。就是URL和Token都设置好了,而且确认无误,但是点击提交以后,提示配置错误。找了一些材料,首先用记事本把wx_sample.php的编码改成了utf-8,但是有人用BOM头的问题,所以用ultra-edit另存为utf-8无BOM,终于才提交通过。
现在你就可以用你自己的微信号给公众号发消息,并且编写自己的代码做出响应了。
<?php//define your tokendefine("TOKEN", "weixin");$wechatObj = new wechatCallbackapiTest();//$wechatObj->valid();$wechatObj->responseMsg(); class wechatCallbackapiTest{ public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if($this->checkSignature()){ //如果验证失败,可以加上这一句 header('content-type:text'); echo $echoStr; exit; } else{ echo "error!"; 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 liudan 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; } }}?>
效果如下,再次基础上搞个聊天机器人,图灵机器人等等就可以了
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/234083.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...