1. 程式人生 > 其它 >微信開發後臺接收和傳送程式碼

微信開發後臺接收和傳送程式碼

class Wechat
{
public function __construct(){
// $this->checkSignature();
}

private function checkSignature()
{
$signature = $_GET["signature"]; // 加密簽名 微信伺服器
$timestamp = $_GET["timestamp"]; // 時間戳
$nonce = $_GET["nonce"]; // 隨機數
$echostr = $_GET['echostr'];

$token = 'zhangxuhui';
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){
echo $echostr;
}else{
return false;
}
}
// http://www.zhangxuhui.com/nav/index.php/index/Wechat/index
public function index(){
// $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];// 7-
// 接收微信伺服器給我推送的資料
// $data = file_get_contents("php://input"); // 接收全域性的資料 全部接收 7+
// 如何把xml 格式的字串 解碼成陣列,物件 才可以使用

// file_put_contents("data.txt",$data);
// 1.獲取xml字串
/* $str = '<xml><ToUserName><![CDATA[gh_e95afa2c958c]]></ToUserName>
<FromUserName><![CDATA[odZTlt4EJkrO71qjQWigtvs6V3p0]]></FromUserName>
<CreateTime>1641437127</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[好]]></Content>
<MsgId>23499729696798541</MsgId>
</xml>';*/
$str = file_get_contents("php://input");
// 2.解碼 嚴格區分大小寫
$obj = simplexml_load_string($str ,'SimpleXMLElement', LIBXML_NOCDATA);
$toUserName = $obj->ToUserName; // 微信公眾號id
$FromUserName = $obj->FromUserName; // 個人的id
$MsgType = $obj->MsgType; // 資料型別
$Content = $obj->Content; // 內容
$CreateTime = time();
// 被動回覆訊息
$receiveStr = '<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>
';
$content1 = "你說:".$Content;
echo sprintf($receiveStr,$FromUserName,$toUserName,$CreateTime,$MsgType,$content1); // 回覆給使用者的訊息

}
}