微信公众平台——被动回复用户消息
开发模式下的回复信息基础接口,可用来向用户回复文本消息、图片消息、语音消息、视频消息、小视频消息、地理位置消息、链接消息。
1、回复文本消息
function ReplyText(Msg: TMessage; MsgText: String): RawByteString;
var
X: IXMLDocument;
begin
X := NewXMLDocument;
try
X.Xml.text := TextMsg;
X.Active := true;
with X.DocumentElement.ChildNodes do
begin
Nodes[ToUserName].NodeValue := Msg.FromUserName;
Nodes[FromUserName].NodeValue := Msg.ToUserName;
Nodes[CreateTime].NodeValue := UnixTime(now);
Nodes[MsgType].NodeValue := text;
Nodes[Content].NodeValue := MsgText;
end;
Result := UTF8Encode(X.Xml.text);
finally
X.Active := False;
X := nil;
end;
end; //设置AResponseInfo.ContentText 等于返回的结果,即可自动回复文本消息 function ReplyText(Msg: TMessage; MsgText: String): RawByteString; var X: IXMLDocument; begin X := NewXMLDocument; try X.Xml.text := TextMsg; X.Active := true; with X.DocumentElement.ChildNodes do begin Nodes[ToUserName].NodeValue := Msg.FromUserName; Nodes[FromUserName].NodeValue := Msg.ToUserName; Nodes[CreateTime].NodeValue := UnixTime(now); Nodes[MsgType].NodeValue := text; Nodes[Content].NodeValue := MsgText; end; Result := UTF8Encode(X.Xml.text); finally X.Active := False; X := nil; end; end; //设置AResponseInfo.ContentText 等于返回的结果,即可自动回复文本消息
2、回复图文消息
3、回复模板消息
function PostMethod(HTTP: TIdHTTP; Url: String; Data: UTF8String; Max: Integer): String;
var
PostData, RespData: TStringStream;
begin
RespData := TStringStream.Create();
PostData := TStringStream.Create(Data);
try
try
if HTTP = nil then
Exit;
HTTP.Post(Url, PostData, RespData);
Result := RespData.DataString;
HTTP.Request.Referer := Url;
except
Dec(Max);
if Max = 0 then
begin
Result := ;
Exit;
end;
Result := PostMethod(Url, Data, Max);
end;
finally
HTTP.Disconnect;
FreeAndNil(RespData);
FreeAndNil(PostData);
end;
end; function PostMethod(HTTP: TIdHTTP; Url: String; Data: UTF8String; Max: Integer): String; var PostData, RespData: TStringStream; begin RespData := TStringStream.Create(); PostData := TStringStream.Create(Data); try try if HTTP = nil then Exit; HTTP.Post(Url, PostData, RespData); Result := RespData.DataString; HTTP.Request.Referer := Url; except Dec(Max); if Max = 0 then begin Result := ; Exit; end; Result := PostMethod(Url, Data, Max); end; finally HTTP.Disconnect; FreeAndNil(RespData); FreeAndNil(PostData); end; end;
