微信php介面
① 微信php SDK進行了更新,更新代碼如何使用。
一、寫好介面程序
在你的伺服器上上傳好一個介面程序文件 內容如下:
<?php
define("TOKEN", "weixin");//自己定義的token 就是個通信的私鑰
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
//$wechatObj->responseMsg();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
public function responseMsg()
{
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if (!empty($postStr)){
$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 = '你好啊.;
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else{
echo '說說話吧';
}
}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 ){
② php 調用微信介面頻繁,怎麼限制讓他發送10條消息1秒鍾之後再發送
正常介面返回格式是{code:0,msg:'',data:{}},介面限制的時候可以返回{code:1001,msg:'請一秒鍾後重試.',data:{}}
你可以記錄一個cahce值,內容就存用戶這次訪問本介面的時間戳,和發送次數;每次請求進來的時候,取用戶cache,比對發送次數,如果不到10次,提示msg,然後ajax接收到code=1001的返回值就擱置按鈕1秒鍾.
③ 微信小程序,後端用php寫完介面,怎麼把數據給前端,要帶什麼參數
1、首先在 index.js中想寫邏輯代碼。