以前一直在做資料庫方面的開發,涉及網路的很少。
現在需要做一個微信公眾平臺連接資料庫的開發,沒思路了。大家看看這個PHP的例子給個思路。是否可以實作。
以下是PHP的代碼:
<?php
/**
* wechat php test
*/
//define your token
define("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, '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()
{
$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;
}
}
}
?>
我嘗試使用IdHTTPServer控制元件,可以決議POST過來的資料,后面沒有思路了。那位高手給個思路!
謝謝!
uj5u.com熱心網友回復:
直接用PHP版本就行了,多方便uj5u.com熱心網友回復:
是啊,為何不用PHP的啊uj5u.com熱心網友回復:
IdHTTPServer?一般是使用IdHTTPclient模擬所有發送程序
uj5u.com熱心網友回復:
樓主,delphi的微信介面的問題解決了嗎?我也需要這方面的知識,請指教,謝謝uj5u.com熱心網友回復:
同問....uj5u.com熱心網友回復:
微信的介面都是走http協議。跟編程語言無關,無非是各種http請求。uj5u.com熱心網友回復:
嗯,HTTP+JSON決議,與編程語言無關。
uj5u.com熱心網友回復:
我也在研究.樓上都對,但沒有一個人給出方法,但網上卻有人已經做出過類似的介面封裝
我看了一下官方PHP代碼示例,拿Delphi做微信平臺最應該注意的應該有兩點:
一是傳入傳出的編碼一致問題
二是用于身份驗證的sha1函式,在Delphi中的實作不容易,通常不能與PHP所生成的一致
其它方面做過HTTP通訊的應該不難掌握
大量的介面封裝作業以及排錯處理,是比較耗時的,反正我是沒時間去研究了,期待樓主成功吧
uj5u.com熱心網友回復:
盒子里已經有人做了例子程式了,還不錯uj5u.com熱心網友回復:
我也在做微客多的會員介面,用TIdHttpServer做http server,但是,發現用手機和IE提交過來的資料包(json格式,跟蹤 RequestInfo.ContentType='application/json;charset=utf8'),在OnCommandGet中RequestInfo.FromParams 接收到的中文是亂碼(?),不管是用UTF8Decode(RequestInfo.FromParams)
還是直接將 RequestInfo.FromParams 顯示出來,都是亂碼(?),不知道如何解決?
我懷疑 Delphi的TIdHttpServer 是不是只能用 TIdHttp作客戶端提交?希望高手指點下
uj5u.com熱心網友回復:
關注。。。。。。uj5u.com熱心網友回復:
嗯,這個我也在關注希望能有實質性的東西出來。
uj5u.com熱心網友回復:
關注。。。。成功了希望多多分享。讓d一直活下去uj5u.com熱心網友回復:
用RTCClient組件吧轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/98908.html
標籤:網絡通信/分布式開發
