次の内容を含むインターフェイス プログラム ファイル (http://www.yourdomain.com/weixin.php など) をサーバーにアップロードします。
define("TOKEN", "weixin");//定義したトークンは通信用の秘密鍵です
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
/ /$wechatObj->responseMsg();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
if($this->checkSignature()){
echo $echoStr; ){
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$time = time() ;テント> 'hello、loser';それを言う? tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr ); ?>
2. WeChatパブリックプラットフォームの返信インターフェースを設定します
返信インターフェイスを設定し、URL とトークンを入力します (URL は上記の http://www.yourdomain.com/weixin.php に入力され、トークンは上記のプログラムで定義されたトークンと一致している必要があります)
3. 検証インターフェース
個人の WeChat を使用して公開アカウントをフォローし、このアカウントにメッセージを送信すると、元のメッセージが返されます。これは、検証が成功したことを意味します。
4. 返信のカスタマイズを開始します
$wechatObj->valid(); 行をコメントアウトし、//$wechatObj->responseMsg(); 行からもコメントを削除します。
responseMsg 関数のコードを変更して、ユーザーのメッセージ タイプ (「テキスト」、「イメージ」、「場所」) とメッセージの内容に基づいて、さまざまなコンテンツをユーザーに返信することができます。
メッセージインターフェースを使用する準備ができました。メッセージを送信してみましょう?
1. weixin.class.php をカプセル化します
WeChatパブリックプラットフォームでのコミュニケーションは特定形式のXMLデータを使用するため、承諾や返信のたびに多くのデータ処理が必要となります。
これ weixin.class.php に基づいてカプセル化を作成することを検討します。コードは次のとおりです:
コードをコピーします コードは次のとおりです:
class Weixin
{
public $token = '';//token
public $debug = false;//デバッグ中に中間データを記録できるように、デバッグ ステータスをマークするかどうか
public $ setFlag = false;
public $msgtype = 'text'; //('text','image','location')
public $msg = array();
public function __construct($token,$debug)
{
$ this-> token = $ token; ;write_log($postStr);
}
if (!empty($postStr )) {
$this- >msg = (array)simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); 返信テキストメッセージ
パブリック関数 makeText ($text='')
{
$CreateTime = time();
msg['FromUserName']}]]> msg['ToUserName']}]]> ;Content>
$ FuncFlag);
}
//配列パラメーターに基づいてグラフィック メッセージに返信します
public function makeNews($newsData=array())
{
$CreateTime = time();
$FuncFlag = $this->setFlag ? 1 : 0;
$newTplHeader = "
serName>< ;![CDATA[{$this-&g t;msg['ToUserName']}]]> FromUserName>
{$CreateTime}
< ;ArticleCount>%s";
$newTplItem = "
<説明> ;
";
$newTplFoot = "
%s
";
$Content = '';
$itemsCount = count($newsData['items']);
$itemsCount = $itemsCount if ($itemsCount) {
foreach ($newsData['items'] as $key => $item) {
if ($key<=9) {
$Content .= ($newTplItem,$item[ 'title'],$item['description'],$item['picurl'],$item['url']);
}
}
}
$header = sprintf($newTplHeader,$newsData['content '],$itemsCount);
$footer = sprintf($newTplFoot,$FuncFlag);
$header を返します。 $コンテンツ 。 $footer;
}
public function Reply($data)
{
if ($this->debug) {
$this->write_log($data);
}
echo $data;
}
パブリック関数valid()
{
if ($this->checkSignature()) {
if( $_SERVER['REQUEST_METHOD']=='GET' )
{
echo $_GET['echo str'];
終了;
}
}else{
write_log('认证失败');
exit;
}
}F プライベート関数 checksignature () {
$ 署名 = $ _Get ["署名"];
$ タイムスタンプ = $ _Get ["タイムスタンプ"]
$ nonce = $ _Get ["nonce"]] ; $ this&gt; $ timestamp、$ nonce);
2. weixin.class.php
を呼び出します。
WeChat パブリック プラットフォームのメイン インターフェイス ファイル (前に定義した http://www.yourdomain.com/weixin.php など) を挿入し、コードを次のように変更します。
コードをコピーします
コードは次のとおりです。
< ?php
include_once('weixin.class.php');//定義したばかりの WeChat メッセージ処理クラスを参照します
define("TOKEN", "mmhelper");
define('DEBUG', true) ;
$weixin = new Weixin(TOKEN,DEBUG);//インスタンス化
$weixin->getMsg();
$type = $weixin->msgtype;//メッセージタイプ
$username = $weixin->gt; msg['FromUserName '];//どのユーザーがあなたにメッセージを送信しましたか? この $username は WeChat によって暗号化されていますが、各ユーザーは 1 対 1 で対応しますif ($type==='text') {
if ($weixin ->msg['Content']=='Hello2BizUser') {//WeChat ユーザーがあなたのアカウントを初めてフォローすると、あなたの公開アカウントは「Hello2BizUser」という内容のメッセージを受け取ります -‐ ‐‐‐‐‐‐‐‐‐‐‐‐ weixin->makeText('注意してください、diaosi'); }else{//これはユーザーが入力したテキスト情報です $keyword = $weixin- &gt; msg ['content'];記事.
}elseif ($type==='image') {
//ユーザーから送信された画像は後の記事で処理されます
}elseif ($type==='voice') { //音声ユーザーが送信した内容は後で記事内で処理されます}$weixin->reply($reply);?>
3. クエリコード
データベース内のクエリ結果を特定の形式にフォーマットする必要もあります
コードをコピーします
コードは次のとおりです:
public function search(){
$record=array(); //返される結果の配列を定義します
$list = $this->search($this->keyword);//通常キーワードに基づいてデータベースをクエリするコード
if(is_array($list)&&!empty($list)){
foreach($list as $msg){
コード、配列の書式設定を共有する必要はありませんWeChat 返信メッセージで受信できる配列形式でデータベースに返されます。つまり、WeChat の公式ドキュメントの説明
'title' = & gt ['title'] ,
'description ' =>$msg['説明'], 'picurl' => url' =>$msg['url']
}
return $record;
}
?>
http://www.bkjia.com/PHPjc/745823.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/745823.html技術記事 1. インターフェイス プログラムを作成し、インターフェイス プログラム ファイル (http://www.yourdomain.com/weixin.php など) をサーバーにアップロードします。内容は次のとおりです。次のようにコードをコピーします。 ...