Skip to content

Commit 0bf6774

Browse files
committed
feat(microapp): 新增小游戏礼包福袋接口
1 parent 229b744 commit 0bf6774

7 files changed

Lines changed: 217 additions & 0 deletions

File tree

docs/MicroApp/Basic_ModelDefinition.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@
8787
|| 数据缓存 | |
8888
|| 二维码 | |
8989
|| 订阅消息 | |
90+
|| 礼包福袋 | |
91+
|| 内容安全 | |
9092

9193
</details>
9294

src/SKIT.FlurlHttpClient.ByteDance.MicroApp/DouyinMicroAppEndpoints.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ public static class DouyinMicroAppEndpoints
1010
/// </summary>
1111
public const string DEFAULT = "https://open.douyin.com";
1212

13+
/// <summary>
14+
/// 小游戏域名。
15+
/// </summary>
16+
public const string MINIGAME = "https://minigame.zijieapi.com/mgplatform";
17+
1318
/// <summary>
1419
/// 旧版接口默认域名。
1520
/// </summary>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using System;
2+
using System.Net.Http;
3+
using System.Threading;
4+
using System.Threading.Tasks;
5+
using Flurl.Http;
6+
7+
namespace SKIT.FlurlHttpClient.ByteDance.MicroApp
8+
{
9+
public static class DouyinMicroAppClientExecuteGiftExtensions
10+
{
11+
/// <summary>
12+
/// <para>异步调用 [POST] /api/gift/receive_reward 接口。</para>
13+
/// <para>
14+
/// REF: <br/>
15+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/server/gift-bag/receive-reward ]]>
16+
/// </para>
17+
/// </summary>
18+
/// <param name="client"></param>
19+
/// <param name="request"></param>
20+
/// <param name="cancellationToken"></param>
21+
/// <returns></returns>
22+
public static async Task<Models.GiftReceiveRewardResponse> ExecuteGiftReceiveRewardAsync(this DouyinMicroAppClient client, Models.GiftReceiveRewardRequest request, CancellationToken cancellationToken = default)
23+
{
24+
if (client is null) throw new ArgumentNullException(nameof(client));
25+
if (request is null) throw new ArgumentNullException(nameof(request));
26+
27+
IFlurlRequest flurlReq = client
28+
.CreateFlurlRequest(request, HttpMethod.Post, "api", "gift", "receive_reward")
29+
.WithHeader("access-token", request.AccessToken);
30+
31+
return await client.SendFlurlRequestAsJsonAsync<Models.GiftReceiveRewardResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
32+
}
33+
}
34+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [POST] /api/gift/receive_reward 接口的请求。</para>
5+
/// </summary>
6+
public class GiftReceiveRewardRequest : DouyinMicroAppRequest
7+
{
8+
/// <summary>
9+
/// 获取或设置礼包码。
10+
/// </summary>
11+
[Newtonsoft.Json.JsonProperty("gift_code")]
12+
[System.Text.Json.Serialization.JsonPropertyName("gift_code")]
13+
public string GiftCode { get; set; } = string.Empty;
14+
15+
/// <summary>
16+
/// 获取或设置兑奖用户的 OpenId。
17+
/// </summary>
18+
[Newtonsoft.Json.JsonProperty("open_id")]
19+
[System.Text.Json.Serialization.JsonPropertyName("open_id")]
20+
public string OpenId { get; set; } = string.Empty;
21+
22+
/// <summary>
23+
/// 获取或设置兑奖通用唯一 ID。
24+
/// </summary>
25+
[Newtonsoft.Json.JsonProperty("uuid")]
26+
[System.Text.Json.Serialization.JsonPropertyName("uuid")]
27+
public string RequestUUID { get; set; } = string.Empty;
28+
29+
/// <summary>
30+
/// 获取或设置环境类型。
31+
/// </summary>
32+
[Newtonsoft.Json.JsonProperty("env_type")]
33+
[System.Text.Json.Serialization.JsonPropertyName("env_type")]
34+
public string? EnvironmentType { get; set; }
35+
}
36+
}
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [POST] /api/gift/receive_reward 接口的响应。</para>
5+
/// </summary>
6+
public class GiftReceiveRewardResponse : DouyinMicroAppResponse
7+
{
8+
public static class Types
9+
{
10+
public class GiftInfo
11+
{
12+
public static class Types
13+
{
14+
public class Property
15+
{
16+
/// <summary>
17+
/// 获取或设置道具 ID。
18+
/// </summary>
19+
[Newtonsoft.Json.JsonProperty("prop_id")]
20+
[System.Text.Json.Serialization.JsonPropertyName("prop_id")]
21+
public string PropId { get; set; } = default!;
22+
23+
/// <summary>
24+
/// 获取或设置图标 URL。
25+
/// </summary>
26+
[Newtonsoft.Json.JsonProperty("icon")]
27+
[System.Text.Json.Serialization.JsonPropertyName("icon")]
28+
public string IconUrl { get; set; } = default!;
29+
30+
/// <summary>
31+
/// 获取或设置道具名称。
32+
/// </summary>
33+
[Newtonsoft.Json.JsonProperty("name")]
34+
[System.Text.Json.Serialization.JsonPropertyName("name")]
35+
public string Name { get; set; } = default!;
36+
37+
/// <summary>
38+
/// 获取或设置道具数量。
39+
/// </summary>
40+
[Newtonsoft.Json.JsonProperty("count")]
41+
[System.Text.Json.Serialization.JsonPropertyName("count")]
42+
public int Count { get; set; }
43+
}
44+
}
45+
46+
/// <summary>
47+
/// 获取或设置礼包 ID。
48+
/// </summary>
49+
[Newtonsoft.Json.JsonProperty("gift_id")]
50+
[System.Text.Json.Serialization.JsonPropertyName("gift_id")]
51+
public string GiftId { get; set; } = default!;
52+
53+
/// <summary>
54+
/// 获取或设置礼包有效开始时间戳。
55+
/// </summary>
56+
[Newtonsoft.Json.JsonProperty("gift_effective_start_time")]
57+
[System.Text.Json.Serialization.JsonPropertyName("gift_effective_start_time")]
58+
public long GiftEffectiveStartTimestamp { get; set; }
59+
60+
/// <summary>
61+
/// 获取或设置礼包有效结束时间戳。
62+
/// </summary>
63+
[Newtonsoft.Json.JsonProperty("gift_effective_end_time")]
64+
[System.Text.Json.Serialization.JsonPropertyName("gift_effective_end_time")]
65+
public long GiftEffectiveEndTimestamp { get; set; }
66+
67+
/// <summary>
68+
/// 获取或设置图标 URL。
69+
/// </summary>
70+
[Newtonsoft.Json.JsonProperty("icon_url")]
71+
[System.Text.Json.Serialization.JsonPropertyName("icon_url")]
72+
public string IconUrl { get; set; } = default!;
73+
74+
/// <summary>
75+
/// 获取或设置礼包名称。
76+
/// </summary>
77+
[Newtonsoft.Json.JsonProperty("name")]
78+
[System.Text.Json.Serialization.JsonPropertyName("name")]
79+
public string Name { get; set; } = default!;
80+
81+
/// <summary>
82+
/// 获取或设置玩法类型。
83+
/// </summary>
84+
[Newtonsoft.Json.JsonProperty("play_type")]
85+
[System.Text.Json.Serialization.JsonPropertyName("play_type")]
86+
public int PlayType { get; set; }
87+
88+
/// <summary>
89+
/// 获取或设置关联道具列表。
90+
/// </summary>
91+
[Newtonsoft.Json.JsonProperty("prop_list")]
92+
[System.Text.Json.Serialization.JsonPropertyName("prop_list")]
93+
public Types.Property[]? PropertyList { get; set; }
94+
95+
/// <summary>
96+
/// 获取或设置用户领奖说明列表。
97+
/// </summary>
98+
[Newtonsoft.Json.JsonProperty("user_receive_guide")]
99+
[System.Text.Json.Serialization.JsonPropertyName("user_receive_guide")]
100+
public string[]? UserReceiveGuideList { get; set; }
101+
}
102+
}
103+
104+
/// <summary>
105+
/// 获取或设置操作结果。
106+
/// </summary>
107+
[Newtonsoft.Json.JsonProperty("gift_info")]
108+
[System.Text.Json.Serialization.JsonPropertyName("gift_info")]
109+
public Types.GiftInfo GiftInfo { get; set; } = default!;
110+
}
111+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"uuid": "a017cd52-ca34-4a21-bab1-0844160d06e5",
3+
"open_id": "ba253642-0590-40bc-40ca",
4+
"gift_code": "mg1722924937_11229022"
5+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"gift_info": {
3+
"play_type": 1,
4+
"user_receive_guide": [
5+
"玩小游戏10秒后获得白金礼包"
6+
],
7+
"name": "白金强化碎片包",
8+
"icon_url": "https://img.byte25cdn.org/image/198082103523233",
9+
"gift_effective_start_time": 1722873600,
10+
"gift_effective_end_time": 1723737600,
11+
"gift_id": "222622358400",
12+
"prop_list": [
13+
{
14+
"prop_id": "10111",
15+
"name": "白金强化碎片",
16+
"icon": "https://img.byte25cdn.org/image/1980821035232290",
17+
"count": 10
18+
}
19+
]
20+
},
21+
"err_msg": "",
22+
"log_id": "202008121419360101980821035705926A",
23+
"err_no": 0
24+
}

0 commit comments

Comments
 (0)