>위챗 애플릿 >위챗 개발 >PHP WeChat 개발에서 텍스트 자동 회신 소개

PHP WeChat 개발에서 텍스트 자동 회신 소개

高洛峰
高洛峰원래의
2017-03-13 14:04:151509검색

이 글은 PHP WeChat 개발 시 문자 자동 답장 관련 정보를 소개하고 있으니 관심 있는 친구들이 참고하면 됩니다.

우선 위챗 공개 플랫폼에 가서 계정을 등록하세요. 등록을 위해 작성) (추가) 등록 후 로그인하십시오. 왼쪽에 "개발자 센터"가 보입니다. 개발자 센터를 열기 전에 몇 가지 정보를 완료해야 할 것 같습니다. 단계에 따라 완료하세요. 개발자 센터에 들어간 후 먼저 편집

PHP WeChat 개발에서 텍스트 자동 회신 소개

으로 이동하여 구성을 수정합니다.

PHP WeChat 개발에서 텍스트 자동 회신 소개

URL은 자신의 도메인 이름을 사용하는 PHP 스크립트입니다(스크립트 데모는 아래 참조). 이 스크립트는 WeChat 인터페이스와 인터페이스하는 데 사용됩니다. 예를 들어, http://www.example.com/weixin.php

토큰은 위 스크립트에 정의된 상수입니다. PHP 스크립트 현재:

define("TOKEN", "my_weixin")

그런 다음 토큰을 채울 때 abcdefgh를 채웁니다

EncodingAESKey는 메시지 암호화용입니다. 43비트 숫자와 문자 조합을 직접 작성하거나 "무작위 생성"을 선택할 수 있습니다. 일반적으로 무작위 생성이면 충분합니다.

작성 후 저장합니다. (저장 시 토큰 인증에 실패했다는 메시지가 나오면 토큰이 일치하는지 확인하고 여러 번 클릭하여 저장하세요.)

저장한 후 수정된 구성 옆에 있는 '열기'를 클릭하세요.

그런 다음 PHP 스크립트를 편집할 수 있습니다. (자신의 도메인명이 없다면 시나클라우드의 무료 SAE를 이용하시면 되며 실명인증을 완료하시는 것이 가장 좋습니다)
데모 스크립트는 다음과 같습니다. 구독 계정)의 기능은 다음과 같습니다. hehe를 입력하고 hello world를 반환하세요!!! 다른 문자를 입력하면 heeh로 돌아가서 시도하세요.


header('content-type:text/html;charset=utf-8');

define("TOKEN", "my_weixin"); //define your token
$wx = new wechatCallbackapiTest();

if($_GET['echostr']){
 $wx->valid(); //如果发来了echostr则进行验证
}else{
 $wx->responseMsg(); //如果没有echostr,则返回消息
}


class wechatCallbackapiTest{

 public function valid(){ //valid signature , option

  $echoStr = $_GET["echostr"];
  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"]; //接收微信发来的XML数据

  //extract post data
 if(!empty($postStr)){
    
   //解析post来的XML为一个对象$postObj
   $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
  
   $fromUsername = $postObj->FromUserName; //请求消息的用户
   $toUsername = $postObj->ToUserName; //"我"的公众号id
   $keyword = trim($postObj->Content); //消息内容
   $time = time(); //时间戳
   $msgtype = 'text'; //消息类型:文本
   $textTpl = "<xml>
  <ToUserName><![CDATA[%s]]></ToUserName>
  <FromUserName><![CDATA[%s]]></FromUserName>
  <CreateTime>%s</CreateTime>
  <MsgType><![CDATA[%s]]></MsgType>
  <Content><![CDATA[%s]]></Content>
  </xml>";

  if($keyword == &#39;hehe&#39;){
    $contentStr = &#39;hello world!!!&#39;;
    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
    echo $resultStr;
    exit();            
   }else{
    $contentStr = &#39;输入hehe试试&#39;;
    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
    echo $resultStr;
    exit();
   }

  }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;
 }
 }
}

메시지를 보내면 시스템에서 다음과 같은 메시지를 표시합니다. 이 공개 플랫폼은 일시적으로 서비스를 제공할 수 없습니다. 나중에 다시 시도해 주세요. 그러면 코드 구문에 문제가 있을 수 있습니다. 문법 오류를 확인하고 다시 시도하세요.

첨부파일:

새 사용자가 공식 계정을 팔로우하면 자동으로 정보가 반환됩니다. ($키워드를 결정하기 전에 이 코드를 추가하세요.)

아아아아

위 내용은 PHP WeChat 개발에서 텍스트 자동 회신 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.