!95 微信推送消息转发模式增加图片形式。

* 同步
* 增加消息转发类型
* 调整细节
* 修复github链接
* 1、【后端】移除业务逻辑中的【MediatR】及中介者模式,启用【Redis队列】处理。
* Merge branch 'develop' into dahuihui/develop
* 升级编辑器为CKEditor5
* Merge branch 'develop' into dahuihui/develop
* Merge branch 'develop' into dahuihui/develop
* 【后端】优化后端设置权限角色,反射controller和action的效率问题。
* 【后端】修复后端编辑商品问题。
* 【后端】修复腾讯云cos存储未调用bucket问题。#I42DF0
* Merge branch 'develop' into dahuihui/develop
* 启用新域名及演示平台
* Merge branch 'develop' into dahuihui/develop
* Merge branch 'develop' into dahuihui/develop
* 调整说明
* Merge branch 'develop' into dahuihui/develop
* 删除不需要的菜单
* 修复域名转发获取ip地址长度过长问题。
* 1、【后端】调整全局错误返回提示语。2、【数据库】修复20日删除3个表后,未清理干净问题。
* Merge branch 'develop' into dahuihui/develop
* Merge branch 'develop' into dahuihui/develop
* 调整全局错误返回提示语
* 修复商品批量处理报错的问题并优化展示界面。#I3X8PP
* Merge branch 'develop' into dahuihui/develop
* Merge branch 'develop' into dahuihui/develop
* 增加过滤敏感词的功能。#I3W6CM
* 增加Issue 和 Pull Request 模板
* 修复自定义上传路径上传至站点根目录,而非wwwroot的问题 #I41TD1
* Merge branch 'develop' into dahuihui/develop
* 修复自定义上传路径的表单命名异常问题
* 使用新数据库
* 【数据库】修复mysql数据库decimal类型未带小数的问题。#I3WAUY
* 更新数据库及脚本
* 2021-07-20
* Merge branch 'develop' into dahuihui/develop
* 修复webapi不进入调试断点的问题。
* Merge branch 'develop' into dahuihui/develop
* 修复后台前后端分离table面板启用自定义域名问题。
* 修复后台前后端分离域名未增加到html问题。
* Merge branch 'develop' into dahuihui/develop
* 【后端】修复修改登录用户真实姓名长度问题。
* 修复后台管理配送方式维护错误问题
* 1、修复小程序注册问题,导致交互事情。不然盛派的组件有bug,在不注册微信公众号只注册微信小程序的时候,进行小程序消息操作,默认还是走的是微…
* 修复消息模板不推送的问题
* Merge branch 'develop' into dahuihui/develop
* Merge branch 'develop' into dahuihui/develop
* 修复过期失效文档
* 调整代码生成器,增加初始化事务
* 调整接口端提示界面
* 修复弹窗不居中问题
* 调整一些命名方式
* 修复uni-app前端,用户订单列表【确认收货】按钮失效问题
* 1、修复mysql数据库下,报表统计sql的语法错误。2、为方便前端在不部署接口及后端的情况下测试uni-app前端,默认增加了测试接口地址…
* Merge branch 'develop' into dahuihui/develop
* 调整命名
* 增加docker-compose部署
* Merge branch 'develop' into dahuihui/develop
* 修复因linux下存在数据与文件名称大小写不对应,导致找不到数据库表的问题,特重新发布一份表名与实体名称一一对应脚本。
* 新mysql表名存在大小写问题
pull/96/head
大灰灰 4 years ago
parent 94e5145b7b
commit 143ee4f0b6

@ -0,0 +1,67 @@
/***********************************************************************
* Project: CoreCms.Net *
* Web: https://CoreCms.Net *
* ProjectName: *
* Author: *
* Email: JianWeie@163.com *
* CreateTime: 2020-08-13 23:57:23
* Description:
***********************************************************************/
using System.Threading;
using System.Threading.Tasks;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.WeChat.Service.HttpClients;
using CoreCms.Net.WeChat.Service.Models;
using MediatR;
using SKIT.FlurlHttpClient.Wechat.Api;
using SKIT.FlurlHttpClient.Wechat.Api.Events;
namespace CoreCms.Net.WeChat.Service.Mediator
{
/// <summary>
/// 表示 TEXT 事件的数据
/// </summary>
public class ImageMessageEventCommand : IRequest<WeChatApiCallBack>
{
public ImageMessageEvent EventObj { get; set; }
}
/// <summary>
/// 处理TEXT 事件的数据-以被动回复文本消息为例
/// </summary>
public class ImageMessageEventCommandHandler : IRequestHandler<ImageMessageEventCommand, WeChatApiCallBack>
{
private readonly WeChat.Service.HttpClients.IWeChatApiHttpClientFactory _weChatApiHttpClientFactory;
public ImageMessageEventCommandHandler(IWeChatApiHttpClientFactory weChatApiHttpClientFactory)
{
_weChatApiHttpClientFactory = weChatApiHttpClientFactory;
}
public async Task<WeChatApiCallBack> Handle(ImageMessageEventCommand request, CancellationToken cancellationToken)
{
var jm = new WeChatApiCallBack() { Status = true };
if (request.EventObj != null)
{
var client = _weChatApiHttpClientFactory.CreateWxOpenClient();
var replyModel = new SKIT.FlurlHttpClient.Wechat.Api.Events.TransferCustomerServiceReply()
{
ToUserName = request.EventObj.FromUserName,
FromUserName = request.EventObj.ToUserName,
CreateTimestamp = CommonHelper.GetTimeStampByTotalSeconds()
};
var replyXml = client.SerializeEventToXml(replyModel);
jm.Data = replyXml;
}
return await Task.FromResult(jm);
}
}
}

@ -0,0 +1,67 @@
/***********************************************************************
* Project: CoreCms.Net *
* Web: https://CoreCms.Net *
* ProjectName: *
* Author: *
* Email: JianWeie@163.com *
* CreateTime: 2020-08-13 23:57:23
* Description:
***********************************************************************/
using System.Threading;
using System.Threading.Tasks;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.WeChat.Service.HttpClients;
using CoreCms.Net.WeChat.Service.Models;
using MediatR;
using SKIT.FlurlHttpClient.Wechat.Api;
using SKIT.FlurlHttpClient.Wechat.Api.Events;
namespace CoreCms.Net.WeChat.Service.Mediator
{
/// <summary>
/// 表示 TEXT 事件的数据
/// </summary>
public class VoiceMessageEventCommand : IRequest<WeChatApiCallBack>
{
public VoiceMessageEvent EventObj { get; set; }
}
/// <summary>
/// 处理TEXT 事件的数据-以被动回复文本消息为例
/// </summary>
public class VoiceMessageEventCommandHandler : IRequestHandler<VoiceMessageEventCommand, WeChatApiCallBack>
{
private readonly WeChat.Service.HttpClients.IWeChatApiHttpClientFactory _weChatApiHttpClientFactory;
public VoiceMessageEventCommandHandler(IWeChatApiHttpClientFactory weChatApiHttpClientFactory)
{
_weChatApiHttpClientFactory = weChatApiHttpClientFactory;
}
public async Task<WeChatApiCallBack> Handle(VoiceMessageEventCommand request, CancellationToken cancellationToken)
{
var jm = new WeChatApiCallBack() { Status = true };
if (request.EventObj != null)
{
var client = _weChatApiHttpClientFactory.CreateWxOpenClient();
var replyModel = new SKIT.FlurlHttpClient.Wechat.Api.Events.TransferCustomerServiceReply()
{
ToUserName = request.EventObj.FromUserName,
FromUserName = request.EventObj.ToUserName,
CreateTimestamp = CommonHelper.GetTimeStampByTotalSeconds()
};
var replyXml = client.SerializeEventToXml(replyModel);
jm.Data = replyXml;
}
return await Task.FromResult(jm);
}
}
}

@ -165,18 +165,21 @@ namespace CoreCms.Net.Web.WebApi.Controllers.WeChatOAuth
switch (requestType)
{
case RequestMsgType.Text:
var callbackModel = client.DeserializeEventFromXml<SKIT.FlurlHttpClient.Wechat.Api.Events.TextMessageEvent>(msgXml);
callBack = await _mediator.Send(new TextMessageEventCommand() { EventObj = callbackModel });
var textMessageEvent = client.DeserializeEventFromXml<SKIT.FlurlHttpClient.Wechat.Api.Events.TextMessageEvent>(msgXml);
callBack = await _mediator.Send(new TextMessageEventCommand() { EventObj = textMessageEvent });
break;
case RequestMsgType.Location:
break;
case RequestMsgType.Image:
var imageMessageEvent = client.DeserializeEventFromXml<SKIT.FlurlHttpClient.Wechat.Api.Events.ImageMessageEvent>(msgXml);
callBack = await _mediator.Send(new ImageMessageEventCommand() { EventObj = imageMessageEvent });
break;
case RequestMsgType.Voice:
var voiceMessageEvent = client.DeserializeEventFromXml<SKIT.FlurlHttpClient.Wechat.Api.Events.VoiceMessageEvent>(msgXml);
callBack = await _mediator.Send(new VoiceMessageEventCommand() { EventObj = voiceMessageEvent });
break;
case RequestMsgType.Video:

@ -11,8 +11,8 @@
<h4 align="center">支持可视化布局的.Net小程序商城</h4>
[![star](https://gitee.com/CoreUnion/CoreShop/badge/star.svg)](https://gitee.com/CoreUnion/CoreShop.git) [![fork](https://gitee.com/CoreUnion/CoreShop/badge/fork.svg)](https://gitee.com/CoreUnion/CoreShop.git)
[![GitHub stars](https://img.shields.io/github/stars/CoreUnion/CoreShop?logo=github)](https://gihub.com/CoreUnion/CoreShop.git)
[![GitHub forks](https://img.shields.io/github/forks/CoreUnion/CoreShop?logo=github)](https://gihub.com/CoreUnion/CoreShop.git)
[![GitHub stars](https://img.shields.io/github/stars/CoreUnion/CoreShop?logo=github)](https://github.com/CoreUnion/CoreShop)
[![GitHub forks](https://img.shields.io/github/forks/CoreUnion/CoreShop?logo=github)](https://github.com/CoreUnion/CoreShop)
<a target="_blank" href="https://gitee.com/CoreUnion/CoreShop/blob/master/LICENSE"><img src="https://img.shields.io/github/license/CoreUnion/CoreShop.svg?logo=git&logoColor=red" ></img></a>

Loading…
Cancel
Save