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

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

1、回复文本消息

function ReplyText(Msg: TMessage; MsgText: String): RawByteString;
varX: IXMLDocument;
beginX := NewXMLDocument;tryX.Xml.text := TextMsg;X.Active := true;with X.DocumentElement.ChildNodes dobeginNodes['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);finallyX.Active := False;X := nil;end;
end;

//设置AResponseInfo.ContentText 等于返回的结果,即可自动回复文本消息

2、回复图文消息

  TNews = recordTitle: String;Description: String;PicUrl: String;Url: String;end;var MusicSubimg='https://mmbiz.qlogo.cn/mmbiz/cHdclURXy6gmu3ib6UA20b5s2Xy1Ra7cxYMNIuDvFDiaQvX8MZDibgQ1eCOsfvL6zufo7xSzUiaQZUY1KovYWmJ6Hg/0';function NewsMusic: TArray<TNews>;
beginSetLength(Result, 2);Result[0].Title := 'QQ音乐巅峰榜·内地';Result[0].Description := 'QQ音乐巅峰榜·内地';Result[0].PicUrl := MusicSubimg;Result[0].Url := 'http://y.qq.com/#type=toplist&p=top_2';Result[1].Title := 'QQ音乐巅峰榜·港台';Result[1].Description := 'QQ音乐巅峰榜·港台';Result[1].PicUrl := MusicSubimg;Result[1].Url := 'http://y.qq.com/#type=toplist&p=top_1';
end;function ReplyNews(M: TMessage; News: TArray<TNews>): RawByteString;
varX: IXMLDocument;I: Integer;
beginX := NewXMLDocument;tryX.Xml.text := NewsMsg;X.Active := true;with X.DocumentElement.ChildNodes dobeginNodes['ToUserName'].NodeValue := M.FromUserName;Nodes['FromUserName'].NodeValue := M.ToUserName;Nodes['CreateTime'].NodeValue := UnixTime(now);Nodes['MsgType'].NodeValue := 'news';Nodes['ArticleCount'].NodeValue := length(News);with Nodes['Articles'].ChildNodes dobeginwith Nodes['item'].ChildNodes dobeginNodes['Title'].NodeValue := News[0].Title;Nodes['Description'].NodeValue := News[0].Description;Nodes['PicUrl'].NodeValue := News[0].PicUrl;Nodes['Url'].NodeValue := News[0].Url;end;for I := 1 to length(News) - 1 dobeginAdd(First.CloneNode(true));with Nodes['item'].ChildNodes dobeginNodes['Title'].NodeValue := News[I].Title;Nodes['Description'].NodeValue := News[I].Description;Nodes['PicUrl'].NodeValue := News[I].PicUrl;Nodes['Url'].NodeValue := News[I].Url;end;end;end;end;Result := UTF8Encode(X.Xml.text);finallyX.Active := False;X := nil;end;
end;

//设置AResponseInfo.ContentText 等于返回的结果,即可自动回复图文消息

3、回复模板消息

function PostMethod(HTTP: TIdHTTP; Url: String; Data: UTF8String; Max: Integer): String;
varPostData, RespData: TStringStream;
beginRespData := TStringStream.Create('');PostData := TStringStream.Create(Data);trytryif HTTP = nil thenExit;HTTP.Post(Url, PostData, RespData);Result := RespData.DataString;HTTP.Request.Referer := Url;exceptDec(Max);if Max = 0 thenbeginResult := '';Exit;end;Result := PostMethod(Url, Data, Max);end;finallyHTTP.Disconnect;FreeAndNil(RespData);FreeAndNil(PostData);end;
end;

SendTemplateUrl = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%s';function ReplyTemRecharge(OpenID, AccessToken, First, Remark: String;Money: Integer): TJSONObject;
varUrl: string;Data: TJSONObject;temp: RawByteString;
beginData := TJSONObject.Create;tryUrl := Format(SendTemplateUrl, [AccessToken]);Data.AddPair('touser', OpenID);Data.AddPair('template_id', 'NH_ctxX4kjW1Jw3q8Cb1y1uBAard9uOMdF5F2Nq9Uwc');Data.AddPair('url', '');Data.AddPair('topcolor', '#FF0000');Data.AddPair('data', TJSONObject.Create);with Data.Values['data'] as TJSONObject dobeginAddPair('first', TJSONObject.Create);with Values['first'] as TJSONObject dobeginAddPair('value', '充值成功');AddPair('color', '#173177');end;AddPair('keyword1', TJSONObject.Create);with Values['keyword1'] as TJSONObject dobeginAddPair('value', format('%d 元',[Money]));AddPair('color', '#173177');end;AddPair('keyword2', TJSONObject.Create);with Values['keyword2'] as TJSONObject dobeginAddPair('value', formatdatetime('yyyy-mm-dd hh:mm:ss', now));AddPair('color', '#173177');end;AddPair('remark', TJSONObject.Create);with Values['remark'] as TJSONObject dobeginAddPair('value', '这只是模板测试,不要当真哦^_^');AddPair('color', '#173177');end;end;temp := PostMethod(Url, UTF8Encode(Data.ToString), 1);Result := TJSONObject.ParseJSONValue(temp) as TJSONObject;finallyData.Free;end;
end;

转载于:https://www.cnblogs.com/hnxxcxg/p/8987605.html

微信公众平台——被动回复用户消息相关推荐

  1. 微信公众号被动回复方案梳理

    微信公众号机器人客服回复方案预梳理 一.微信公众平台开发接入指南 接入微信公众平台开发,需要按照如下步骤完成: 1.填写服务器配置 登录微信公众平台官网后,在公众平台后台管理页面 - 开发者中心页,点 ...

  2. 超详细 erlang服务器之微信公众号被动解析用户消息(明文模式安全模式)

    目录 一.前言: 二.配置微信公众号基础接口 (1)填写IP白名单和App Secret (2)配置微信公众号服务器URL​编辑 (3)配置微信公众号网页授权域名 (4)自定义菜单 (4)微信公众号推 ...

  3. 微信messageutil.java_java微信公众平台开发回复文本消息

    WeChatServlet代码: package com.test; import java.io.IOException; import java.io.PrintWriter; import ja ...

  4. 微信公众号开发-公众号被动回复用户消息

    专栏简介

  5. java微信公众号中文乱码_java微信公众平台开发回复中文消息乱码解决方案

    如上图所示,中文乱码,解决方法: 1,找到公众管理平台服务器配置的url请求地址对应的类(java是一个普通的servlet类). 2,在doPost方法中加入以下代码: // 将请求.响应的编码均设 ...

  6. 微信公众平台“自定义回复”技巧

    1.每天的消息推送 一定要精中选精,优中推优,发给你的粉丝他们最想看到的内容,而且最好把时间固定下来,让他们形成收看习惯,目前一般的官微会从下午开始推送消息,到晚上八点多结束,你可以选择一个时间固定下 ...

  7. 关于微信公众号被动回复带有表情的文字

    表情的消息类型实质是文本消息.每个表情都有与之对应的表情代码.

  8. Java微信公众平台开发_03_消息管理之被动回复消息

    GitHub源码:https://github.com/shirayner/weixin_gz 一.本节要点 1.回调url 上一节,我们启用服务器配置的时候,填写了一个服务器地址(url),如下图, ...

  9. php公众号被动回复,微信公众号被动消息回复原理解析

    背景:某分厂需要实时查询工件堆放的位置,要求快速便捷,因此设计了采用微信公众号被动回复信息的方案. 技术实现:开发者服务器--基于Angular2框架的已发布网站,编程语言为Python,后台存储数据 ...

最新文章

  1. 一行代码实现Okhttp,Retrofit,Glide下载上传进度监听
  2. 新搭建mysql容易出现问题
  3. 算法导论-排序(四)计数排序(线性时间排序)
  4. Canvas -画图 关键字
  5. 解决MFC 窗口创建时 争夺焦点的问题
  6. delphi 调试控件代码_机器人调试(六十七)
  7. 设计一个求立方体体积的父类,包含一个显示底面各个形状信息的统一方法,信息显示方式 “类别+周长+面积”;一个计算和显示立方体体积的统一方法 设计三个子类(利用继承关系):圆柱、长方体、三棱柱
  8. group + max函数_了解C ++中max()函数的工作方式
  9. windows虚拟显示器开发(一)
  10. 解决HC05蓝牙模块主从配对失败及AT模式设置方案
  11. 学习笔记---ih5_九宫格_拼图
  12. ubuntu20.04 RTX2060||nvidia显卡驱动|cuda|cudnn|pytorch
  13. 2017国庆 济南清北学堂 8天乐
  14. 【搜索】洛谷 P1460 健康的荷斯坦奶牛 Healthy Holsteins
  15. OLED12864播放视频
  16. TF实战QA丨这个问题,我以前也遇到过
  17. DosBox的使用,汇编代码编写,汇编语言,win10写汇编代码
  18. 【Filter过滤器案例】登录验证+敏感词过滤
  19. 【深度学习实验室服务器搭建整体思路】
  20. js px转rem,简单版,注意不能修改ui框架的px

热门文章

  1. DataURL与File,Blob,canvas对象之间的互相转换的Javascript (未完)
  2. 剑指Offer 斐波那契数列
  3. js 自定义类Android吐司提示框
  4. 04_传智播客iOS视频教程_类是以Class对象存储在代码段
  5. Android开发中调用系统窗口的方法
  6. 使用.Net 1.1的项目,TreeView控件不能正常显示
  7. Sky Line 与 ArcEngine的粘合剂 Composite UI AB?
  8. mysql grant查看用户权限命令
  9. java sqlserver 死锁_sqlserver数据库发生死锁处理
  10. 各种资源(持续更新中)