想把微信公众平台接口转成DELPHI的,那位大侠给个思路

jason_xh 2012-12-15 01:54:26
以前一直在做数据库方面的开发,涉及网络的很少。
现在需要做一个微信公众平台连接数据库的开发,没思路了。大家看看这个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过来的数据,后面没有思路了。那位高手给个思路!

谢谢!
...全文
2654 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxian251 2014-09-23
  • 打赏
  • 举报
回复
用RTCClient组件吧
caonumber 2014-09-21
  • 打赏
  • 举报
回复
关注。。。。成功了希望多多分享。让d一直活下去
phosphor3000 2014-09-19
  • 打赏
  • 举报
回复
嗯,这个我也在关注 希望能有实质性的东西出来。
lixianxiang 2014-03-22
  • 打赏
  • 举报
回复
我也在做微客多的会员接口,用TIdHttpServer做http server,但是,发现用手机和IE提交过来的数据包(json格式,跟踪 RequestInfo.ContentType='application/json;charset=utf8'),在OnCommandGet中 RequestInfo.FromParams 接收到的中文是乱码(?),不管是用UTF8Decode(RequestInfo.FromParams) 还是直接将 RequestInfo.FromParams 显示出来,都是乱码(?),不知道如何解决? 我怀疑 Delphi的TIdHttpServer 是不是只能用 TIdHttp作客户端提交?希望高手指点下
lyhoo163 2014-03-22
  • 打赏
  • 举报
回复
关注。。。。。。
lobtao 2014-03-12
  • 打赏
  • 举报
回复
盒子里已经有人做了例子程序了,还不错
NumberTop 2014-03-09
  • 打赏
  • 举报
回复
我也在研究. 楼上都对,但没有一个人给出方法,但网上却有人已经做出过类似的接口封装 我看了一下官方PHP代码示例,拿Delphi做微信平台最应该注意的应该有两点: 一是传入传出的编码一致问题 二是用于身份验证的sha1函数,在Delphi中的实现不容易,通常不能与PHP所生成的一致 其它方面做过HTTP通讯的应该不难掌握 大量的接口封装工作以及排错处理,是比较耗时的,反正我是没时间去研究了,期待楼主成功吧
「已注销」 2014-02-21
  • 打赏
  • 举报
回复
微信的接口都是走http协议。跟编程语言无关,无非是各种http请求。
liangpei2008 2014-02-21
  • 打赏
  • 举报
回复
引用 6 楼 truexf 的回复:
微信的接口都是走http协议。跟编程语言无关,无非是各种http请求。
嗯,HTTP+JSON解析,与编程语言无关。
tangbin88 2014-02-20
  • 打赏
  • 举报
回复
同问....
小猫k 2013-11-07
  • 打赏
  • 举报
回复
楼主,delphi的微信接口的问题解决了吗?我也需要这方面的知识,请指教,谢谢
haitao 2013-01-05
  • 打赏
  • 举报
回复
IdHTTPServer? 一般是使用IdHTTPclient模拟所有发送过程
阚雷--闞靁 2013-01-04
  • 打赏
  • 举报
回复
是啊,为何不用PHP的啊
jacktl 2012-12-21
  • 打赏
  • 举报
回复
直接用PHP版本就行了,多方便

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧