hm-tracking-sdk 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -92
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,48 +4,49 @@
|
|
|
4
4
|
|
|
5
5
|
## 1. 安装
|
|
6
6
|
|
|
7
|
-
建议通过 npm/yarn 安装正式发布的包:
|
|
7
|
+
### 建议通过 npm/yarn 安装正式发布的包:
|
|
8
8
|
|
|
9
|
-
```bash
|
|
10
|
-
# 使用 yarn
|
|
11
|
-
yarn add hm-tracking-sdk axios crypto-js
|
|
12
|
-
|
|
13
|
-
# 或使用 npm
|
|
14
|
-
npm i hm-tracking-sdk axios crypto-js
|
|
15
|
-
```
|
|
9
|
+
```bash
|
|
10
|
+
# 使用 yarn
|
|
11
|
+
yarn add hm-tracking-sdk axios crypto-js
|
|
16
12
|
|
|
13
|
+
# 或使用 npm
|
|
14
|
+
npm i hm-tracking-sdk axios crypto-js
|
|
15
|
+
```
|
|
17
16
|
|
|
18
17
|
---
|
|
19
18
|
|
|
20
19
|
## 2. SDK 初始化
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
import { HmTrackingSDK, type SDKInitOptions } from "hm-tracking-sdk";
|
|
24
|
-
|
|
25
|
-
const options: SDKInitOptions = {
|
|
26
|
-
// 可选:不传则使用内置默认地址
|
|
27
|
-
baseURL: "https://your-api.example.com",
|
|
21
|
+
- 接口: init()
|
|
28
22
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
23
|
+
```ts
|
|
24
|
+
import { HmTrackingSDK, type SDKInitOptions } from "hm-tracking-sdk";
|
|
25
|
+
|
|
26
|
+
const options: SDKInitOptions = {
|
|
27
|
+
// 可选:不传则使用内置默认地址
|
|
28
|
+
baseURL: "https://your-api.example.com",
|
|
29
|
+
|
|
30
|
+
// 可选:本地存储 Key 前缀,避免项目间冲突
|
|
31
|
+
storageKeyPrefix: "your_app_prefix",
|
|
32
|
+
|
|
33
|
+
// 可选:浏览器环境下使用,可显式传入自定义用户
|
|
34
|
+
customUser: {
|
|
35
|
+
user: {
|
|
36
|
+
id: 123456789,
|
|
37
|
+
firstName: "Test",
|
|
38
|
+
lastName: "User",
|
|
39
|
+
username: "test_user",
|
|
40
|
+
languageCode: "zh-hans",
|
|
41
|
+
},
|
|
42
|
+
authDate: new Date().toISOString(),
|
|
43
|
+
hash: "your_hash_value",
|
|
40
44
|
},
|
|
41
|
-
|
|
42
|
-
hash: "your_hash_value",
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
+
};
|
|
45
46
|
|
|
46
|
-
const sdk = new HmTrackingSDK(options);
|
|
47
|
-
await sdk.init();
|
|
48
|
-
```
|
|
47
|
+
const sdk = new HmTrackingSDK(options);
|
|
48
|
+
await sdk.init();
|
|
49
|
+
```
|
|
49
50
|
|
|
50
51
|
- 函数说明:初始化 SDK,先创建 HmTrackingSDK 对象,然后调用 init 方法完成初始化。
|
|
51
52
|
- 返回值:`Promise<void>`。
|
|
@@ -74,32 +75,37 @@ await sdk.init();
|
|
|
74
75
|
- 自定义用户:也可传入 `customUser` 替代匿名用户。
|
|
75
76
|
|
|
76
77
|
### 2.3 环境判断
|
|
77
|
-
|
|
78
|
-
```ts
|
|
79
|
-
import { isTelegramEnv } from "hm-tracking-sdk";
|
|
80
78
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
79
|
+
- 接口: isTelegramEnv()
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
import { isTelegramEnv } from "hm-tracking-sdk";
|
|
83
|
+
|
|
84
|
+
if (isTelegramEnv()) {
|
|
85
|
+
// Telegram WebApp 环境
|
|
86
|
+
} else {
|
|
87
|
+
// 浏览器/其他环境
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
- 函数说明:判断是否是Telegram环境。
|
|
92
|
+
- 返回值:`boolean`。
|
|
87
93
|
|
|
88
94
|
---
|
|
89
95
|
|
|
90
96
|
## 3. 获取Telegram用户信息
|
|
91
97
|
|
|
92
|
-
|
|
98
|
+
- 接口: getTelegramUserUnsafe()
|
|
93
99
|
|
|
94
|
-
```ts
|
|
95
|
-
import { getTelegramUserUnsafe, type TelegramUserInfo } from "hm-tracking-sdk";
|
|
100
|
+
```ts
|
|
101
|
+
import { getTelegramUserUnsafe, type TelegramUserInfo } from "hm-tracking-sdk";
|
|
96
102
|
|
|
97
|
-
const user: TelegramUserInfo | null = getTelegramUserUnsafe();
|
|
98
|
-
```
|
|
103
|
+
const user: TelegramUserInfo | null = getTelegramUserUnsafe();
|
|
104
|
+
```
|
|
99
105
|
|
|
100
|
-
- 函数说明:在 Telegram
|
|
101
|
-
- 返回值:`TelegramUserInfo | null`,数据结构为:
|
|
102
|
-
|
|
106
|
+
- 函数说明:在 Telegram 环境下返回 `TelegramUserInfo`;获取失败返回 `null`。
|
|
107
|
+
- 返回值:`TelegramUserInfo | null`,数据结构为:
|
|
108
|
+
|
|
103
109
|
```ts
|
|
104
110
|
export interface TelegramUserInfo {
|
|
105
111
|
id?: number;
|
|
@@ -122,9 +128,11 @@ const user: TelegramUserInfo | null = getTelegramUserUnsafe();
|
|
|
122
128
|
|
|
123
129
|
### 4.1 展示广告
|
|
124
130
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
```
|
|
131
|
+
- 接口: showHmAdByPosition()
|
|
132
|
+
|
|
133
|
+
```ts
|
|
134
|
+
await sdk.showHmAdByPosition(adPositionName);
|
|
135
|
+
```
|
|
128
136
|
|
|
129
137
|
- 函数说明:根据广告位名称展示广告。
|
|
130
138
|
- 参数说明
|
|
@@ -143,46 +151,52 @@ await sdk.showHmAdByPosition(adPositionName);
|
|
|
143
151
|
|
|
144
152
|
支付仅支持在 Telegram WebApp 内使用。
|
|
145
153
|
|
|
146
|
-
### 5.1 API
|
|
154
|
+
### 5.1 TON钱包相关API
|
|
147
155
|
|
|
148
|
-
#### 5.1.1
|
|
156
|
+
#### 5.1.1 钱包是否链接
|
|
149
157
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
```
|
|
158
|
+
- 接口: isWalletConnected()
|
|
159
|
+
|
|
160
|
+
```ts
|
|
161
|
+
sdk.isWalletConnected(): boolean
|
|
162
|
+
```
|
|
153
163
|
|
|
154
164
|
- 函数说明:同步检查是否已连接 TON 钱包;
|
|
155
165
|
- 返回值:`boolean`。
|
|
156
166
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
167
|
+
#### 5.1.2 链接钱包
|
|
168
|
+
|
|
169
|
+
- 接口: connectWallet()
|
|
170
|
+
|
|
171
|
+
```ts
|
|
172
|
+
sdk.connectWallet(): Promise<boolean>
|
|
173
|
+
```
|
|
160
174
|
|
|
161
175
|
- 函数说明:发起连接 TON 钱包;
|
|
162
176
|
- 返回值:`Promise<boolean>` 表示是否连接成功。
|
|
163
177
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
178
|
+
#### 5.1.3 断开钱包链接
|
|
179
|
+
|
|
180
|
+
- 接口: disconnectWallet()
|
|
181
|
+
|
|
182
|
+
```ts
|
|
183
|
+
sdk.disconnectWallet(): Promise<void>
|
|
184
|
+
```
|
|
167
185
|
|
|
168
186
|
- 函数说明:断开已连接的钱包;
|
|
169
187
|
- 返回值:`Promise<void>`。
|
|
170
188
|
|
|
171
|
-
|
|
172
|
-
sdk.ensureWalletConnected(): Promise<boolean>
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
- 函数说明:确保钱包已连接;若未连接则尝试连接;
|
|
176
|
-
- 返回值:`Promise<boolean>` 表示最终是否已连接。
|
|
189
|
+
### 5.2 支付
|
|
177
190
|
|
|
178
191
|
#### 5.2.1 获取支持的支付方式
|
|
179
192
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
```
|
|
193
|
+
- 接口: getSupportedPayModes()
|
|
194
|
+
|
|
195
|
+
```ts
|
|
196
|
+
sdk.getSupportedPayModes(): Promise<MerchantPayModeListData>
|
|
197
|
+
```
|
|
183
198
|
|
|
184
199
|
- 函数说明:获取当前支持的币种及汇率配置;
|
|
185
|
-
- 参数说明:无;
|
|
186
200
|
- 返回值说明:`Promise<MerchantPayModeListData>`,见下方类型定义。
|
|
187
201
|
|
|
188
202
|
```ts
|
|
@@ -201,20 +215,22 @@ sdk.getSupportedPayModes(): Promise<MerchantPayModeListData>
|
|
|
201
215
|
|
|
202
216
|
#### 5.2.2 创建并支付订单
|
|
203
217
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
+
- 接口: payByMerchant()
|
|
219
|
+
|
|
220
|
+
```ts
|
|
221
|
+
// 仅 TON/USDT 需要先连接钱包(STARS 无需)
|
|
222
|
+
await sdk.ensureWalletConnected();
|
|
223
|
+
|
|
224
|
+
// 创建并支付订单
|
|
225
|
+
const params: MerchantPayCreateRequest = {
|
|
226
|
+
currencyName: "TON", // "TON" | "USDT" | "STARS"
|
|
227
|
+
amount: 10.5, // 支付金额
|
|
228
|
+
outTradeNo: `order_${Date.now()}`, // 自定义订单号
|
|
229
|
+
notifyUrl: "https://your-server.com/payment-callback",
|
|
230
|
+
attach: JSON.stringify({ userId: "123", itemId: "456" })
|
|
231
|
+
};
|
|
232
|
+
const result: MerchantPayFinishResponseData = await sdk.payByMerchant(params);
|
|
233
|
+
```
|
|
218
234
|
|
|
219
235
|
- 函数说明:创建支付订单并根据币种发起支付流程(STARS、TON/USDT 链上交易);
|
|
220
236
|
|
|
@@ -268,9 +284,11 @@ const result: MerchantPayFinishResponseData = await sdk.payByMerchant(params);
|
|
|
268
284
|
|
|
269
285
|
#### 5.2.3 查询支付结果
|
|
270
286
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
```
|
|
287
|
+
- 接口: merchantPayQueryResult()
|
|
288
|
+
|
|
289
|
+
```ts
|
|
290
|
+
sdk.merchantPayQueryResult(data: MerchantPayQueryResultRequest): Promise<MerchantPayQueryResultResponseData>
|
|
291
|
+
```
|
|
274
292
|
|
|
275
293
|
- 函数说明:通过系统订单号 `orderSn` 或商户订单号 `outTradeNo` 查询订单最新结果;
|
|
276
294
|
- 参数说明:`MerchantPayQueryResultRequest`,见下方类型:
|
|
@@ -287,5 +305,3 @@ sdk.merchantPayQueryResult(data: MerchantPayQueryResultRequest): Promise<Merchan
|
|
|
287
305
|
```ts
|
|
288
306
|
type MerchantPayQueryResultResponseData = MerchantPayOrderBase;
|
|
289
307
|
```
|
|
290
|
-
|
|
291
|
-
|