开发微信公众平台,sae的代码里index.php里面要弄什么内容啊? 20

 我来答
langzixdjun
2014-12-21
知道答主
回答量:48
采纳率:0%
帮助的人:28.2万
展开全部
给分吧,你可以到微信公众平台官网的帮助中心下载一个案例文件wx_sample.zip,然后上传到你的SAE里去在配置你的公众平台开发者模式就可以用了。
把wx_sample.php代码啃了一下,现附上自己的见解:
01 /**
02 * wechat php test
03 */
04
05 //define your token
06 define("TOKEN", "weixin");
07 $wechatObj = new wechatCallbackapiTest();
08 $wechatObj->valid();
09
10 class wechatCallbackapiTest
11 {
12 public function valid()
13 {
14 $echoStr = $_GET["echostr"];//随机字符串
15
16 //valid signature , option
17 if($this->checkSignature()){
18 echo $echoStr;
19 exit;
20 }
21 }
22
23 public function responseMsg()
24 {
25 //get post data, May be due to the different environments
26 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
27
28 //extract post data
29 if (!empty($postStr)){
30
31 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
32 $fromUsername = $postObj->FromUserName;//获取$postObj对象中FromUserName的<![CDATA[%s]]>值
33 $toUsername = $postObj->ToUserName;
34 $keyword = trim($postObj->Content);
35 $time = time();
36 /*
37 *ToUserName--开发者微信号
38 *FromUserName--发送方帐号(一个OpenID)
39 *CreateTime--消息创建时间 (本为整型,不过这里以字符串格式输出)
40 *MsgType--location
41 *Content--文本消息内容
42 *%s - 字符串格式
43 */
44 $textTpl = "<xml>
45 <ToUserName><![CDATA[%s]]></ToUserName>
46 <FromUserName><![CDATA[%s]]></FromUserName>
47 <CreateTime>%s</CreateTime>
48 <MsgType><![CDATA[%s]]></MsgType>
49 <Content><![CDATA[%s]]></Content>
50 <FuncFlag>0</FuncFlag>
51 </xml>";
52 if(!empty( $keyword ))
53 {
54 $msgType = "text";
55 $contentStr = "Welcome to wechat world!";
56 //sprintf输出格式函数
57 //$textTpl为输出格式
58
59 $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
60 echo $resultStr;
61 }else{
62 echo "Input something...";
63 }
64
65 }else {
66 echo "";
67 exit;
68 }
69 }
70 /*
71 *加密/校验流程如下:
72 *1. 将token、timestamp、nonce三个参数进行字典序排序
73 *2. 将三个参数字符串拼接成一个字符串进行sha1加密
74 *3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
75 */
76 private function checkSignature()
77 {
78 $signature = $_GET["signature"];//微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
79 $timestamp = $_GET["timestamp"]; //时间戳
80 $nonce = $_GET["nonce"];//随机数
81
82 $token = TOKEN;
83 $tmpArr = array($token, $timestamp, $nonce);
84 sort($tmpArr, SORT_STRING); //进行字典序排序
85 $tmpStr = implode( $tmpArr );
86 $tmpStr = sha1( $tmpStr ); //sha1加密后与签名对比
87
88 if( $tmpStr == $signature ){
89 return true;
90 }else{
91 return false;
92 }
93 }
94 }
你妹_伤不起
2014-11-21 · TA获得超过295个赞
知道小有建树答主
回答量:498
采纳率:100%
帮助的人:267万
展开全部
随便你放呀。。。 不要index.php都行。。。 毕竟文件名字都无所谓的。。 就跟你网站首页也不一定叫index.php
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式