Skip to content

Commit 3d52f35

Browse files
committed
feat(tenpayv3): 新增鸿蒙代扣受理扣款接口
1 parent cdbd201 commit 3d52f35

5 files changed

Lines changed: 158 additions & 0 deletions

File tree

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,28 @@ public static class WechatTenpayClientExecutePAPayExtensions
356356

357357
return await client.SendFlurlRequestAsJsonAsync<Models.ApplyPAPayPayTransactionResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
358358
}
359+
360+
/// <summary>
361+
/// <para>异步调用 [POST] /papay/pay/harmony/transactions/apply 接口。</para>
362+
/// <para>
363+
/// REF: <br/>
364+
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/merchant/4013388429 ]]>
365+
/// </para>
366+
/// </summary>
367+
/// <param name="client"></param>
368+
/// <param name="request"></param>
369+
/// <param name="cancellationToken"></param>
370+
/// <returns></returns>
371+
public static async Task<Models.ApplyPAPayPayTransactionHarmonyResponse> ExecuteApplyPAPayPayTransactionHarmonyAsync(this WechatTenpayClient client, Models.ApplyPAPayPayTransactionHarmonyRequest request, CancellationToken cancellationToken = default)
372+
{
373+
if (client is null) throw new ArgumentNullException(nameof(client));
374+
if (request is null) throw new ArgumentNullException(nameof(request));
375+
376+
IFlurlRequest flurlReq = client
377+
.CreateFlurlRequest(request, HttpMethod.Post, "papay", "pay", "harmony", "transactions", "apply");
378+
379+
return await client.SendFlurlRequestAsJsonAsync<Models.ApplyPAPayPayTransactionHarmonyResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
380+
}
359381
#endregion
360382

361383
#region ScheduledDeductSign
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [POST] /papay/pay/harmony/transactions/apply 接口的请求。</para>
5+
/// </summary>
6+
public class ApplyPAPayPayTransactionHarmonyRequest : WechatTenpayRequest
7+
{
8+
public static class Types
9+
{
10+
public class Amount : ApplyPAPayPayTransactionRequest.Types.Amount
11+
{
12+
}
13+
}
14+
15+
/// <summary>
16+
/// 获取或设置微信 AppId。
17+
/// </summary>
18+
[Newtonsoft.Json.JsonProperty("appid")]
19+
[System.Text.Json.Serialization.JsonPropertyName("appid")]
20+
public string AppId { get; set; } = string.Empty;
21+
22+
/// <summary>
23+
/// 获取或设置商户订单号。
24+
/// </summary>
25+
[Newtonsoft.Json.JsonProperty("out_trade_no")]
26+
[System.Text.Json.Serialization.JsonPropertyName("out_trade_no")]
27+
public string OutTradeNumber { get; set; } = string.Empty;
28+
29+
/// <summary>
30+
/// 获取或设置商品描述。
31+
/// </summary>
32+
[Newtonsoft.Json.JsonProperty("description")]
33+
[System.Text.Json.Serialization.JsonPropertyName("description")]
34+
public string Description { get; set; } = string.Empty;
35+
36+
/// <summary>
37+
/// 获取或设置委托代扣签约协议 ID。
38+
/// </summary>
39+
[Newtonsoft.Json.JsonProperty("contract_id")]
40+
[System.Text.Json.Serialization.JsonPropertyName("contract_id")]
41+
public string ContractId { get; set; } = string.Empty;
42+
43+
/// <summary>
44+
/// 获取或设置回调通知地址。
45+
/// </summary>
46+
[Newtonsoft.Json.JsonProperty("transaction_notify_url")]
47+
[System.Text.Json.Serialization.JsonPropertyName("transaction_notify_url")]
48+
public string NotifyUrl { get; set; } = string.Empty;
49+
50+
/// <summary>
51+
/// 获取或设置订单优惠标记。
52+
/// </summary>
53+
[Newtonsoft.Json.JsonProperty("goods_tag")]
54+
[System.Text.Json.Serialization.JsonPropertyName("goods_tag")]
55+
public string? GoodsTag { get; set; }
56+
57+
/// <summary>
58+
/// 获取或设置附加数据。
59+
/// </summary>
60+
[Newtonsoft.Json.JsonProperty("attach")]
61+
[System.Text.Json.Serialization.JsonPropertyName("attach")]
62+
public string? Attachment { get; set; }
63+
64+
/// <summary>
65+
/// 获取或设置金额信息。
66+
/// </summary>
67+
[Newtonsoft.Json.JsonProperty("amount")]
68+
[System.Text.Json.Serialization.JsonPropertyName("amount")]
69+
public Types.Amount Amount { get; set; } = new Types.Amount();
70+
71+
/// <summary>
72+
/// 获取或设置鸿蒙账户 ID。
73+
/// </summary>
74+
[Newtonsoft.Json.JsonProperty("harmony_account_id")]
75+
[System.Text.Json.Serialization.JsonPropertyName("harmony_account_id")]
76+
public string HarmonyAccountId { get; set; } = string.Empty;
77+
78+
/// <summary>
79+
/// 获取或设置商户行业编码。
80+
/// </summary>
81+
[Newtonsoft.Json.JsonProperty("mcc")]
82+
[System.Text.Json.Serialization.JsonPropertyName("mcc")]
83+
public string? MerchantCategoryCode { get; set; }
84+
}
85+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [POST] /papay/pay/harmony/transactions/apply 接口的响应。</para>
5+
/// </summary>
6+
public class ApplyPAPayPayTransactionHarmonyResponse : WechatTenpayResponse
7+
{
8+
public static class Types
9+
{
10+
public class Amount : ApplyPAPayPayTransactionResponse.Types.Amount
11+
{
12+
}
13+
}
14+
15+
/// <summary>
16+
/// 获取或设置商户订单号。
17+
/// </summary>
18+
[Newtonsoft.Json.JsonProperty("out_trade_no")]
19+
[System.Text.Json.Serialization.JsonPropertyName("out_trade_no")]
20+
public string OutTradeNumber { get; set; } = default!;
21+
22+
/// <summary>
23+
/// 获取或设置扣费金额信息。
24+
/// </summary>
25+
[Newtonsoft.Json.JsonProperty("amount")]
26+
[System.Text.Json.Serialization.JsonPropertyName("amount")]
27+
public Types.Amount Amount { get; set; } = default!;
28+
}
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"appid": "wxd678efh567hg6787",
3+
"out_trade_no": "1217752501201407033233368018",
4+
"description": "Image形象店-深圳腾大-QQ公仔",
5+
"transaction_notify_url": "https://www.qq.com/",
6+
"contract_id": "123124412412423431",
7+
"amount": {
8+
"total": 1,
9+
"currency": "CNY"
10+
},
11+
"goods_tag": "DISCOUNTS",
12+
"attach": "自定义数据",
13+
"harmony_account_id": "example_harmony_account_id",
14+
"mcc": "5734"
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"out_trade_no": "1217752501201407033233368018",
3+
"amount": {
4+
"total": 1,
5+
"currency": "CNY"
6+
}
7+
}

0 commit comments

Comments
 (0)