From 6ae1bfbba5c11bee93baa1930d9236e031671979 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Wed, 24 Sep 2025 17:55:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(tenpayv3):=20=E6=96=B0=E5=A2=9E=E5=88=B7?= =?UTF-8?q?=E8=84=B8=E6=94=AF=E4=BB=98=E8=8E=B7=E5=8F=96=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=87=BA=E5=8E=82=E6=A3=80=E6=9F=A5=E7=BB=93=E6=9E=9C=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tTenpayClientExecuteIoTManageExtensions.cs | 22 +++++ ...ceInspectionByDeviceSerialNumberRequest.cs | 15 ++++ ...eInspectionByDeviceSerialNumberResponse.cs | 89 +++++++++++++++++++ ...nspectionByDeviceSerialNumberResponse.json | 17 ++++ 4 files changed, 143 insertions(+) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/IoTManage/GetIoTManageDeviceInspectionByDeviceSerialNumberRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/IoTManage/GetIoTManageDeviceInspectionByDeviceSerialNumberResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/IoTManage/GetIoTManageDeviceInspectionByDeviceSerialNumberResponse.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteIoTManageExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteIoTManageExtensions.cs index 8a4f66bc..7a323ffe 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteIoTManageExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteIoTManageExtensions.cs @@ -29,5 +29,27 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } + + /// + /// 异步调用 [GET] /iotmanage/device-inspections/{device_sn} 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteGetIoTManageDeviceInspectionByDeviceSerialNumberAsync(this WechatTenpayClient client, Models.GetIoTManageDeviceInspectionByDeviceSerialNumberRequest 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 + .CreateFlurlRequest(request, HttpMethod.Get, "iotmanage", "device-inspections", request.DeviceSerialNumber); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/IoTManage/GetIoTManageDeviceInspectionByDeviceSerialNumberRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/IoTManage/GetIoTManageDeviceInspectionByDeviceSerialNumberRequest.cs new file mode 100644 index 00000000..3f7426e6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/IoTManage/GetIoTManageDeviceInspectionByDeviceSerialNumberRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /iotmanage/device-inspections/{device_sn} 接口的请求。 + /// + public class GetIoTManageDeviceInspectionByDeviceSerialNumberRequest : WechatTenpayRequest + { + /// + /// 获取或设置设备序列号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string DeviceSerialNumber { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/IoTManage/GetIoTManageDeviceInspectionByDeviceSerialNumberResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/IoTManage/GetIoTManageDeviceInspectionByDeviceSerialNumberResponse.cs new file mode 100644 index 00000000..adcf3534 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/IoTManage/GetIoTManageDeviceInspectionByDeviceSerialNumberResponse.cs @@ -0,0 +1,89 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /iotmanage/device-inspections/{device_sn} 接口的响应。 + /// + public class GetIoTManageDeviceInspectionByDeviceSerialNumberResponse : WechatTenpayResponse + { + /// + /// 获取或设置设备序列号。 + /// + [Newtonsoft.Json.JsonProperty("device_sn")] + [System.Text.Json.Serialization.JsonPropertyName("device_sn")] + public string DeviceSerialNumber { get; set; } = default!; + + /// + /// 获取或设置摄像头序列号。 + /// + [Newtonsoft.Json.JsonProperty("camera_sn")] + [System.Text.Json.Serialization.JsonPropertyName("camera_sn")] + public string CameraSerialNumber { get; set; } = default!; + + /// + /// 获取或设置有线网卡 MAC 地址。 + /// + [Newtonsoft.Json.JsonProperty("wired_mac")] + [System.Text.Json.Serialization.JsonPropertyName("wired_mac")] + public string WiredMAC { get; set; } = default!; + + /// + /// 获取或设置无线网卡 MAC 地址。 + /// + [Newtonsoft.Json.JsonProperty("wireless_mac")] + [System.Text.Json.Serialization.JsonPropertyName("wireless_mac")] + public string WirelessMAC { get; set; } = default!; + + /// + /// 获取或设置蓝牙 MAC 地址。 + /// + [Newtonsoft.Json.JsonProperty("bluetooth_mac")] + [System.Text.Json.Serialization.JsonPropertyName("bluetooth_mac")] + public string BluetoothMAC { get; set; } = default!; + + /// + /// 获取或设置应用版本号。 + /// + [Newtonsoft.Json.JsonProperty("app_version")] + [System.Text.Json.Serialization.JsonPropertyName("app_version")] + public string AppVersion { get; set; } = default!; + + /// + /// 获取或设置国际移动设备识别码。 + /// + [Newtonsoft.Json.JsonProperty("imei")] + [System.Text.Json.Serialization.JsonPropertyName("imei")] + public string IMEI { get; set; } = default!; + + /// + /// 获取或设置国际移动设备识别码。 + /// + [Newtonsoft.Json.JsonProperty("result")] + [System.Text.Json.Serialization.JsonPropertyName("result")] + public string Result { get; set; } = default!; + + /// + /// 获取或设置检测时间。 + /// + [Newtonsoft.Json.JsonProperty("inspect_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("inspect_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset InspectTime { get; set; } + + /// + /// 获取或设置错误信息列表。 + /// + [Newtonsoft.Json.JsonProperty("errors")] + [System.Text.Json.Serialization.JsonPropertyName("errors")] + public string[]? ErrorList { get; set; } + + /// + /// 获取或设置警告信息列表。 + /// + [Newtonsoft.Json.JsonProperty("warnings")] + [System.Text.Json.Serialization.JsonPropertyName("warnings")] + public string[]? WarningList { get; set; } + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/IoTManage/GetIoTManageDeviceInspectionByDeviceSerialNumberResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/IoTManage/GetIoTManageDeviceInspectionByDeviceSerialNumberResponse.json new file mode 100644 index 00000000..78f7a6a5 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/IoTManage/GetIoTManageDeviceInspectionByDeviceSerialNumberResponse.json @@ -0,0 +1,17 @@ +{ + "device_sn": "AAAAA123456789012345678", + "wired_mac": "00:00:00:00:00:00", + "wireless_mac": "00:00:00:00:00:00", + "bluetooth_mac": "00:00:00:00:00:00", + "app_version": "1.26.100", + "camera_sn": "XXXX-1234567890", + "imei": "123456789012345", + "result": "SUCCESS", + "errors": [ + "摄像头序列号为空" + ], + "warnings": [ + "该设备已经进行过出厂检查" + ], + "inspect_time": "2015-05-20T13:29:35.120+08:00" +}