PHP 위 챗 API 인터페이스 클래스
<?php
/**
* wechat php test
*/
//define your token
// TOKEN
define("TOKEN", "weixin");
//
$wechatObj = new wechatCallbackapiTest();
// valid
//$wechatObj->valid();
//
$wechatObj->responseMsg();
//
class wechatCallbackapiTest
{
// valid :
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
// xml
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//extract post data
// xml
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);
// simplexml xml
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
//
$fromUsername = $postObj->FromUserName;
//
$toUsername = $postObj->ToUserName;
//
$keyword = trim($postObj->Content);
//1.
$msgType = $postObj -> MsgType;
//
$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($msgType == 'text'){
if(!empty( $keyword ))
{
/*
//
$msgType = "text";
//
if($keyword == " "){
$contentStr = " ";
}else{
$contentStr = " ";
}
// xml , .fromUsername Username , %s
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
// xml
echo $resultStr;
*/
if($keyword == "?" || $keyword == "?"){
$msgType = "text";
$contentStr = "1.
2. ";
$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
echo $resultStr;
}elseif($keyword == 1){
$msgType = "text";
$contentStr = "1. :110
2. :119
3. :120";
$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
echo $resultStr;
}elseif($keyword == 2){
$msgType = "text";
$contentStr = "1. :10086
2. :10010";
$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
echo $resultStr;
}
}else{
echo " ";
}
}
////////////////////////////////////////////////////////////////////////////////////
//
if($msgType == "image"){
//
$msgType = "text";
//
$contentStr = " ";
//
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
// xml
echo $resultStr;
}
////////////////////////////////////////////////////////////////////////////////////
if($msgType == "voice"){
//
$msgType = "text";
//
$contentStr = " ";
//
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
// xml
echo $resultStr;
}
////////////////////////////////////////////////////////////////////////////////////
if($msgType == "video"){
//
$msgType = "text";
//
$contentStr = " ";
//
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
// xml
echo $resultStr;
}
////////////////////////////////////////////////////////////////////////////////////
if($msgType == "shortvideo"){
//
$msgType = "text";
//
$contentStr = " ";
//
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
// xml
echo $resultStr;
}
////////////////////////////////////////////////////////////////////////////////////
if($msgType == "location"){
//
$msgType = "text";
//
$contentStr = " ";
//
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
// xml
echo $resultStr;
}
////////////////////////////////////////////////////////////////////////////////////
if($msgType == "link"){
//
$msgType = "text";
//
$contentStr = " ";
//
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
// xml
echo $resultStr;
}
////////////////////////////////////////////////////////////////////////////////////
/*
//
if(!empty( $keyword ))
{
//
$msgType = "text";
//
$contentStr = " , hero";
//
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
// xml
echo $resultStr;
}else{
echo "Input something...";
}
*/
}else {
echo "";
exit;
}
}
private function checkSignature()
{
// you must define TOKEN by yourself
// TOKEN,
if (!defined("TOKEN")) {
throw new Exception('TOKEN is not defined!');
}
$signature = $_GET["signature"];//
$timestamp = $_GET["timestamp"];//
$nonce = $_GET["nonce"];//
$token = TOKEN;// TOKEN $token
//
$tmpArr = array($token, $timestamp, $nonce);
// use SORT_STRING rule
//
sort($tmpArr, SORT_STRING);
//
$tmpStr = implode( $tmpArr );
//
$tmpStr = sha1( $tmpStr );
//
if( $tmpStr == $signature ){
// true
return true;
}else{
// false
return false;
}
}
}
?>
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.