/**
* WeChat パブリック プラットフォーム インターフェイス PHP100 カプセル化された機能ファイル
* 著者 PHP100.com 張恩民
*日付 2013-4-9 PRC:E+8 23:03
* linkme QQ925939 chuangen.com
*/
定義("トークン", "チュアンゲニット");
$wechatObj = 新しい wechatCallbackapiTest();
$wechatObj->weixin_run() //受信側メソッドを実行
クラス wechatCallbackapiTest
{
プライベート $fromUsername;
private $toUsername;
プライベート $times;
プライベート $キーワード;
パブリック関数 weixin_run(){
$this->responseMsg();
$arr[]=array("Chuangen は非常に信頼できます。PHP100 も悪くありません!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www .chuangen.com");
$arr[]=array("Chuangen は非常に信頼できます。PHP100 も悪くありません!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www .chuangen.com");
$arr[]=array("Chuangen は非常に信頼できます。PHP100 も悪くありません!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www .chuangen.com");
$this->fun_xml("ニュース",$arr,array(2,0));
}
関数 t($n){
include("t_api.php");
$c_name=$t_api[$n];
$json=file_get_contents("http://m.weather.com.cn/data/101110310.html");
json_decode($json) を返します;
}
パブリック関数 valid()
{
$echoStr = $_GET["echostr"];
//有効な署名、オプション
if($this->checkSignature()){
エコー $echoStr;
終了;
}}
パブリック関数 responseMsg()
{
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if (!empty($postStr)){
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $this->fromUsername = $postObj->FromUserName;
$this->toUsername = $postObj->ToUserName;
$this->keyword =rim($postObj->Content);
$this->times = time();
}else {
echo "これは weixin API 用のファイルです!";
終了; }
}
//Wechat のパッケージ化、
//type: テキストテキストタイプ、ニュースグラフィックタイプ
//テキスト,配列(内容),配列(ID)
//ニュース,array(配列(タイトル、紹介文、画像、ハイパーリンク),...10項目未満),配列(項目数, ID)
プライベート関数 fun_xml($type,$value_arr,$o_arr=array(0)){
//=================xml ヘッダー============
$con="
//==================コンテンツの種類============
スイッチ($type){
ケース "テキスト" :
$con.="<コンテンツ>コンテンツ>
休憩;
ケース「ニュース」:
$con.="
<記事>";
foreach($value_arr as $id=>$v){
if($id>=$o_arr[0]) ブレーク;それ以外の場合は null; // 判断数組数不超过设置数
$con.="<アイテム>
<タイトル>タイトル>
<説明>説明>
";
}
$con.="記事>
休憩;
} //終了スイッチ
//=================エンドリターン============
echo $con."";
}
プライベート関数 checkSignature()
{
$signature = $_GET["署名"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = トークン;
$tmpArr = array($token, $timestamp, $nonce);
ソート($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
true を返します;
}その他{
false を返します;
}
}
}
?>