feat(wxapi): 新增小程序用户交易类投诉相关接口

This commit is contained in:
Fu Diwei 2021-12-15 17:29:33 +08:00
parent 6220d9afc2
commit 10ab0af625
20 changed files with 684 additions and 18 deletions

View File

@ -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!;
}
}

View File

@ -1007,5 +1007,88 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
} }
#endregion #endregion
#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
} }
} }

View File

@ -24,8 +24,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// <summary> /// <summary>
/// 获取或设置接收消息的用户 OpenId 列表。 /// 获取或设置接收消息的用户 OpenId 列表。
/// </summary> /// </summary>
[Newtonsoft.Json.JsonProperty("touser")] [Newtonsoft.Json.JsonProperty("to_openid_list")]
[System.Text.Json.Serialization.JsonPropertyName("touser")] [System.Text.Json.Serialization.JsonPropertyName("to_openid_list")]
public IList<string> ToUserOpenIdList { get; set; } = new List<string>(); public IList<string> ToUserOpenIdList { get; set; } = new List<string>();
/// <summary> /// <summary>

View File

@ -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; }
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxaapi/minishop/bussiRespondComplaint 接口的响应。</para>
/// </summary>
public class WxaApiMiniShopBusinessRespondComplaintResponse : WechatApiResponse
{
}
}

View File

@ -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; }
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxaapi/minishop/bussiSupplyProof 接口的响应。</para>
/// </summary>
public class WxaApiMiniShopBusinessSupplyProofResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxaapi/minishop/bussiSupplyRefund 接口的请求。</para>
/// </summary>
public class WxaApiMiniShopBusinessSupplyRefundRequest : WxaApiMiniShopBusinessSupplyProofRequest
{
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxaapi/minishop/bussiSupplyRefund 接口的响应。</para>
/// </summary>
public class WxaApiMiniShopBusinessSupplyRefundResponse : WechatApiResponse
{
}
}

View File

@ -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; }
}
}

View File

@ -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; }
}
}

View File

@ -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>

View File

@ -1,19 +1,13 @@
{ {
"touser": "OPENID", "to_openid_list": [ "OPENID_1", "OPENID_2" ],
"sn": "XXXXXXX",
"template_id": "TEMPLATE_ID", "template_id": "TEMPLATE_ID",
"page": "index", "page": "index",
"miniprogram_state": "formal",
"lang": "zh_CN",
"data": { "data": {
"name01": { "time1": {
"value": "某某" "value": "2021-09-10 19:00:00"
},
"amount01": {
"value": "¥100"
},
"thing01": {
"value": "广州至北京"
},
"date01": {
"value": "2018-01-01"
} }
} }
} }

View File

@ -2,10 +2,6 @@
"touser": "OPENID", "touser": "OPENID",
"template_id": "TEMPLATE_ID", "template_id": "TEMPLATE_ID",
"url": "URL", "url": "URL",
"miniprogram": {
"appid": "xiaochengxuappid12345",
"pagepath": "index?foo=bar"
},
"scene": "SCENE", "scene": "SCENE",
"title": "TITLE", "title": "TITLE",
"data": { "data": {

View File

@ -0,0 +1,6 @@
{
"content": "",
"complaintOrderId": 1212,
"mediaIdList": [],
"bussiHandle": 1
}

View File

@ -0,0 +1,5 @@
{
"content": "",
"complaintOrderId": 1212,
"mediaIdList": []
}

View File

@ -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
}
}