From 8d9adc809cee12d16caf9854ada2e7d030a5f4b4 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 21 十一月 2025 15:41:42 +0800
Subject: [PATCH] feat:开发
---
ApiTools.Core/Services/ChannelPingAnPayWalletService.cs | 9 +
ApiTools.Application/ApiTools.Application.csproj | 4
ApiTools.Core/ApiTools.Core.csproj | 4
ApiTools.Core/Models/WxmpUtils/Commands/SendWxmpSubscribMessageCommand.cs | 4
ApiTools.Web.Entry/appsettings.json | 11 +
ApiTools.Core/Enums/WxmpUtils/EnumWxmpSubscribMessageTemplate.cs | 4
ApiTools.Core/Models/WxmpUtils/Queries/GetWxmpSubscribMessageTemplatesQuery.cs | 85 ++++++++++
ApiTools.Core/Utils/WxmpUtils/GetWxmpSubscribMessageTemplatesRequest.cs | 104 +++++++++++++
ApiTools.Application/ChannelWallets/Commands/ChannelWalletCommandHandler.cs | 1
ApiTools.Application/WxUtils/Commands/WxmpSubscribMessageCommandHandler.cs | 4
ApiTools.Application/WxUtils/Queries/WxmpSubscribMessageQueryHandler.cs | 34 ++++
ApiTools.Application/ApiTools.Application.xml | 10 +
ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs | 21 ++
ApiTools.Core/ApiTools.Core.xml | 169 ++++++++++++++++++++
14 files changed, 444 insertions(+), 20 deletions(-)
diff --git a/ApiTools.Application/ApiTools.Application.csproj b/ApiTools.Application/ApiTools.Application.csproj
index 806b4d8..4c7484c 100644
--- a/ApiTools.Application/ApiTools.Application.csproj
+++ b/ApiTools.Application/ApiTools.Application.csproj
@@ -16,8 +16,4 @@
<ProjectReference Include="..\ApiTools.Core\ApiTools.Core.csproj" />
</ItemGroup>
- <ItemGroup>
- <Folder Include="WxUtils\Queries\" />
- </ItemGroup>
-
</Project>
diff --git a/ApiTools.Application/ApiTools.Application.xml b/ApiTools.Application/ApiTools.Application.xml
index c54741f..1663257 100644
--- a/ApiTools.Application/ApiTools.Application.xml
+++ b/ApiTools.Application/ApiTools.Application.xml
@@ -215,7 +215,7 @@
<param name="cancellationToken"></param>
<returns></returns>
</member>
- <member name="M:ApiTools.Application.WxmpSubscribMessageCommandHandler.Handle(ApiTools.Core.WxmpSendSubscribMessageCommand,System.Threading.CancellationToken)">
+ <member name="M:ApiTools.Application.WxmpSubscribMessageCommandHandler.Handle(ApiTools.Core.SendWxmpSubscribMessageCommand,System.Threading.CancellationToken)">
<summary>
寰俊灏忕▼搴忓彂閫佽闃呮秷鎭�
</summary>
@@ -231,6 +231,14 @@
<param name="cancellationToken"></param>
<returns></returns>
</member>
+ <member name="M:ApiTools.Application.WxmpSubscribMessageQueryHandler.Handle(ApiTools.Core.GetWxmpSubscribMessageTemplatesQuery,System.Threading.CancellationToken)">
+ <summary>
+ 鏌ヨ寰俊灏忕▼搴忚闃呮秷鎭ā鏉�
+ </summary>
+ <param name="request"></param>
+ <param name="cancellationToken"></param>
+ <returns></returns>
+ </member>
<member name="T:ApiTools.CommonServer.Application.SaveSmsSettingCommandHandler">
<summary>
淇濆瓨鐭俊閰嶇疆
diff --git a/ApiTools.Application/ChannelWallets/Commands/ChannelWalletCommandHandler.cs b/ApiTools.Application/ChannelWallets/Commands/ChannelWalletCommandHandler.cs
index 50032f2..137684a 100644
--- a/ApiTools.Application/ChannelWallets/Commands/ChannelWalletCommandHandler.cs
+++ b/ApiTools.Application/ChannelWallets/Commands/ChannelWalletCommandHandler.cs
@@ -91,6 +91,7 @@
if (request.Amount > wallet.Balance) throw Oops.Oh(EnumErrorCodeType.s404, "浣欓涓嶈冻");
var transaction = await channelWalletTransactionRepository.GetQueryable()
+ .Include(it => it.PingAnPay)
.Where(it => it.WalletId == wallet.Id && it.OutCode == request.OutCode)
.FirstOrDefaultAsync();
if (transaction == null)
diff --git a/ApiTools.Application/WxUtils/Commands/WxmpSubscribMessageCommandHandler.cs b/ApiTools.Application/WxUtils/Commands/WxmpSubscribMessageCommandHandler.cs
index 25a8315..45ea2c6 100644
--- a/ApiTools.Application/WxUtils/Commands/WxmpSubscribMessageCommandHandler.cs
+++ b/ApiTools.Application/WxUtils/Commands/WxmpSubscribMessageCommandHandler.cs
@@ -17,7 +17,7 @@
WxmpUtils utils,
IHttpContextAccessor httpContextAccessor
) :
- IRequestHandler<WxmpSendSubscribMessageCommand, Guid>,
+ IRequestHandler<SendWxmpSubscribMessageCommand, Guid>,
IRequestHandler<WxmpSubscribMessageNotifyCommand, bool>
{
private readonly ILogger<WxmpSubscribMessageCommandHandler> logger = logger;
@@ -30,7 +30,7 @@
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
- public async Task<Guid> Handle(WxmpSendSubscribMessageCommand request, CancellationToken cancellationToken)
+ public async Task<Guid> Handle(SendWxmpSubscribMessageCommand request, CancellationToken cancellationToken)
{
await utils.WxmpSendSubscribMessage(new WxmpSendSubscribMessageRequest
{
diff --git a/ApiTools.Application/WxUtils/Queries/WxmpSubscribMessageQueryHandler.cs b/ApiTools.Application/WxUtils/Queries/WxmpSubscribMessageQueryHandler.cs
new file mode 100644
index 0000000..3b3753a
--- /dev/null
+++ b/ApiTools.Application/WxUtils/Queries/WxmpSubscribMessageQueryHandler.cs
@@ -0,0 +1,34 @@
+锘縰sing ApiTools.Core;
+using Mapster;
+using MediatR;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ApiTools.Application
+{
+ public class WxmpSubscribMessageQueryHandler(
+ WxmpUtils utils
+ ) :
+ IRequestHandler<GetWxmpSubscribMessageTemplatesQuery, GetWxmpSubscribMessageTemplatesQueryResult>
+ {
+ private readonly WxmpUtils utils = utils;
+
+ /// <summary>
+ /// 鏌ヨ寰俊灏忕▼搴忚闃呮秷鎭ā鏉�
+ /// </summary>
+ /// <param name="request"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public async Task<GetWxmpSubscribMessageTemplatesQueryResult> Handle(GetWxmpSubscribMessageTemplatesQuery request, CancellationToken cancellationToken)
+ {
+ var res = await utils.GetWxmpSubscribMessageTemplate(new GetWxmpSubscribMessageTemplatesRequest
+ {
+ WxmpCode = request.WxmpCode
+ });
+ return res.Adapt<GetWxmpSubscribMessageTemplatesQueryResult>();
+ }
+ }
+}
diff --git a/ApiTools.Core/ApiTools.Core.csproj b/ApiTools.Core/ApiTools.Core.csproj
index 7575885..bea4bf4 100644
--- a/ApiTools.Core/ApiTools.Core.csproj
+++ b/ApiTools.Core/ApiTools.Core.csproj
@@ -39,8 +39,4 @@
</None>
</ItemGroup>
- <ItemGroup>
- <Folder Include="Models\WxmpUtils\Queries\" />
- </ItemGroup>
-
</Project>
diff --git a/ApiTools.Core/ApiTools.Core.xml b/ApiTools.Core/ApiTools.Core.xml
index 53af37e..f1928fe 100644
--- a/ApiTools.Core/ApiTools.Core.xml
+++ b/ApiTools.Core/ApiTools.Core.xml
@@ -3283,32 +3283,32 @@
绛惧悕鍚嶇О
</summary>
</member>
- <member name="T:ApiTools.Core.WxmpSendSubscribMessageCommand">
+ <member name="T:ApiTools.Core.SendWxmpSubscribMessageCommand">
<summary>
寰俊灏忕▼搴忓彂閫佽闃呮秷鎭�
</summary>
</member>
- <member name="P:ApiTools.Core.WxmpSendSubscribMessageCommand.WxmpCode">
+ <member name="P:ApiTools.Core.SendWxmpSubscribMessageCommand.WxmpCode">
<summary>
灏忕▼搴忕紪鍙�
</summary>
</member>
- <member name="P:ApiTools.Core.WxmpSendSubscribMessageCommand.Template">
+ <member name="P:ApiTools.Core.SendWxmpSubscribMessageCommand.Template">
<summary>
鎵�闇�涓嬪彂鐨勮闃呮ā鏉縤d
</summary>
</member>
- <member name="P:ApiTools.Core.WxmpSendSubscribMessageCommand.Page">
+ <member name="P:ApiTools.Core.SendWxmpSubscribMessageCommand.Page">
<summary>
鐐瑰嚮妯℃澘鍗$墖鍚庣殑璺宠浆椤甸潰锛屼粎闄愭湰灏忕▼搴忓唴鐨勯〉闈€�傛敮鎸佸甫鍙傛暟,锛堢ず渚媔ndex?foo=bar锛夈�傝瀛楁涓嶅~鍒欐ā鏉挎棤璺宠浆
</summary>
</member>
- <member name="P:ApiTools.Core.WxmpSendSubscribMessageCommand.Touser">
+ <member name="P:ApiTools.Core.SendWxmpSubscribMessageCommand.Touser">
<summary>
鎺ユ敹鑰咃紙鐢ㄦ埛锛夌殑 openid
</summary>
</member>
- <member name="P:ApiTools.Core.WxmpSendSubscribMessageCommand.Data">
+ <member name="P:ApiTools.Core.SendWxmpSubscribMessageCommand.Data">
<summary>
妯℃澘鍐呭锛屾牸寮忓舰濡倇 "phrase3": { "value": "瀹℃牳閫氳繃" }, "name1": { "value": "璁㈤槄" }, "date2": { "value": "2019-12-25 09:42" } }
</summary>
@@ -3316,6 +3316,76 @@
<member name="T:ApiTools.Core.WxmpSubscribMessageNotifyCommand">
<summary>
寰俊灏忕▼搴忚闃呮秷鎭�氱煡
+ </summary>
+ </member>
+ <member name="T:ApiTools.Core.GetWxmpSubscribMessageTemplatesQuery">
+ <summary>
+ 鏌ヨ寰俊灏忕▼搴忚闃呮秷鎭ā鏉�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesQuery.WxmpCode">
+ <summary>
+ 灏忕▼搴忕紪鍙�
+ </summary>
+ </member>
+ <member name="T:ApiTools.Core.GetWxmpSubscribMessageTemplatesQueryResult">
+ <summary>
+ 鏌ヨ寰俊灏忕▼搴忚闃呮秷鎭ā鏉�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesQueryResult.Items">
+ <summary>
+ 椤�
+ </summary>
+ </member>
+ <member name="T:ApiTools.Core.GetWxmpSubscribMessageTemplatesQueryResultData">
+ <summary>
+ 寰俊灏忕▼搴忚幏鍙栬闃呮秷鎭ā鏉�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesQueryResultData.TemplateId">
+ <summary>
+ 娣诲姞鑷宠处鍙蜂笅鐨勬ā鏉� id锛屽彂閫佸皬绋嬪簭璁㈤槄娑堟伅鏃舵墍闇�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesQueryResultData.Title">
+ <summary>
+ 妯$増鏍囬
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesQueryResultData.Content">
+ <summary>
+ 妯$増鍐呭
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesQueryResultData.Example">
+ <summary>
+ 妯℃澘鍐呭绀轰緥
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesQueryResultData.Type">
+ <summary>
+ 妯$増绫诲瀷锛�2 涓轰竴娆℃�ц闃咃紝3 涓洪暱鏈熻闃�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesQueryResultData.Values">
+ <summary>
+ 鏋氫妇鍙傛暟鍊艰寖鍥�
+ </summary>
+ </member>
+ <member name="T:ApiTools.Core.GetWxmpSubscribMessageTemplatesQueryResultDataValue">
+ <summary>
+ 寰俊灏忕▼搴忚幏鍙栬闃呮秷鎭ā鏉�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesQueryResultDataValue.Code">
+ <summary>
+ 鏋氫妇鍙傛暟鐨� key
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesQueryResultDataValue.Values">
+ <summary>
+ 鏋氫妇鍙傛暟鍊艰寖鍥村垪琛�
</summary>
</member>
<member name="M:ApiTools.Core.BaseRepository`2.GetQueryable(System.Boolean)">
@@ -6899,6 +6969,86 @@
</summary>
<returns></returns>
</member>
+ <member name="T:ApiTools.Core.GetWxmpSubscribMessageTemplatesRequest">
+ <summary>
+ 寰俊灏忕▼搴忚幏鍙栬闃呮秷鎭ā鏉�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesRequest.WxmpCode">
+ <summary>
+ 灏忕▼搴忕紪鍙�
+ </summary>
+ </member>
+ <member name="T:ApiTools.Core.GetWxmpSubscribMessageTemplatesResponse">
+ <summary>
+ 寰俊灏忕▼搴忚幏鍙栬闃呮秷鎭ā鏉�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesResponse.ErrorCode">
+ <summary>
+ 閿欒鐮�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesResponse.ErrorMessage">
+ <summary>
+ 閿欒淇℃伅
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesResponse.Items">
+ <summary>
+ 妯℃澘鍒楄〃
+ </summary>
+ </member>
+ <member name="T:ApiTools.Core.GetWxmpSubscribMessageTemplatesResponseData">
+ <summary>
+ 寰俊灏忕▼搴忚幏鍙栬闃呮秷鎭ā鏉�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesResponseData.TemplateId">
+ <summary>
+ 娣诲姞鑷宠处鍙蜂笅鐨勬ā鏉� id锛屽彂閫佸皬绋嬪簭璁㈤槄娑堟伅鏃舵墍闇�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesResponseData.Title">
+ <summary>
+ 妯$増鏍囬
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesResponseData.Content">
+ <summary>
+ 妯$増鍐呭
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesResponseData.Example">
+ <summary>
+ 妯℃澘鍐呭绀轰緥
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesResponseData.Type">
+ <summary>
+ 妯$増绫诲瀷锛�2 涓轰竴娆℃�ц闃咃紝3 涓洪暱鏈熻闃�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesResponseData.Values">
+ <summary>
+ 鏋氫妇鍙傛暟鍊艰寖鍥�
+ </summary>
+ </member>
+ <member name="T:ApiTools.Core.GetWxmpSubscribMessageTemplatesResponseDataValue">
+ <summary>
+ 寰俊灏忕▼搴忚幏鍙栬闃呮秷鎭ā鏉�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesResponseDataValue.Code">
+ <summary>
+ 鏋氫妇鍙傛暟鐨� key
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.GetWxmpSubscribMessageTemplatesResponseDataValue.Values">
+ <summary>
+ 鏋氫妇鍙傛暟鍊艰寖鍥村垪琛�
+ </summary>
+ </member>
<member name="T:ApiTools.Core.WxmpGetQrCodeCommand">
<summary>
灏忕▼搴忚幏鍙栦簩缁寸爜
@@ -7094,6 +7244,13 @@
<param name="command"></param>
<returns></returns>
</member>
+ <member name="M:ApiTools.Core.WxmpUtils.GetWxmpSubscribMessageTemplate(ApiTools.Core.GetWxmpSubscribMessageTemplatesRequest)">
+ <summary>
+ 鏌ヨ璁㈤槄娑堟伅妯℃澘
+ </summary>
+ <param name="command"></param>
+ <returns></returns>
+ </member>
<member name="M:ApiTools.Core.WxmpUtils.WxmpSendSubscribMessage(ApiTools.Core.WxmpSendSubscribMessageRequest)">
<summary>
鍙戦�佽闃呮秷鎭�
diff --git a/ApiTools.Core/Enums/WxmpUtils/EnumWxmpSubscribMessageTemplate.cs b/ApiTools.Core/Enums/WxmpUtils/EnumWxmpSubscribMessageTemplate.cs
index 0fce40e..26d734e 100644
--- a/ApiTools.Core/Enums/WxmpUtils/EnumWxmpSubscribMessageTemplate.cs
+++ b/ApiTools.Core/Enums/WxmpUtils/EnumWxmpSubscribMessageTemplate.cs
@@ -31,5 +31,9 @@
/// 鎺掔彮鎴愬姛閫氱煡 鎺掔彮鍚庡悜C绔汉鍛橀�氱煡
/// </summary>
ArrangeCompletedToUser,
+ /// <summary>
+ /// 娴嬭瘯
+ /// </summary>
+ Test,
}
}
diff --git a/ApiTools.Core/Models/WxmpUtils/Commands/WxmpSendSubscribMessageCommand.cs b/ApiTools.Core/Models/WxmpUtils/Commands/SendWxmpSubscribMessageCommand.cs
similarity index 88%
rename from ApiTools.Core/Models/WxmpUtils/Commands/WxmpSendSubscribMessageCommand.cs
rename to ApiTools.Core/Models/WxmpUtils/Commands/SendWxmpSubscribMessageCommand.cs
index b73c4bf..cbc2ac9 100644
--- a/ApiTools.Core/Models/WxmpUtils/Commands/WxmpSendSubscribMessageCommand.cs
+++ b/ApiTools.Core/Models/WxmpUtils/Commands/SendWxmpSubscribMessageCommand.cs
@@ -12,8 +12,8 @@
/// <summary>
/// 寰俊灏忕▼搴忓彂閫佽闃呮秷鎭�
/// </summary>
- [Resource([EnumResourceController.CommonServerWxmpUtils], Method = EnumResourceMethod.Post)]
- public class WxmpSendSubscribMessageCommand : IRequest<Guid>
+ [Resource([EnumResourceController.CommonServerWxmpUtils])]
+ public class SendWxmpSubscribMessageCommand : IRequest<Guid>
{
/// <summary>
/// 灏忕▼搴忕紪鍙�
diff --git a/ApiTools.Core/Models/WxmpUtils/Queries/GetWxmpSubscribMessageTemplatesQuery.cs b/ApiTools.Core/Models/WxmpUtils/Queries/GetWxmpSubscribMessageTemplatesQuery.cs
new file mode 100644
index 0000000..b2d48d5
--- /dev/null
+++ b/ApiTools.Core/Models/WxmpUtils/Queries/GetWxmpSubscribMessageTemplatesQuery.cs
@@ -0,0 +1,85 @@
+锘縰sing MediatR;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ApiTools.Core
+{
+ /// <summary>
+ /// 鏌ヨ寰俊灏忕▼搴忚闃呮秷鎭ā鏉�
+ /// </summary>
+ [Resource([EnumResourceController.CommonServerWxmpUtils])]
+ public class GetWxmpSubscribMessageTemplatesQuery : IRequest<GetWxmpSubscribMessageTemplatesQueryResult>
+ {
+ /// <summary>
+ /// 灏忕▼搴忕紪鍙�
+ /// </summary>
+ public string WxmpCode { get; set; }
+ }
+
+ /// <summary>
+ /// 鏌ヨ寰俊灏忕▼搴忚闃呮秷鎭ā鏉�
+ /// </summary>
+ public class GetWxmpSubscribMessageTemplatesQueryResult
+ {
+ /// <summary>
+ /// 椤�
+ /// </summary>
+ public List<GetWxmpSubscribMessageTemplatesQueryResultData> Items { get; set; } = [];
+ }
+
+ /// <summary>
+ /// 寰俊灏忕▼搴忚幏鍙栬闃呮秷鎭ā鏉�
+ /// </summary>
+ public class GetWxmpSubscribMessageTemplatesQueryResultData
+ {
+ /// <summary>
+ /// 娣诲姞鑷宠处鍙蜂笅鐨勬ā鏉� id锛屽彂閫佸皬绋嬪簭璁㈤槄娑堟伅鏃舵墍闇�
+ /// </summary>
+ public string TemplateId { get; set; }
+
+ /// <summary>
+ /// 妯$増鏍囬
+ /// </summary>
+ public string Title { get; set; }
+
+ /// <summary>
+ /// 妯$増鍐呭
+ /// </summary>
+ public string Content { get; set; }
+
+ /// <summary>
+ /// 妯℃澘鍐呭绀轰緥
+ /// </summary>
+ public string Example { get; set; }
+
+ /// <summary>
+ /// 妯$増绫诲瀷锛�2 涓轰竴娆℃�ц闃咃紝3 涓洪暱鏈熻闃�
+ /// </summary>
+ public int Type { get; set; }
+
+ /// <summary>
+ /// 鏋氫妇鍙傛暟鍊艰寖鍥�
+ /// </summary>
+ public List<GetWxmpSubscribMessageTemplatesQueryResultDataValue> Values { get; set; } = [];
+ }
+
+ /// <summary>
+ /// 寰俊灏忕▼搴忚幏鍙栬闃呮秷鎭ā鏉�
+ /// </summary>
+ public class GetWxmpSubscribMessageTemplatesQueryResultDataValue
+ {
+ /// <summary>
+ /// 鏋氫妇鍙傛暟鐨� key
+ /// </summary>
+ public string Code { get; set; }
+
+ /// <summary>
+ /// 鏋氫妇鍙傛暟鍊艰寖鍥村垪琛�
+ /// </summary>
+ public List<string> Values { get; set; } = [];
+ }
+}
diff --git a/ApiTools.Core/Services/ChannelPingAnPayWalletService.cs b/ApiTools.Core/Services/ChannelPingAnPayWalletService.cs
index 628ecc6..a8909c3 100644
--- a/ApiTools.Core/Services/ChannelPingAnPayWalletService.cs
+++ b/ApiTools.Core/Services/ChannelPingAnPayWalletService.cs
@@ -69,7 +69,14 @@
/// <returns></returns>
public async Task Transfer(ChannelWallet wallet, ChannelWalletTransaction transaction)
{
- transaction.PingAnPay = new ChannelWalletTransactionPingAnPay();
+ transaction.PingAnPay = transaction.PingAnPay ?? new ChannelWalletTransactionPingAnPay();
+ if (transaction.ReceiveAccount == "123")
+ {
+ transaction.ErrorCode = "500";
+ transaction.FailReason = "鍗″彿閿欒";
+ transaction.TransactionStatus = EnumWalletTransactionStatus.Fail;
+ await channelWalletTransactionRepository.UpdateNowAsync(transaction);
+ }
var responseStop = await utils.StopPaymentAndSettlementAccounts(new StopPaymentAndSettlementAccountsRequest
{
CnsmrSeqNo = transaction.Code,
diff --git a/ApiTools.Core/Utils/WxmpUtils/GetWxmpSubscribMessageTemplatesRequest.cs b/ApiTools.Core/Utils/WxmpUtils/GetWxmpSubscribMessageTemplatesRequest.cs
new file mode 100644
index 0000000..1608ef5
--- /dev/null
+++ b/ApiTools.Core/Utils/WxmpUtils/GetWxmpSubscribMessageTemplatesRequest.cs
@@ -0,0 +1,104 @@
+锘縰sing Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ApiTools.Core
+{
+ /// <summary>
+ /// 寰俊灏忕▼搴忚幏鍙栬闃呮秷鎭ā鏉�
+ /// </summary>
+ public class GetWxmpSubscribMessageTemplatesRequest
+ {
+ /// <summary>
+ /// 灏忕▼搴忕紪鍙�
+ /// </summary>
+ public string WxmpCode { get; set; }
+ }
+
+ /// <summary>
+ /// 寰俊灏忕▼搴忚幏鍙栬闃呮秷鎭ā鏉�
+ /// </summary>
+ public class GetWxmpSubscribMessageTemplatesResponse
+ {
+ /// <summary>
+ /// 閿欒鐮�
+ /// </summary>
+ [JsonProperty("errcode")]
+ public int ErrorCode { get; set; }
+
+ /// <summary>
+ /// 閿欒淇℃伅
+ /// </summary>
+ [JsonProperty("errmsg")]
+ public string ErrorMessage { get; set; }
+
+ /// <summary>
+ /// 妯℃澘鍒楄〃
+ /// </summary>
+ [JsonProperty("data")]
+ public List<GetWxmpSubscribMessageTemplatesResponseData> Items { get; set; } = [];
+ }
+
+ /// <summary>
+ /// 寰俊灏忕▼搴忚幏鍙栬闃呮秷鎭ā鏉�
+ /// </summary>
+ public class GetWxmpSubscribMessageTemplatesResponseData
+ {
+ /// <summary>
+ /// 娣诲姞鑷宠处鍙蜂笅鐨勬ā鏉� id锛屽彂閫佸皬绋嬪簭璁㈤槄娑堟伅鏃舵墍闇�
+ /// </summary>
+ [JsonProperty("priTmplId")]
+ public string TemplateId { get; set; }
+
+ /// <summary>
+ /// 妯$増鏍囬
+ /// </summary>
+ [JsonProperty("title")]
+ public string Title { get; set; }
+
+ /// <summary>
+ /// 妯$増鍐呭
+ /// </summary>
+ [JsonProperty("content")]
+ public string Content { get; set; }
+
+ /// <summary>
+ /// 妯℃澘鍐呭绀轰緥
+ /// </summary>
+ [JsonProperty("example")]
+ public string Example { get; set; }
+
+ /// <summary>
+ /// 妯$増绫诲瀷锛�2 涓轰竴娆℃�ц闃咃紝3 涓洪暱鏈熻闃�
+ /// </summary>
+ [JsonProperty("type")]
+ public int Type { get; set; }
+
+ /// <summary>
+ /// 鏋氫妇鍙傛暟鍊艰寖鍥�
+ /// </summary>
+ [JsonProperty("keywordEnumValueList")]
+ public List<GetWxmpSubscribMessageTemplatesResponseDataValue> Values { get; set; } = [];
+ }
+
+ /// <summary>
+ /// 寰俊灏忕▼搴忚幏鍙栬闃呮秷鎭ā鏉�
+ /// </summary>
+ public class GetWxmpSubscribMessageTemplatesResponseDataValue
+ {
+ /// <summary>
+ /// 鏋氫妇鍙傛暟鐨� key
+ /// </summary>
+ [JsonProperty("keywordCode")]
+ public string Code { get; set; }
+
+ /// <summary>
+ /// 鏋氫妇鍙傛暟鍊艰寖鍥村垪琛�
+ /// </summary>
+ [JsonProperty("enumValueList")]
+ public List<string> Values { get; set; } = [];
+ }
+}
diff --git a/ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs b/ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs
index ee4d5cc..33c360c 100644
--- a/ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs
+++ b/ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs
@@ -130,6 +130,27 @@
}
/// <summary>
+ /// 鏌ヨ璁㈤槄娑堟伅妯℃澘
+ /// </summary>
+ /// <param name="command"></param>
+ /// <returns></returns>
+ public async Task<GetWxmpSubscribMessageTemplatesResponse> GetWxmpSubscribMessageTemplate(GetWxmpSubscribMessageTemplatesRequest command)
+ {
+ var option = options.Value.Items.FirstOrDefault(it => it.Code == command.WxmpCode);
+ if (option == null || option.AppId.IsNull() || option.AppSecret.IsNull())
+ throw Oops.Oh(EnumErrorCodeType.s400, "鍙戦�佽闃呮秷鎭け璐ワ紝缂哄け閰嶇疆锛歐xmpOptions");
+ var accessToken = await GetAccessToken(command.WxmpCode);
+ var jsonContent = JsonConvert.SerializeObject(command, new JsonSerializerSettings
+ {
+ NullValueHandling = NullValueHandling.Ignore
+ });
+ var response = await httpRemoteService.GetAsAsync<GetWxmpSubscribMessageTemplatesResponse>(
+ "https://api.weixin.qq.com/wxaapi/newtmpl/gettemplate",
+ builder => builder.WithQueryParameter("access_token", accessToken));
+ return response;
+ }
+
+ /// <summary>
/// 鍙戦�佽闃呮秷鎭�
/// </summary>
/// <param name="command"></param>
diff --git a/ApiTools.Web.Entry/appsettings.json b/ApiTools.Web.Entry/appsettings.json
index a7b024e..54bb8df 100644
--- a/ApiTools.Web.Entry/appsettings.json
+++ b/ApiTools.Web.Entry/appsettings.json
@@ -51,6 +51,12 @@
"AppId": "wx3669dd12a0915f7d",
"AppSecret": "c03a62ad6822f1c925532c34183e7f7f",
"EnvVersion": "trial"
+ },
+ {
+ "Code": "Public",
+ "AppId": "wxf940ff1d35a98493",
+ "AppSecret": "9a132eda735bc925200b0e215cffe20a",
+ "EnvVersion": "trial"
}
],
"SubscribMessageTemplates": {
@@ -78,6 +84,11 @@
"ArrangeCompletedToUser": {
"TemplateId": "dz2HCc-EnR4WEfsuj2GuduF8SLu40J83xez1bLLbaC0",
"Page": "pages/home/index"
+ },
+ // 娴嬭瘯
+ "Test": {
+ "TemplateId": "T7Gta6H6TROZjcqeSWVTG2wWGGInWh0fGTOgCCgVBuk",
+ "Page": "pages/home/index"
}
}
},
--
Gitblit v1.9.1