PHP语言学习之wx_sample.php
小标 2019-04-03 来源 : 阅读 827 评论 0

摘要:本文主要向大家介绍了PHP语言学习之wx_sample.php,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了PHP语言学习之wx_sample.php,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

PHP语言学习之wx_sample.php

<?php

/**

  * wechat php test

  */

//define your token

define("TOKEN", "weixin");

$wechatObj = new wechatCallbackapiTest();

$wechatObj->valid();

class wechatCallbackapiTest

{

 public function valid()

    {

        $echoStr = $_GET["echostr"];

        //valid signature , option

        if($this->checkSignature()){

         echo $echoStr;

         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)){

                /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,

                   the best way is to check the validity of xml by yourself */

                libxml_disable_entity_loader(true);

               $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 wechat world!";

                 $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

                 echo $resultStr;

                }else{

                 echo "Input something...";

                }

        }else {

         echo "";

         exit;

        }

    }

  

 private function checkSignature()

 {

        // you must define TOKEN by yourself

        if (!defined("TOKEN")) {

            throw new Exception(‘TOKEN is not defined!‘);

        }

        

        $signature = $_GET["signature"];

        $timestamp = $_GET["timestamp"];

        $nonce = $_GET["nonce"];

          

  $token = TOKEN;

  $tmpArr = array($token, $timestamp, $nonce);

        // use SORT_STRING rule

  sort($tmpArr, SORT_STRING);

  $tmpStr = implode( $tmpArr );

  $tmpStr = sha1( $tmpStr );

  

  if( $tmpStr == $signature ){

   return true;

  }else{

   return false;

  }

 }

}

?>


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言PHP频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程