白羽
2018-06-12
来源 :网络
阅读 1398
评论 0
摘要:本文将带你看懂如何对微信公众号进行服务器配置,希望本文对大家学微信有所帮助。
前期准备工作:
· 首先我们需要一个属于自己的公众号,如果没有的话就在这里申请一个测试帐号,具体怎么申请就问百度吧~
· 必须要有一台自己的公网服务器,以供微信服务器访问,如果没有可以去租一台云服务器,不贵几十块钱一个月
· 搭建自己的服务器环境,我的环境是(linux+nginx+php+mysql),具体怎么搭建百度一堆,
部署验证代码:
代码需要能正确响应微信发送的Token验证,我们可以百度别人的验证代码,也可以直接使用微信提供的验证事例代码,在这里
下载完成后,放在我们的WEB服务器下, 能访问就可以了,我的代码如下:
[php] view plain copy print?
1. <?php
2. /**
3. * wechat php test
4. */
5.
6. //define your token
7. define("TOKEN", "weixin");
8. $wechatObj = new wechatCallbackapiTest();
9. if (isset($_GET['echostr'])) {
10. $wechatObj->valid();
11. }else{
12. $wechatObj->responseMsg();
13. }
14.
15. class wechatCallbackapiTest
16. {
17. public function valid()
18. {
19. $echoStr = $_GET["echostr"];
20.
21. //valid signature , option
22. if($this->checkSignature()){
23. echo $echoStr;
24. exit;
25. }
26. }
27.
28. public function responseMsg()
29. {
30. //get post data, May be due to the different environments
31. $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
32.
33. //extract post data
34. if (!empty($postStr)){
35.
36. $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
37. $fromUsername = $postObj->FromUserName;
38. $toUsername = $postObj->ToUserName;
39. $keyword = trim($postObj->Content);
40. $time = time();
41. $textTpl = "<xml>
42. <ToUserName><![CDATA[%s]]></ToUserName>
43. <FromUserName><![CDATA[%s]]></FromUserName>
44. <CreateTime>%s</CreateTime>
45. <MsgType><![CDATA[%s]]></MsgType>
46. <Content><![CDATA[%s]]></Content>
47. <FuncFlag>0</FuncFlag>
48. </xml>";
49. if(!empty( $keyword ))
50. {
51. $msgType = "text";
52. $contentStr = "Welcome to wechat world!";
53. $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
54. echo $resultStr;
55. }else{
56. echo "Input something...";
57. }
58.
59. }else {
60. echo "";
61. exit;
62. }
63. }
64.
65. private function checkSignature()
66. {
67. $signature = $_GET["signature"];
68. $timestamp = $_GET["timestamp"];
69. $nonce = $_GET["nonce"];
70.
71. $token = TOKEN;
72. $tmpArr = array($token, $timestamp, $nonce);
73. sort($tmpArr);
74. $tmpStr = implode( $tmpArr );
75. $tmpStr = sha1( $tmpStr );
76.
77. if( $tmpStr == $signature ){
78. return true;
79. }else{
80. return false;
81. }
82. }
83. }
84.
85. ?>这里要注意:代码中的TOKEN必须要跟下图接口信息配置中的TOKEN值要一样,不样是验证不成功的
接口信息配置:

所有配置工作都已经完成了,但是别忘了点击启用服务器配置(我开始就忘了,所有一直不成功)

一切准备就绪,就来试试吧~

验证成功啦,而且还能回复消息~
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号