本文實例講述了php版微信返回用戶text輸入的方法。分享給大家供大家參考,具體如下:
創(chuàng)新互聯(lián)公司提供成都做網(wǎng)站、網(wǎng)站設計、外貿(mào)營銷網(wǎng)站建設、網(wǎng)頁設計,成都品牌網(wǎng)站建設,一元廣告等致力于企業(yè)網(wǎng)站建設與公司網(wǎng)站制作,十載的網(wǎng)站開發(fā)和建站經(jīng)驗,助力企業(yè)信息化建設,成功案例突破1000多家,是您實現(xiàn)網(wǎng)站建設的好選擇.
獲得用戶輸入的內(nèi)容,并發(fā)回相同內(nèi)容
//獲取post數(shù)據(jù)
//
$PostData
=
$HTTP_RAW_POST_DATA;
$PostData
=
file_get_contents("php://input");
//判斷POST是否為空
if(!$PostData){
echo
"wrong
input!";
exit(0);
}
//解析XML字符串
$xmlObj
=
simplexml_load_string($PostData,
'SimpleXMLElement',
LIBXML_NOCDATA);
if(!$xmlObj){
echo
"wrong
input!";
exit(0);
}
//獲取數(shù)據(jù)
$fromUserName
=
$xmlObj-FromUserName;
$toUserName
=
$xmlObj-ToUserName;
$msgType
=
$xmlObj-MsgType;
//返回用戶輸入
if('text'
!=
$msgType){
//不是文本,輸出錯誤提示消息
$retMsg
=
"只支持文本消息";
}
//用戶輸入文本
else{
$content
=
$xmlObj-Content;
$retMsg
=
$content;
}
//輸出xml模板
$retTmp
=
"xml
ToUserName![CDATA[%s]]/ToUserName
FromUserName![CDATA[%S]]/FromUserName
CreateTime%s/CreateTime
MsgType![CDATA[text]]/MsgType
Content![CDATA[%s]]/Content
FuncFlag0/FuncFlag
/xml";
//對消息中的通配符進行替換
$resultStr
=
sprintf($retTmp,
$fromUserName,
$toUserName,
time(),
$retMsg);
//輸出xml的消息
echo
$resultStr
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP微信開發(fā)技巧匯總》、《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《PHP網(wǎng)絡編程技巧總結(jié)》、《PHP基本語法入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
$input?=?file_get_contents('php://input');
if?(!empty($input)??empty($_GET['out_trade_no']))?{
$obj?=?simplexml_load_string($input,?'SimpleXMLElement',?LIBXML_NOCDATA);
$data?=?json_decode(json_encode($obj),?true);
//根據(jù)$data處理自己所要的邏輯
}
$data具體參數(shù)看微信文檔,最常用的是:out_trade_no(商戶訂單號)、transaction_id(微信交易號)、result_code(交易狀態(tài))
交易狀態(tài)如果是success記得處理完邏輯后返回一個success,不然微信會認為你的處理未完成而繼續(xù)向服務器發(fā)送請求
微信小程序的js后臺只能執(zhí)行一些簡單的邏輯,遇到比較復雜的處理表單數(shù)據(jù)的功能或者網(wǎng)絡功能就需要連接服務器來遠程處理,實現(xiàn)方式就是調(diào)用小程序的 wx.request() 這一接口。
request請求 就是基本的HTTP請求,可以攜帶一些表單數(shù)據(jù),交給服務器處理。
在小程序中的寫法如下:
采用php作為服務器端語言,通過WAMP等框架可以很容易地搭建環(huán)境,服務器主要完成對請求數(shù)據(jù)的處理以及結(jié)果數(shù)據(jù)的返回。
請求數(shù)據(jù)的獲取非常容易,直接訪問相應的超全局數(shù)組,對于GET方法而言,通過下面的方式即可:
為了方便小程序端數(shù)據(jù)的處理,結(jié)果數(shù)據(jù)仍通過json格式返回,具體在php中的簡單做法就是
這樣返回的json數(shù)據(jù)就為
其中value1,value2等變量可以設置為多維數(shù)組,這樣通過json_encode() 函數(shù)之后就可以得到相應的嵌套的json數(shù)據(jù),從而方便處理。
通過php可以很容易地處理微信小程序的request請求,筆者是由于前一段時間需要進行微信小程序的開發(fā),就研究了一下小程序的邏輯,然后嘗試用php進行服務端處理,對于簡單的請求處理起來覺得還不錯,這篇文章可以作為初次接觸微信小程序的一個參考。
這么幾行代碼看不出什么問題,我是這樣處理的。
$data?=?file_get_contents("php://input");
$result_xml?=?xml_parser_create();
xml_parse_into_struct($result_xml,?$data,?$vals,?$index);
xml_parser_free($result_xml);
foreach(?$vals?as?$k)
{
if(strtolower($k['tag'])!='xml')$result_array[strtolower($k['tag'])]?=?$k['value'];
}
var_dump($result_array);
//$result_array這個變量對應的就是你代碼中的$result
微信服務器post數(shù)據(jù)是后臺進行的,你直接print并截斷是看不到信息的,另外post過來的數(shù)據(jù)是特殊的xml格式,可以寫入日志查看