开发微信公众平台。

车厘子妈妈 2021-09-18 16:37 420 次浏览 赞 108

最新问答

  • 芳芳Flora

    给分吧,你可以到微信公众平台官网的帮助中心一个案例文件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的
    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 = "
    45
    46
    47 %s
    48
    49
    50 0
    51
    ";
    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 }

    浏览 429赞 155时间 2024-02-10
  • 新羊年新气象

    随便你放呀。。。 不要index.php都行。。。 毕竟文件名字都无所谓的。。 就跟你网站首页也不一定叫index.php

    浏览 456赞 133时间 2022-02-05

开发微信公众平台。