想把微信公众平台接口转成DELPHI的,那位大侠给个思路
现在需要做一个微信公众平台连接数据库的开发,没思路了。大家看看这个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过来的数据,后面没有思路了。那位高手给个思路!
谢谢!
相关推荐
用Delphi XE7 Indy写的微信公众平台示例
Delphi XE7 Indy的IdHTTP写的微信公众平台,只做了部分功能,希望大家能用上 temp := JSONObject.Values['subscribe'].ToString; Memo1.Lines.Add('subscribe:' + temp); temp := JSONObject.Values['openid'].ToString; Memo1.Lines.Add('openid:' + temp); temp := JSONObject.Values['nickname'].ToString; Memo1.Lines.Add('nickname:' + temp); temp := JSONObject.Values['sex'].ToString; Memo1.Lines.Add('sex:' + temp); temp := JSONObject.Values['city'].ToString; Memo1.Lines.Add('city:' + temp); temp := JSONObject.Values['country'].ToString; Memo1.Lines.Add('country:' + temp); temp := JSONObject.Values['province'].ToString; Memo1.Lines.Add('province:' + temp); temp := JSONObject.Values['language'].ToString; Memo1.Lines.Add('language:' + temp); temp := JSONObject.Values['headimgurl'].ToString; Memo1.Lines.Add('headimgurl:' + temp); temp := JSONObject.Values['subscribe_time'].ToString; Memo1.Lines.Add('subscribe_time:' + temp); temp := JSONObject.Values['remark'].ToString; Memo1.Lines.Add('remark:' + temp);
基于Delphi XE4的微信公众平台接口范例
这是本人根据微信公众平台接口文档简单得不能再简单的资料编写的一个范例,希望对各位delphi程序员开发微信应用带来点帮助。 文件包中包含两个例程,一个是服务器端的,另一个是为方便在本地测试,模拟微信服务器推送信息的小工具,均有源码。 要测试本范例,需要一个微信公众账号,一个有公网IP的服务器,本范例自带web服务器,所以请先停掉服务器上已有的web服务再运行。 本范例在Delphi XE4 Update1上开发。
Delphi indy开发微信公众平台
包含微信公众平台的所有功能(除微支付)
微信公众平台接口框架
微信公众平台接口框架 auth : xy_huangzhanglei@foxmail.com/QQ3868277 date : 20150707 remark : 1、项目使用delphi2010版本开发编译 2、框架采用web app的模式注册运行,例如:项目名称为wechat_debug,类工厂名称为wechat, 编译运行后(要先启动webappdbg.exe),调用url为:http://127.0.0.1:80/wechat_debug.wechat 3、框架只封装了最基础的功能,如access_token的获取及刷新、自定义菜单的发布、模板消息的发送 4、各种事件的具体处理在wechat.xml文件中进行配置,将调用plugin插件完成,并反馈用户 5、自定义菜单文件wechat.json需要与服务程序放在同一文件夹下, 使用浏览器访问http://127.0.0.1:80/wechat_debug.wechat?help,点击refresh_menu即可 6、目前只支持明文模式,aes加解密尚需完善 7、由于delphi2010的indy有bug,访问https不稳定,固另外用delphi7写了http.dll,实现https的访问 8、框架目前已在投入正式环境使用,但感觉不是非常稳定,有时候几天后会down掉 9、水平有限,此次开源的目的是为了大家能够相互学习,共同进步并完善框架
微信公众平台开发源代码
微信公众平台开发源代码,非常全面,覆盖了大部分功能!


网络通信/分布式开发

