Skip to content

Commit 943f076

Browse files
committed
feat(tenpayv3): 新增微信支付分查询用户分层对应建议先享金额接口
1 parent 31ba9c3 commit 943f076

File tree

4 files changed

+174
-12
lines changed

4 files changed

+174
-12
lines changed

src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayScorePartnerExtensions.cs

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public static class WechatTenpayClientExecutePayScorePartnerExtensions
1414
/// <para>异步调用 [POST] /payscore/partner/permissions 接口。</para>
1515
/// <para>
1616
/// REF: <br/>
17-
/// <![CDATA[ https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter5_1.shtml ]]>
17+
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-weixin-pay-score/partner-service-auth/apply-partner-permissions.html ]]>
1818
/// </para>
1919
/// </summary>
2020
/// <param name="client"></param>
@@ -36,7 +36,7 @@ public static class WechatTenpayClientExecutePayScorePartnerExtensions
3636
/// <para>异步调用 [GET] /payscore/partner/permissions/authorization-code/{authorization_code} 接口。</para>
3737
/// <para>
3838
/// REF: <br/>
39-
/// <![CDATA[ https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter5_2.shtml ]]>
39+
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-weixin-pay-score/partner-service-auth/get-partner-permissions-by-code.html ]]>
4040
/// </para>
4141
/// </summary>
4242
/// <param name="client"></param>
@@ -60,7 +60,7 @@ public static class WechatTenpayClientExecutePayScorePartnerExtensions
6060
/// <para>异步调用 [POST] /payscore/partner/permissions/authorization-code/{authorization_code}/terminate 接口。</para>
6161
/// <para>
6262
/// REF: <br/>
63-
/// <![CDATA[ https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter5_4.shtml ]]>
63+
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-weixin-pay-score/partner-service-auth/terminate-partner-permissions-by-code.html ]]>
6464
/// </para>
6565
/// </summary>
6666
/// <param name="client"></param>
@@ -82,7 +82,7 @@ public static class WechatTenpayClientExecutePayScorePartnerExtensions
8282
/// <para>异步调用 [GET] /payscore/partner/permissions/search 接口。</para>
8383
/// <para>
8484
/// REF: <br/>
85-
/// <![CDATA[ https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter5_3.shtml ]]>
85+
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-weixin-pay-score/partner-service-auth/get-partner-permissions-by-open-id.html ]]>
8686
/// </para>
8787
/// </summary>
8888
/// <param name="client"></param>
@@ -114,7 +114,7 @@ public static class WechatTenpayClientExecutePayScorePartnerExtensions
114114
/// <para>异步调用 [POST] /payscore/partner/permissions/terminate 接口。</para>
115115
/// <para>
116116
/// REF: <br/>
117-
/// <![CDATA[ https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter5_5.shtml ]]>
117+
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-weixin-pay-score/partner-service-auth/terminate-partner-permissions-by-open-id.html ]]>
118118
/// </para>
119119
/// </summary>
120120
/// <param name="client"></param>
@@ -138,7 +138,7 @@ public static class WechatTenpayClientExecutePayScorePartnerExtensions
138138
/// <para>异步调用 [POST] /payscore/partner/serviceorder 接口。</para>
139139
/// <para>
140140
/// REF: <br/>
141-
/// <![CDATA[ https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_1.shtml ]]>
141+
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-weixin-pay-score/partner-service-order/create-partner-service-order.html ]]>
142142
/// </para>
143143
/// </summary>
144144
/// <param name="client"></param>
@@ -160,7 +160,7 @@ public static class WechatTenpayClientExecutePayScorePartnerExtensions
160160
/// <para>异步调用 [GET] /payscore/partner/serviceorder 接口。</para>
161161
/// <para>
162162
/// REF: <br/>
163-
/// <![CDATA[ https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_2.shtml ]]>
163+
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-weixin-pay-score/partner-service-order/get-partner-service-order.html ]]>
164164
/// </para>
165165
/// </summary>
166166
/// <param name="client"></param>
@@ -185,7 +185,7 @@ public static class WechatTenpayClientExecutePayScorePartnerExtensions
185185
/// <para>异步调用 [GET] /payscore/partner/serviceorder 接口。</para>
186186
/// <para>
187187
/// REF: <br/>
188-
/// <![CDATA[ https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_2.shtml ]]>
188+
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-weixin-pay-score/partner-service-order/get-partner-service-order.html ]]>
189189
/// </para>
190190
/// </summary>
191191
/// <param name="client"></param>
@@ -210,7 +210,7 @@ public static class WechatTenpayClientExecutePayScorePartnerExtensions
210210
/// <para>异步调用 [POST] /payscore/partner/serviceorder/{out_order_no}/cancel 接口。</para>
211211
/// <para>
212212
/// REF: <br/>
213-
/// <![CDATA[ https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_3.shtml ]]>
213+
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-weixin-pay-score/partner-service-order/cancel-partner-service-order.html ]]>
214214
/// </para>
215215
/// </summary>
216216
/// <param name="client"></param>
@@ -232,7 +232,7 @@ public static class WechatTenpayClientExecutePayScorePartnerExtensions
232232
/// <para>异步调用 [POST] /payscore/partner/serviceorder/{out_order_no}/modify 接口。</para>
233233
/// <para>
234234
/// REF: <br/>
235-
/// <![CDATA[ https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_4.shtml ]]>
235+
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-weixin-pay-score/partner-service-order/modify-partner-service-order.html ]]>
236236
/// </para>
237237
/// </summary>
238238
/// <param name="client"></param>
@@ -254,7 +254,7 @@ public static class WechatTenpayClientExecutePayScorePartnerExtensions
254254
/// <para>异步调用 [POST] /payscore/partner/serviceorder/{out_order_no}/complete 接口。</para>
255255
/// <para>
256256
/// REF: <br/>
257-
/// <![CDATA[ https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_5.shtml ]]>
257+
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-weixin-pay-score/partner-service-order/complete-partner-service-order.html ]]>
258258
/// </para>
259259
/// </summary>
260260
/// <param name="client"></param>
@@ -298,7 +298,7 @@ public static class WechatTenpayClientExecutePayScorePartnerExtensions
298298
/// <para>异步调用 [POST] /payscore/partner/serviceorder/{out_order_no}/sync 接口。</para>
299299
/// <para>
300300
/// REF: <br/>
301-
/// <![CDATA[ https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_7.shtml ]]>
301+
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-weixin-pay-score/partner-service-order/sync-partner-service-order.html ]]>
302302
/// </para>
303303
/// </summary>
304304
/// <param name="client"></param>
@@ -317,5 +317,33 @@ public static class WechatTenpayClientExecutePayScorePartnerExtensions
317317
}
318318

319319
#endregion
320+
321+
#region ServiceQuota
322+
/// <summary>
323+
/// <para>异步调用 [GET] /payscore/partner/servicequotas/service-id/{service_id} 接口。</para>
324+
/// <para>
325+
/// REF: <br/>
326+
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-weixin-pay-score/service-quota/get-partner-user-risk-level-quota.html ]]>
327+
/// </para>
328+
/// </summary>
329+
/// <param name="client"></param>
330+
/// <param name="request"></param>
331+
/// <param name="cancellationToken"></param>
332+
/// <returns></returns>
333+
public static async Task<Models.GetPayScorePartnerServiceQuotasByServiceIdResponse> ExecuteGetPayScorePartnerServiceQuotasByServiceIdAsync(this WechatTenpayClient client, Models.GetPayScorePartnerServiceQuotasByServiceIdRequest request, CancellationToken cancellationToken = default)
334+
{
335+
if (client is null) throw new ArgumentNullException(nameof(client));
336+
if (request is null) throw new ArgumentNullException(nameof(request));
337+
338+
IFlurlRequest flurlReq = client
339+
.CreateFlurlRequest(request, HttpMethod.Get, "payscore", "partner", "servicequotas", "service-id", request.ServiceId)
340+
.SetQueryParam("sub_mchid", request.SubMerchantId)
341+
.SetQueryParam("appid", request.AppId)
342+
.SetQueryParam("sub_appid", request.SubAppId)
343+
.SetQueryParam("risk_level_version", request.RiskLevelVersion);
344+
345+
return await client.SendFlurlRequestAsJsonAsync<Models.GetPayScorePartnerServiceQuotasByServiceIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
346+
}
347+
#endregion
320348
}
321349
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [GET] /payscore/partner/servicequotas/service-id/{service_id} 接口的请求。</para>
5+
/// </summary>
6+
public class GetPayScorePartnerServiceQuotasByServiceIdRequest : WechatTenpayRequest
7+
{
8+
/// <summary>
9+
/// 获取或设置子商户号。
10+
/// </summary>
11+
[Newtonsoft.Json.JsonIgnore]
12+
[System.Text.Json.Serialization.JsonIgnore]
13+
public string SubMerchantId { get; set; } = string.Empty;
14+
15+
/// <summary>
16+
/// 获取或设置服务商 AppId。
17+
/// </summary>
18+
[Newtonsoft.Json.JsonIgnore]
19+
[System.Text.Json.Serialization.JsonIgnore]
20+
public string AppId { get; set; } = string.Empty;
21+
22+
/// <summary>
23+
/// 获取或设置子商户 AppId。
24+
/// </summary>
25+
[Newtonsoft.Json.JsonIgnore]
26+
[System.Text.Json.Serialization.JsonIgnore]
27+
public string? SubAppId { get; set; }
28+
29+
/// <summary>
30+
/// 获取或设置服务 ID。
31+
/// </summary>
32+
[Newtonsoft.Json.JsonIgnore]
33+
[System.Text.Json.Serialization.JsonIgnore]
34+
public string ServiceId { get; set; } = string.Empty;
35+
36+
/// <summary>
37+
/// 获取或设置分层版本。
38+
/// </summary>
39+
[Newtonsoft.Json.JsonIgnore]
40+
[System.Text.Json.Serialization.JsonIgnore]
41+
public int RiskLevelVersion { get; set; }
42+
}
43+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [GET] /payscore/partner/servicequotas/service-id/{service_id} 接口的响应。</para>
5+
/// </summary>
6+
public class GetPayScorePartnerServiceQuotasByServiceIdResponse : WechatTenpayResponse
7+
{
8+
public static class Types
9+
{
10+
public class Quota
11+
{
12+
/// <summary>
13+
/// 获取或设置用户分层。
14+
/// </summary>
15+
[Newtonsoft.Json.JsonProperty("risk_level")]
16+
[System.Text.Json.Serialization.JsonPropertyName("risk_level")]
17+
public int RiskLevel { get; set; }
18+
19+
/// <summary>
20+
/// 获取或设置建议先享金额(单位:分)。
21+
/// </summary>
22+
[Newtonsoft.Json.JsonProperty("suggested_quota")]
23+
[System.Text.Json.Serialization.JsonPropertyName("suggested_quota")]
24+
public int SuggestedQuota { get; set; }
25+
}
26+
}
27+
28+
/// <summary>
29+
/// 获取或设置服务商商户号。
30+
/// </summary>
31+
[Newtonsoft.Json.JsonProperty("mchid")]
32+
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
33+
public string MerchantId { get; set; } = default!;
34+
35+
/// <summary>
36+
/// 获取或设置子商户号。
37+
/// </summary>
38+
[Newtonsoft.Json.JsonProperty("sub_mchid")]
39+
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
40+
public string SubMerchantId { get; set; } = default!;
41+
42+
/// <summary>
43+
/// 获取或设置服务商 AppId。
44+
/// </summary>
45+
[Newtonsoft.Json.JsonProperty("appid")]
46+
[System.Text.Json.Serialization.JsonPropertyName("appid")]
47+
public string AppId { get; set; } = default!;
48+
49+
/// <summary>
50+
/// 获取或设置子商户 AppId。
51+
/// </summary>
52+
[Newtonsoft.Json.JsonProperty("sub_appid")]
53+
[System.Text.Json.Serialization.JsonPropertyName("sub_appid")]
54+
public string? SubAppId { get; set; }
55+
56+
/// <summary>
57+
/// 获取或设置服务 ID。
58+
/// </summary>
59+
[Newtonsoft.Json.JsonProperty("service_id")]
60+
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
61+
public string ServiceId { get; set; } = default!;
62+
63+
/// <summary>
64+
/// 获取或设置分层版本。
65+
/// </summary>
66+
[Newtonsoft.Json.JsonProperty("risk_level_version")]
67+
[System.Text.Json.Serialization.JsonPropertyName("risk_level_version")]
68+
public int RiskLevelVersion { get; set; }
69+
70+
/// <summary>
71+
/// 获取或设置先享金额列表。
72+
/// </summary>
73+
[Newtonsoft.Json.JsonProperty("quotas")]
74+
[System.Text.Json.Serialization.JsonPropertyName("quotas")]
75+
public Types.Quota[] QuotaList { get; set; } = default!;
76+
}
77+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"service_id": "2002000000000558128851361561536",
3+
"mchid": "1230000109",
4+
"sub_mchid": "1230000109",
5+
"appid": "wxd678efh567hg6787",
6+
"sub_appid": "wxd678efh567hg6787",
7+
"risk_level_version": 1,
8+
"quotas": [
9+
{
10+
"risk_level": 1,
11+
"suggested_quota": 1000
12+
}
13+
]
14+
}

0 commit comments

Comments
 (0)