程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 微信公眾平台開發入門教程(2)接口配置,公眾入門教程

微信公眾平台開發入門教程(2)接口配置,公眾入門教程

編輯:關於PHP編程

微信公眾平台開發入門教程(2)接口配置,公眾入門教程


開發模式:
1. 簡介

微信公眾平台是騰訊公司在微信的基礎上新增的功能模塊,通過這一平台,個人和企業都可以打造一個微信的公眾號,並實現和特定群體的文字、圖片、語音的全方位溝通、互動。微信公眾平台分訂閱號和服務號、企業號三類平台,利用公眾賬號平台進行自媒體活動,簡單來說就是進行一對多的媒體性行為活動,如商家通過申請公眾微信服務號實現展示商家微官網、微社區、微會員、微推送、微支付、微活動,微報名,微分享、微名片等,還可以實現部分輕應用功能。已經形成了一種主流的線上線下微信互動營銷方式。 至2014年開通的微信公眾平台賬戶已經超過600萬。

許多機關、政府部門也開通微信公眾平台,實現了由遠距離變零距離服務的延伸,大大節約了群眾辦事成本,貼近了服務對象,方便了群眾辦事,也拉近了人口計生部門與群眾的關系,踐行了“為民、務實、清廉”的黨的群眾路線教育實踐活動時代內涵,收到了良好的社會效果。

2. 注冊微信平台公眾帳號

注冊地址:https://mp.weixin.qq.com

3. 接口配置

 示例代碼設置

微信公眾平台提供了一個php示例代碼:

http://mp.weixin.qq.com/mpres/htmledition/res/wx_sample.zip

下載下來,解壓縮,打開編輯。

將token值設置為你所需要的值,token可由開發者任意填寫,用作生成簽名。

編輯完保存並關閉文件,將文件wx_sample.php 更改成自定義的名字,這裡改為wxapi.php,再次打包成wxapi.zip。

4 、服務器平台設置

如果有自己的服務器,而且支持php,可以將接口文件上傳至服務器,如果沒有自己的服務器,則可以選擇部分免費的雲平台進行開發,如百度應用引擎BAE(http://developer.baidu.com/bae),新浪雲平台SAE(http://sae.sina.com.cn/)。


5. 配置接口

5.1 登錄微信公眾平台 -> 高能功能 -> 開發模式

5.2 成為開發者

5.3 接口配置信息

URL填寫上面得到的BAE URL:http://zhuojin.duapp.com/,再加上上傳的php文件名。即 http://zhuojin.duapp.com/wxapi.php

Token 填寫自定義的token 值,這裡為zhuojinsz。

對於SAE,URL填寫 http://1.zhuojin.sinaapp.com/wxapi.php

5.4 提交

點擊 “提交”,若一切設置正確,則會提示 “提交成功”。

5.5 查看接口配置信息

BAE 接口信息

SAE 接口信息

5.6 開啟開發模式

至此,配置完畢。



接口配置代碼如下:

<?php
/**
  * wechat php test
  */

//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET['echostr'])) {
    $wechatObj->valid();
} else {
    $wechatObj->responseMsg();
}


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)){
                /* 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);
                      $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', 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";
                        $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()
        {
        // you must define TOKEN by yourself
        if (!defined("TOKEN")) {
            throw new Exception('TOKEN is not defined!');
        }
        
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
                        
                $token = TOKEN;
                $tmpArr = array($token, $timestamp, $nonce);
        // use SORT_STRING rule
                sort($tmpArr, SORT_STRING);
                $tmpStr = implode( $tmpArr );
                $tmpStr = sha1( $tmpStr );
                
                if( $tmpStr == $signature ){
                        return true;
                }else{
                        return false;
                }
        }
}

?>

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved