mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-07-15 23:13:32 +08:00
feat(wxapi): 新增小程序用户交易类投诉相关接口
This commit is contained in:
parent
6220d9afc2
commit
10ab0af625
@ -0,0 +1,178 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Events
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 EVENT.complaint_callback 事件的数据。</para>
|
||||
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/complaint.html </para>
|
||||
/// </summary>
|
||||
public class ComplaintCallbackEvent : WechatApiEvent, WechatApiEvent.Serialization.IJsonSerializable, WechatApiEvent.Serialization.IXmlSerializable
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class ComplaintHistory
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置时间戳。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("time")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("time")]
|
||||
[System.Xml.Serialization.XmlElement("time")]
|
||||
public long Timestamp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置内容。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("content")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("content")]
|
||||
[System.Xml.Serialization.XmlElement("content", IsNullable = true)]
|
||||
public string? Content { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置图片 MediaId 列表字符串(以逗号分隔)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("media_id_list")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("media_id_list")]
|
||||
[System.Xml.Serialization.XmlElement("media_id_list", IsNullable = true)]
|
||||
public string? MediaIdListString { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置小程序 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("appid")]
|
||||
[System.Xml.Serialization.XmlElement("appid")]
|
||||
public string AppId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置事件通知类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("option_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("option_type")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]
|
||||
[System.Xml.Serialization.XmlElement("option_type")]
|
||||
public string OptionType { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置投诉单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("complaint_order_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("complaint_order_id")]
|
||||
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
|
||||
[System.Xml.Serialization.XmlElement("complaint_order_id")]
|
||||
public string ComplaintOrderId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户 OpenId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("open_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("open_id")]
|
||||
[System.Xml.Serialization.XmlElement("open_id")]
|
||||
public string OpenId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置投诉问题类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("type")]
|
||||
[System.Xml.Serialization.XmlElement("type")]
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置订单状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("status")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("status")]
|
||||
[System.Xml.Serialization.XmlElement("status")]
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户手机号码。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("phone_number")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("phone_number")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringConverter))]
|
||||
[System.Xml.Serialization.XmlElement("phone_number")]
|
||||
public string PhoneNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置投诉材料内容。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("customer_material_content")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("customer_material_content")]
|
||||
[System.Xml.Serialization.XmlElement("customer_material_content", IsNullable = true)]
|
||||
public string? CustomerMaterialContent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置投诉材料图片 MediaId 列表字符串(以逗号分隔)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("customer_material_media_id_list")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("customer_material_media_id_list")]
|
||||
[System.Xml.Serialization.XmlElement("customer_material_media_id_list", IsNullable = true)]
|
||||
public string? CustomerMaterialMediaIdListString { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置订单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("order_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("order_id")]
|
||||
[System.Xml.Serialization.XmlElement("order_id")]
|
||||
public string OrderId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户订单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_trade_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_trade_no")]
|
||||
[System.Xml.Serialization.XmlElement("out_trade_no")]
|
||||
public string OutTradeNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商品名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("product_name")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("product_name")]
|
||||
[System.Xml.Serialization.XmlElement("product_name")]
|
||||
public string ProductName { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置支付时间戳。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("pay_time")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("pay_time")]
|
||||
[System.Xml.Serialization.XmlElement("pay_time")]
|
||||
public long PayTimestamp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置交易金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_cost")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_cost")]
|
||||
[System.Xml.Serialization.XmlElement("total_cost")]
|
||||
public int TotalCost { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置投诉发起时间戳。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("create_time")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
|
||||
[System.Xml.Serialization.XmlElement("create_time")]
|
||||
public long ComplaintCreateTimestamp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置投诉状态过期时间戳。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("expire_time")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("expire_time")]
|
||||
[System.Xml.Serialization.XmlElement("expire_time")]
|
||||
public long ComplaintStatusExpireTimestamp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置投诉进度列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("history")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("history")]
|
||||
[System.Xml.Serialization.XmlArrayItem("history", Type = typeof(Types.ComplaintHistory))]
|
||||
public Types.ComplaintHistory[] ComplaintHistoryList { get; set; } = default!;
|
||||
}
|
||||
}
|
@ -1007,5 +1007,88 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
#region MiniShop
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /wxaapi/minishop/complaintOrderDetail 接口。</para>
|
||||
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/complaint.html </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.WxaApiMiniShopComplaintOrderDetailResponse> ExecuteWxaApiMiniShopComplaintOrderDetailAsync(this WechatApiClient client, Models.WxaApiMiniShopComplaintOrderDetailRequest request, CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (client is null) throw new ArgumentNullException(nameof(client));
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(request, HttpMethod.Get, "wxaapi", "minishop", "complaintOrderDetail")
|
||||
.SetQueryParam("access_token", request.AccessToken)
|
||||
.SetQueryParam("complaintOrderId", request.ComplaintOrderId);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.WxaApiMiniShopComplaintOrderDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /wxaapi/minishop/bussiRespondComplaint 接口。</para>
|
||||
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/complaint.html </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.WxaApiMiniShopBusinessRespondComplaintResponse> ExecuteWxaApiMiniShopBusinessRespondComplaintAsync(this WechatApiClient client, Models.WxaApiMiniShopBusinessRespondComplaintRequest request, CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (client is null) throw new ArgumentNullException(nameof(client));
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(request, HttpMethod.Post, "wxaapi", "minishop", "bussiRespondComplaint")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.WxaApiMiniShopBusinessRespondComplaintResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /wxaapi/minishop/bussiSupplyProof 接口。</para>
|
||||
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/complaint.html </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.WxaApiMiniShopBusinessSupplyProofResponse> ExecuteWxaApiMiniShopBusinessSupplyProofAsync(this WechatApiClient client, Models.WxaApiMiniShopBusinessSupplyProofRequest request, CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (client is null) throw new ArgumentNullException(nameof(client));
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(request, HttpMethod.Post, "wxaapi", "minishop", "bussiSupplyProof")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.WxaApiMiniShopBusinessSupplyProofResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /wxaapi/minishop/bussiSupplyRefund 接口。</para>
|
||||
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/complaint.html </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.WxaApiMiniShopBusinessSupplyRefundResponse> ExecuteWxaApiMiniShopBusinessSupplyRefundAsync(this WechatApiClient client, Models.WxaApiMiniShopBusinessSupplyRefundRequest request, CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (client is null) throw new ArgumentNullException(nameof(client));
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(request, HttpMethod.Post, "wxaapi", "minishop", "bussiSupplyRefund")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.WxaApiMiniShopBusinessSupplyRefundResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -24,8 +24,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
/// <summary>
|
||||
/// 获取或设置接收消息的用户 OpenId 列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("touser")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("touser")]
|
||||
[Newtonsoft.Json.JsonProperty("to_openid_list")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("to_openid_list")]
|
||||
public IList<string> ToUserOpenIdList { get; set; } = new List<string>();
|
||||
|
||||
/// <summary>
|
||||
|
@ -0,0 +1,38 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /wxaapi/minishop/bussiRespondComplaint 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class WxaApiMiniShopBusinessRespondComplaintRequest : WechatApiRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置投诉单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("complaintOrderId")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("complaintOrderId")]
|
||||
public long ComplaintOrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置内容。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("content")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("content")]
|
||||
public string? Content { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置图片 MediaId 列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mediaIdList")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mediaIdList")]
|
||||
public IList<string>? MediaIdList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置和解类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("bussiHandle")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("bussiHandle")]
|
||||
public int HandleType { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /wxaapi/minishop/bussiRespondComplaint 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class WxaApiMiniShopBusinessRespondComplaintResponse : WechatApiResponse
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /wxaapi/minishop/bussiSupplyProof 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class WxaApiMiniShopBusinessSupplyProofRequest : WechatApiRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置投诉单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("complaintOrderId")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("complaintOrderId")]
|
||||
public long ComplaintOrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置内容。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("content")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("content")]
|
||||
public string? Content { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置图片 MediaId 列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mediaIdList")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mediaIdList")]
|
||||
public IList<string>? MediaIdList { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /wxaapi/minishop/bussiSupplyProof 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class WxaApiMiniShopBusinessSupplyProofResponse : WechatApiResponse
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /wxaapi/minishop/bussiSupplyRefund 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class WxaApiMiniShopBusinessSupplyRefundRequest : WxaApiMiniShopBusinessSupplyProofRequest
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /wxaapi/minishop/bussiSupplyRefund 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class WxaApiMiniShopBusinessSupplyRefundResponse : WechatApiResponse
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /wxaapi/minishop/complaintOrderDetail 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class WxaApiMiniShopComplaintOrderDetailRequest : WechatApiRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置投诉单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public long ComplaintOrderId { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,211 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /wxaapi/minishop/complaintOrderDetail 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class WxaApiMiniShopComplaintOrderDetailResponse : WechatApiResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class ComplaintOrder
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class CustomerMaterial
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置内容。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("content")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("content")]
|
||||
public string? Content { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置图片 MediaId 列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mediaIdList")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mediaIdList")]
|
||||
public string[]? MediaIdList { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置投诉单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("complaintOrderId")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("complaintOrderId")]
|
||||
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
|
||||
public long ComplaintOrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户 OpenId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("openId")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openId")]
|
||||
public string OpenId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置投诉问题类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("type")]
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置订单状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("status")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("status")]
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户手机号码。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("phoneNumber")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("phoneNumber")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringConverter))]
|
||||
public string PhoneNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置投诉材料信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("customerMaterial")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("customerMaterial")]
|
||||
public Types.CustomerMaterial? CustomerMaterial { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置订单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("orderId")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("orderId")]
|
||||
public string OrderId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户订单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("outTradeNo")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("outTradeNo")]
|
||||
public string OutTradeNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商品名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("productName")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("productName")]
|
||||
public string ProductName { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置支付时间戳。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("payTime")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("payTime")]
|
||||
public long PayTimestamp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置交易金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("totalCost")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("totalCost")]
|
||||
public int TotalCost { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置投诉发起时间戳。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("createTime")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("createTime")]
|
||||
public long CreateTimestamp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置投诉状态过期时间戳。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("expireTime")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("expireTime")]
|
||||
public long ExpireTimestamp { get; set; }
|
||||
}
|
||||
|
||||
public class ComplaintHistory
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置投诉节点状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("itemType")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("itemType")]
|
||||
public int ItemType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置时间戳。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("time")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("time")]
|
||||
public long Timestamp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置手机号码。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("phoneNumber")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("phoneNumber")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringConverter))]
|
||||
public string? PhoneNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置内容。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("content")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("content")]
|
||||
public string? Content { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置图片 MediaId 列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mediaIdList")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mediaIdList")]
|
||||
public string[]? MediaIdList { get; set; }
|
||||
}
|
||||
|
||||
public class ReturnBill
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置退货单 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("returnId")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("returnId")]
|
||||
public string ReturnId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置运单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("waybillId")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("waybillId")]
|
||||
public string WaybillId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置运单状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("orderStatus")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("orderStatus")]
|
||||
public int Status { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置投诉单信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("complaintOrder")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("complaintOrder")]
|
||||
public Types.ComplaintOrder ComplaintOrder { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置投诉进度列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("item")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("item")]
|
||||
public Types.ComplaintHistory[] ComplaintHistoryList { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置退货单信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("returnBill")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("returnBill")]
|
||||
public Types.ReturnBill? ReturnBill { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
<xml>
|
||||
<appid>123</appid>
|
||||
<MsgType><![CDATA[event]]></MsgType>
|
||||
<Event><![CDATA[complaint_callback]]></Event>
|
||||
<option_type>123</option_type>
|
||||
<complaint_order_id>123</complaint_order_id>
|
||||
<status>123</status>
|
||||
<create_time>123</create_time>
|
||||
<expire_time>123</expire_time>
|
||||
<type>123</type>
|
||||
<order_id>123</order_id>
|
||||
<out_trade_no>123</out_trade_no>
|
||||
<phone_number>123</phone_number>
|
||||
<open_id>123</open_id>
|
||||
<customer_material_content>123</customer_material_content>
|
||||
<customer_material_media_id_list>123</customer_material_media_id_list>
|
||||
<pay_time>123</pay_time>
|
||||
<total_cost>123</total_cost>
|
||||
<product_name>123</product_name>
|
||||
<history>
|
||||
<time>123</time>
|
||||
<content>123</content>
|
||||
<media_id_list>123</media_id_list>
|
||||
</history>
|
||||
<history>
|
||||
<time>123</time>
|
||||
<content>123</content>
|
||||
<media_id_list>123</media_id_list>
|
||||
</history>
|
||||
</xml>
|
@ -1,19 +1,13 @@
|
||||
{
|
||||
"touser": "OPENID",
|
||||
"to_openid_list": [ "OPENID_1", "OPENID_2" ],
|
||||
"sn": "XXXXXXX",
|
||||
"template_id": "TEMPLATE_ID",
|
||||
"page": "index",
|
||||
"miniprogram_state": "formal",
|
||||
"lang": "zh_CN",
|
||||
"data": {
|
||||
"name01": {
|
||||
"value": "某某"
|
||||
},
|
||||
"amount01": {
|
||||
"value": "¥100"
|
||||
},
|
||||
"thing01": {
|
||||
"value": "广州至北京"
|
||||
},
|
||||
"date01": {
|
||||
"value": "2018-01-01"
|
||||
"time1": {
|
||||
"value": "2021-09-10 19:00:00"
|
||||
}
|
||||
}
|
||||
}
|
@ -2,10 +2,6 @@
|
||||
"touser": "OPENID",
|
||||
"template_id": "TEMPLATE_ID",
|
||||
"url": "URL",
|
||||
"miniprogram": {
|
||||
"appid": "xiaochengxuappid12345",
|
||||
"pagepath": "index?foo=bar"
|
||||
},
|
||||
"scene": "SCENE",
|
||||
"title": "TITLE",
|
||||
"data": {
|
||||
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"content": "",
|
||||
"complaintOrderId": 1212,
|
||||
"mediaIdList": [],
|
||||
"bussiHandle": 1
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"errcode": 0
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"content": "",
|
||||
"complaintOrderId": 1212,
|
||||
"mediaIdList": []
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"errcode": 0
|
||||
}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1,36 @@
|
||||
{
|
||||
"errcode": 0,
|
||||
"errmsg": "ok",
|
||||
"complaintOrder": {
|
||||
"complaintOrderId": 1212,
|
||||
"openId": "dfasefasefase",
|
||||
"createTime": 123124124,
|
||||
"phoneNumber": 156222222,
|
||||
"type": 12,
|
||||
"status": 1,
|
||||
"customerMaterial": {
|
||||
"content": "",
|
||||
"mediaIdList": [ "fsadfasdfsaf" ]
|
||||
},
|
||||
"orderId": "2342",
|
||||
"outTradeNo": "sdfsfd",
|
||||
"productName": "sdf",
|
||||
"payTime": 123123,
|
||||
"totalCost": 1213,
|
||||
"expireTime": 1231231
|
||||
},
|
||||
"item": [
|
||||
{
|
||||
"itemType": 1,
|
||||
"time": 1233234234,
|
||||
"phoneNumber": "156222222",
|
||||
"content": "",
|
||||
"mediaIdList": [ "asdfasdf" ]
|
||||
}
|
||||
],
|
||||
"returnBill": {
|
||||
"returnId": "23234234234",
|
||||
"waybillId": "adfasdf",
|
||||
"orderStatus": 4
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user