You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

188 lines
8.2 KiB

2 years ago
#region Apache License Version 2.0
/*----------------------------------------------------------------
Copyright 2023 Jeffrey Su & Suzhou Senparc Network Technology Co.,Ltd.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the License for the specific language governing permissions
and limitations under the License.
Detail: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md
----------------------------------------------------------------*/
#endregion Apache License Version 2.0
/*----------------------------------------------------------------
Copyright (C) 2023 Senparc
ComplaintNotifyJson.cs
Json
Senparc - 20210925
----------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Senparc.Weixin.TenPayV3.Apis.Entities;
namespace Senparc.Weixin.TenPayV3.Apis.Complaint
{
/// <summary>
/// 投诉通知回调通知Json
/// <para>详细请参考微信支付官方文档 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter10_1_16.shtml </para>
/// </summary>
public class ComplaintNotifyJson : ReturnJsonBase
{
/// <summary>
/// 含参构造函数
/// </summary>
/// <param name="id">通知ID <para>通知的唯一ID</para><para>示例值EV-2018022511223320873</para></param>
/// <param name="create_time">通知创建时间 <para>通知创建的时间遵循rfc3339标准格式格式为YYYY-MM-DDTHH:mm:ss.sss+TIMEZONEYYYY-MM-DD表示年月日T出现在字符串中表示time元素的开头HH:mm:ss.sss表示时分秒毫秒TIMEZONE表示时区+08:00表示东八区时间领先UTC8小时即北京时间。例如2015-05-20T13:29:35.120+08:00表示北京时间2015年05月20日13点29分35秒。</para><para>示例值2015-05-20T13:29:35+08:00</para></param>
/// <param name="event_type">通知类型 <para>通知的类型投诉事件通知的类型具体如下COMPLAINT.CREATE产生新投诉COMPLAINT.STATE_CHANGE投诉状态变化</para><para>示例值COMPLAINT.CREATE</para></param>
/// <param name="resource_type">通知数据类型 <para>通知的资源数据类型支付成功通知为encrypt-resource</para><para>示例值encrypt-resource</para></param>
/// <param name="summary">回调摘要 <para>回调摘要</para><para>示例值:产生新投诉</para></param>
/// <param name="resource">通知数据 <para>通知资源数据json格式见示例</para></param>
public ComplaintNotifyJson(string id, string create_time, string event_type, string resource_type, string summary, Resource resource)
{
this.id = id;
this.create_time = create_time;
this.event_type = event_type;
this.resource_type = resource_type;
this.summary = summary;
this.resource = resource;
}
/// <summary>
/// 无参构造函数
/// </summary>
public ComplaintNotifyJson()
{
}
/// <summary>
/// 通知ID
/// <para>通知的唯一ID </para>
/// <para>示例值EV-2018022511223320873</para>
/// </summary>
public string id { get; set; }
/// <summary>
/// 通知创建时间
/// <para>通知创建的时间遵循rfc3339标准格式格式为YYYY-MM-DDTHH:mm:ss.sss+TIMEZONEYYYY-MM-DD表示年月日T出现在字符串中表示time元素的开头HH:mm:ss.sss表示时分秒毫秒TIMEZONE表示时区+08:00表示东八区时间领先UTC 8小时即北京时间。例如2015-05-20T13:29:35.120+08:00表示北京时间2015年05月20日13点29分35秒。 </para>
/// <para>示例值2015-05-20T13:29:35+08:00</para>
/// </summary>
public string create_time { get; set; }
/// <summary>
/// 通知类型
/// <para>通知的类型,投诉事件通知的类型,具体如 下: COMPLAINT.CREATE产生新投诉 COMPLAINT.STATE_CHANGE投诉状态变化</para>
/// <para>示例值COMPLAINT.CREATE </para>
/// </summary>
public string event_type { get; set; }
/// <summary>
/// 通知数据类型
/// <para>通知的资源数据类型支付成功通知为encrypt-resource </para>
/// <para>示例值encrypt-resource </para>
/// </summary>
public string resource_type { get; set; }
/// <summary>
/// 回调摘要
/// <para>回调摘要</para>
/// <para>示例值:产生新投诉 </para>
/// </summary>
public string summary { get; set; }
/// <summary>
/// 通知数据
/// <para>通知资源数据 json格式见示例 </para>
/// </summary>
public Resource resource { get; set; }
#region 子数据类型
public class Resource
{
/// <summary>
/// 含参构造函数
/// </summary>
/// <param name="algorithm">加密算法类型 <para>对开启结果数据进行加密的加密算法目前只支持AEAD_AES_256_GCM</para><para>示例值AEAD_AES_256_GCM</para></param>
/// <param name="ciphertext">数据密文 <para>Base64编码后的开启/停用结果数据密文</para><para>示例值sadsadsadsad</para></param>
/// <param name="original_type">原始回调类型 <para>Base64编码后的开启/停用结果数据密文</para><para>示例值sadsadsadsad</para></param>
/// <param name="associated_data">附加数据 <para>附加数据</para><para>示例值fdasfwqewlkja484w</para><para>可为null</para></param>
/// <param name="nonce">随机串 <para>加密使用的随机串</para><para>示例值fdasflkja484w</para></param>
public Resource(string algorithm, string ciphertext, string original_type, string associated_data, string nonce)
{
this.algorithm = algorithm;
this.ciphertext = ciphertext;
this.original_type = original_type;
this.associated_data = associated_data;
this.nonce = nonce;
}
/// <summary>
/// 无参构造函数
/// </summary>
public Resource()
{
}
/// <summary>
/// 加密算法类型
/// <para>对开启结果数据进行加密的加密算法目前只支持AEAD_AES_256_GCM </para>
/// <para>示例值AEAD_AES_256_GCM </para>
/// </summary>
public string algorithm { get; set; }
/// <summary>
/// 数据密文
/// <para>Base64编码后的开启/停用结果数据密文</para>
/// <para>示例值sadsadsadsad</para>
/// </summary>
public string ciphertext { get; set; }
/// <summary>
/// 原始回调类型
/// <para>Base64编码后的开启/停用结果数据密文</para>
/// <para>示例值sadsadsadsad</para>
/// </summary>
public string original_type { get; set; }
/// <summary>
/// 附加数据
/// <para>附加数据 </para>
/// <para>示例值fdasfwqewlkja484w</para>
/// <para>可为null</para>
/// </summary>
public string associated_data { get; set; }
/// <summary>
/// 随机串
/// <para>加密使用的随机串 </para>
/// <para>示例值fdasflkja484w</para>
/// </summary>
public string nonce { get; set; }
}
#endregion
}
}