微信公众平台——被动回复用户消息

开发模式下的回复信息基础接口,可用来向用户回复文本消息、图片消息、语音消息、视频消息、小视频消息、地理位置消息、链接消息。

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;
开发模式下的回复信息基础接口,可用来向用户回复文本消息、图片消息、语音消息、视频消息、小视频消息、地理位置消息、链接消息。 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 等于返回的结果,即可自动回复文本消息 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;
经验分享 程序员 微信小程序 职场和发展