ホームページ  >  記事  >  php教程  >  PHP WeChat開発プラットフォーム開発小規模実験

PHP WeChat開発プラットフォーム開発小規模実験

WBOY
WBOYオリジナル
2016-06-21 08:48:511171ブラウズ

WeChat と WeChat に続くオープン プラットフォームは最近非常に人気があります。私はずっと WeChat プラットフォームを試してみたいと思っていました。最近良いアイデアを思いつき、できるだけ早く実装したいと考えていました。幸いなことに、WeChat はロジックを表示するだけで済みます。実際、WeChat パブリック プラットフォームが情報を公開するためのプラットフォームとしてのみ使用される場合、つまり「編集モード」で使用される場合、実際にはコードを入力する必要はありません。開発者モードでは、開発者は特定の機能を実装するために特定のロジックとコードを設計する必要があります。次に、開発の開始について説明します。

1. WeChat パブリック プラットフォームを開発するには、まずサーバー リソースが必要です。もちろん、編集モードは考慮されません。いわゆる編集モードは、毎日 1 つのメッセージをプッシュするだけの公開アカウントです。サーバー リソースはさまざまなクラウドで利用でき、BAE/SAE/Nuts/Alibaba などをお勧めします。それぞれに独自の利点があり、競合があるためですか?スキルを練習するには十分な無料リソースがいくつか提供されます。

a. BAE アカウントを申請し、アプリケーションを作成します。テストの場合は、WeChat パブリック プラットフォームのホームページにアクセスして、その中の TOKEN を独自の TOKEN に変更します。たとえば、以下の PHP テスト コードでは、コードのロジックは非常に明確であり、論理演算の一部を定義することもできます。このファイルをアップロードし、独自のアプリケーションのバージョン 1 を作成します:

<?php  
/** 
* wechat php test 
*/  
//define your token  
define("TOKEN", "weixin");//此时你的微信公众平台的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)){  
$postObj = simplexml_load_string($postStr, &#39;SimpleXMLElement&#39;, 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"; (PS:^_^不错的php学习交流群:276167802,验证:csl,有兴趣的话可以加入进来一起讨论)  
$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()  
{  
$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;  
}  
}  
}  
?>  



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。