微信公众号平台开发测试怎么做_软件测试怎么测小程序

2022-11-17 16:19:10 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

微信公众号与微信客户端之间的通信机制如下图所示:

公众账号需要根据不同微信用户的不同消息做出不同的响应,所以每一个公众账号需要开发自己独有的系统,这套系统需要运行在公网环境下,但是我们通常普通开发人员没有这个条件,所以我选择了新浪云(天真的我以为是免费的,结果花了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,终于才提交通过。

现在你就可以用你自己的微信号给公众号发消息,并且编写自己的代码做出响应了。

代码语言:javascript复制
<?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;        }    }}?>

效果如下,再次基础上搞个聊天机器人,图灵机器人等等就可以了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/234083.html原文链接:https://javaforall.cn

0 人点赞