cbs-4px-merchant-cli 0.0.9 → 0.0.12

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.
Files changed (55) hide show
  1. package/README.4px.md +5 -5
  2. package/README.cainiao.md +5 -5
  3. package/README.md +5 -5
  4. package/dist/cli.js +150 -32
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/address.d.ts +7 -1
  7. package/dist/commands/address.js +29 -10
  8. package/dist/commands/address.js.map +1 -1
  9. package/dist/commands/auth.d.ts +1 -0
  10. package/dist/commands/auth.js +87 -0
  11. package/dist/commands/auth.js.map +1 -1
  12. package/dist/commands/config.js +120 -20
  13. package/dist/commands/config.js.map +1 -1
  14. package/dist/commands/onboarding.d.ts +21 -7
  15. package/dist/commands/onboarding.js +95 -18
  16. package/dist/commands/onboarding.js.map +1 -1
  17. package/dist/commands/order.d.ts +38 -6
  18. package/dist/commands/order.js +251 -35
  19. package/dist/commands/order.js.map +1 -1
  20. package/dist/commands/platform.d.ts +50 -0
  21. package/dist/commands/platform.js +108 -6
  22. package/dist/commands/platform.js.map +1 -1
  23. package/dist/commands/product.d.ts +3 -0
  24. package/dist/commands/product.js +3 -0
  25. package/dist/commands/product.js.map +1 -1
  26. package/dist/commands/update.js +124 -3
  27. package/dist/commands/update.js.map +1 -1
  28. package/dist/errors.d.ts +29 -1
  29. package/dist/errors.js +11 -1
  30. package/dist/errors.js.map +1 -1
  31. package/dist/services/api-client.d.ts +49 -13
  32. package/dist/services/api-client.js +231 -45
  33. package/dist/services/api-client.js.map +1 -1
  34. package/dist/services/binary-source.d.ts +30 -0
  35. package/dist/services/binary-source.js +88 -0
  36. package/dist/services/binary-source.js.map +1 -0
  37. package/dist/services/binary-update.d.ts +62 -0
  38. package/dist/services/binary-update.js +179 -0
  39. package/dist/services/binary-update.js.map +1 -0
  40. package/dist/services/install-detector.d.ts +13 -1
  41. package/dist/services/install-detector.js +20 -1
  42. package/dist/services/install-detector.js.map +1 -1
  43. package/dist/types/index.d.ts +199 -12
  44. package/dist/utils/run-command.d.ts +6 -0
  45. package/dist/utils/run-command.js +13 -0
  46. package/dist/utils/run-command.js.map +1 -1
  47. package/package.json +7 -1
  48. package/skill/SKILL.md +14 -12
  49. package/skill/package.json +1 -1
  50. package/skill/reference/auth.md +20 -1
  51. package/skill/reference/index.md +3 -3
  52. package/skill/reference/onboarding.md +121 -52
  53. package/skill/reference/order.md +216 -36
  54. package/skill/reference/platform.md +85 -2
  55. package/skill/reference/product.md +3 -0
@@ -17,7 +17,7 @@
17
17
  | 客户类型 | 经济主体 | 认证命令 |
18
18
  | --- | --- | --- |
19
19
  | 中国大陆(0) | 个人 | `auth indiv` → `auth code` |
20
- | 中国大陆(0) | 企业 | `auth indiv --agent` → `auth code --agent` → `auth organ`(必要时 `auth remit`) |
20
+ | 中国大陆(0) | 企业 | `auth indiv --agent` → `auth code --agent`(返回经办人账号 ID)→ `auth organ`(成功即认证完成,服务端自动跳过对公打款) |
21
21
  | 港澳台(1)/ 海外(2) | 个人 / 企业 | `auth gat`(提交资料后走人工审核) |
22
22
 
23
23
  认证通过后:`brand list` → `brand open` → `contract list` → `contract url`。
@@ -149,6 +149,8 @@ fmc onboarding auth schedule
149
149
  需要 API Key 认证。**写操作**,默认二次确认。仅中国大陆客户。
150
150
 
151
151
  命令返回的 `flowId` 是下一步 `auth code` 的入参,**必须记下来**。
152
+ 例外:带 `--agent` 且该经办人**已经实名过**时,返回的是经办人账号 ID(不再下发验证码),
153
+ 可直接作为 `auth organ --agent-account-id` 使用。
152
154
 
153
155
  #### Options
154
156
 
@@ -205,6 +207,9 @@ fmc onboarding auth indiv --name 张三 --cert-number 440301199001011234 \
205
207
 
206
208
  需要 API Key 认证。**写操作**,默认二次确认。
207
209
 
210
+ 返回的是**账户 ID**;经办人认证(`--agent`)时这个值就是 `auth organ` 要的
211
+ `--agent-account-id`,**必须记下来**。
212
+
208
213
  #### Options
209
214
 
210
215
  | Flag | Type | Required | Description |
@@ -231,8 +236,11 @@ fmc onboarding auth code --flow-id FLOW20260831001 --auth-code 123456 --agent -y
231
236
 
232
237
  ```
233
238
  ✔ 验证码校验通过
239
+ 返回 c5bd9d9a1b544d1bae50727555bda804
234
240
  ```
235
241
 
242
+ 经办人认证时,上面的“返回”就是经办人账号 ID,直接作为 `auth organ --agent-account-id` 使用。
243
+
236
244
  ---
237
245
 
238
246
  ### `fmc onboarding auth organ`
@@ -241,40 +249,86 @@ fmc onboarding auth code --flow-id FLOW20260831001 --auth-code 123456 --agent -y
241
249
  | --- | --- |
242
250
  | **Name** | `onboarding auth organ` |
243
251
  | **Description** | 发起企业实名认证 |
244
- | **Usage** | `fmc onboarding auth organ --name <name> --cert-number <no> [flags]` |
252
+ | **Usage** | `fmc onboarding auth organ --name <name> --cert-number <no> --agent-account-id <id> --legal-name <name> --state <state> --city <city> --county <county> --address <address> [flags]` |
245
253
 
246
254
  需要 API Key 认证。**写操作**,默认二次确认。
247
255
 
248
256
  前置条件:经办人已通过 `auth indiv --agent` + `auth code --agent` 完成个人实名。
249
- 若返回后 `auth schedule` 显示"待对公打款验证",用 `auth remit` 收尾。
257
+ **`--agent-account-id` 取自 `auth code --agent` 的返回值**(经办人已实名时,`auth indiv --agent`
258
+ 也直接返回该账号 ID),不要编造。
259
+
260
+ 企业名称、证件、法人、注册地址是**一次性提交**的:服务端对这些字段逐个做非空校验,
261
+ 缺一个就返回 `PARAM_REQUIRED`,认证不会落一半,所以要先把资料收齐再执行。
262
+
263
+ 返回值是**企业实名的 flowId**。对公打款环节已下线:服务端在认证成功后会
264
+ **自动跳过对公打款验证**,`auth schedule` 直接变成 `已完成 (2)` 就可以 `brand open`,
265
+ **无需再做任何打款操作**。极少数存量流程可能停在 `待对公打款验证 (4)`,属异常,转人工。
266
+
267
+ **这个 flowId 是唯一来源**:`auth schedule` 不返回 flowId,CLI 也没有反查命令,
268
+ 所以要在当次会话里记下;没记下又遇到状态 `4` 只能转人工。
250
269
 
251
270
  #### Options
252
271
 
253
272
  | Flag | Type | Required | Description |
254
273
  | --- | --- | --- | --- |
255
274
  | `--name <name>` | string | yes | 企业名称 |
256
- | `--cert-number <no>` | string | yes | 统一社会信用代码 |
257
- | `--cert-type <type>` | string | no | 证件类型 |
258
- | `--agent-account-id <id>` | string | no | 经办人账号 ID |
275
+ | `--cert-number <no>` | string | yes | 企业证件号(营业执照即统一社会信用代码) |
276
+ | `--agent-account-id <id>` | string | yes | 经办人账号 ID,来自 `auth code --agent` 的返回值 |
277
+ | `--legal-name <name>` | string | yes | 法定代表人姓名 |
278
+ | `--state <name>` | string | yes | 注册地省/州 |
279
+ | `--city <name>` | string | yes | 注册地市 |
280
+ | `--county <name>` | string | yes | 注册地区/县 |
281
+ | `--address <address>` | string | yes | 注册地详细地址(营业执照上的地址) |
282
+ | `--legal-cert-number <no>` | string | 条件必填 | 法人证件号(身份证号)。`--auth-type 0`(默认)时必填 |
283
+ | `--legal-cert-type <type>` | string | no | 法人证件类型:`0` 身份证(默认 `0`) |
284
+ | `--auth-type <type>` | string | no | 认证方式:`0` 企业四要素、`1` 组织机构三要素(默认 `0`) |
285
+ | `--cert-type <type>` | string | no | 企业证件类型:`0` 营业执照、`1` 组织机构代码证、`2` 工商注册号 …(默认 `0`) |
286
+ | `--country <name>` | string | no | 国家/地区名称(默认 `中国大陆`) |
287
+ | `--country-code <code>` | string | no | 国家数字编码(默认 `485`) |
288
+ | `--alpha2-code <code>` | string | no | 国家二字码(默认 `CN`) |
259
289
  | `-y, --yes` | boolean | no | 跳过交互确认(非交互环境必传) |
260
290
 
291
+ 三要素认证(`--auth-type 1`)只对少数白名单客户开放,普通企业客户用默认的四要素。
292
+ `--cert-number`、`--legal-cert-number` 在 `--verbose` / `--dry-run` 的打印中已遮蔽为 `****`,
293
+ 但**真实值仍会随请求发送**。
294
+
261
295
  支持全局选项: `--output`, `--verbose`, `--dry-run`
262
296
 
263
297
  #### Examples
264
298
 
265
299
  ```bash
266
- fmc onboarding auth organ --name 深圳市某某科技有限公司 \
267
- --cert-number 91440300MA5XXXXXXX
300
+ # 四要素认证(默认):企业 + 法人 + 注册地址一次提交
301
+ fmc onboarding auth organ \
302
+ --name 深圳市某某科技有限公司 \
303
+ --cert-number 91440300MA5XXXXXXX \
304
+ --agent-account-id c5bd9d9a1b544d1bae50727555bda804 \
305
+ --legal-name 张三 \
306
+ --legal-cert-number 440301199001011234 \
307
+ --state 广东省 --city 深圳市 --county 南山区 \
308
+ --address "科技园某某大厦 1001"
309
+ ```
310
+
311
+ ```bash
312
+ # 三要素认证(白名单客户):无需法人证件号
313
+ fmc onboarding auth organ \
314
+ --name 某某社会团体 --cert-number 91440300MA5XXXXXXX --auth-type 1 \
315
+ --cert-type 7 --agent-account-id c5bd9d9a1b544d1bae50727555bda804 \
316
+ --legal-name 张三 \
317
+ --state 广东省 --city 深圳市 --county 南山区 --address "科技园某某大厦 1001" -y
268
318
  ```
269
319
 
270
320
  #### Output (text mode)
271
321
 
272
322
  ```
273
323
  ✔ 已发起企业实名认证
324
+ flowId FLOW20260831001
274
325
 
275
- 待对公打款验证时,用 auth remit --flow-id <flowId> --amount <分> 完成
326
+ 用 auth schedule 查看认证结果(已完成即可开通品牌,无需对公打款)
276
327
  ```
277
328
 
329
+ 对公打款环节已下线:`auth organ` 成功后服务端自动跳过打款,`auth schedule` 得到
330
+ `已完成 (2)` 就可以直接 `brand open`。
331
+
278
332
  ---
279
333
 
280
334
  ### `fmc onboarding auth gat`
@@ -344,44 +398,6 @@ fmc onboarding auth gat --customer-profile 2 --entity 2 \
344
398
 
345
399
  ---
346
400
 
347
- ### `fmc onboarding auth remit`
348
-
349
- | Field | Value |
350
- | --- | --- |
351
- | **Name** | `onboarding auth remit` |
352
- | **Description** | 校验企业对公打款金额 |
353
- | **Usage** | `fmc onboarding auth remit --flow-id <id> --amount <cents> [flags]` |
354
-
355
- 需要 API Key 认证。**写操作**,默认二次确认。
356
-
357
- 金额单位是**分**,不是元——传 `1` 表示 1 分。校验有重试次数限制,填错会消耗次数,
358
- 所以确认后再提交。
359
-
360
- #### Options
361
-
362
- | Flag | Type | Required | Description |
363
- | --- | --- | --- | --- |
364
- | `--flow-id <id>` | string | yes | 认证流程 ID |
365
- | `--amount <cents>` | string | yes | 打款金额,单位:分 |
366
- | `-y, --yes` | boolean | no | 跳过交互确认(非交互环境必传) |
367
-
368
- 支持全局选项: `--output`, `--verbose`, `--dry-run`
369
-
370
- #### Examples
371
-
372
- ```bash
373
- # 收到 0.37 元打款 → 传 37
374
- fmc onboarding auth remit --flow-id FLOW20260831001 --amount 37
375
- ```
376
-
377
- #### Output (text mode)
378
-
379
- ```
380
- ✔ 打款金额校验通过
381
- ```
382
-
383
- ---
384
-
385
401
  ### `fmc onboarding brand list`
386
402
 
387
403
  | Field | Value |
@@ -437,7 +453,7 @@ fmc onboarding brand list --customer-type 1 --output json
437
453
  需要 API Key 认证。**写操作**,默认二次确认。
438
454
 
439
455
  前置条件:中国大陆客户且已完成实名认证。开通后合同即进入申请流程,
440
- 用 `contract list` / `contract url` 继续。
456
+ 用 `contract list` 拿到合同编号与状态码,再 `contract url <合同编号> --status <状态码>` 继续。
441
457
 
442
458
  #### Options
443
459
 
@@ -474,7 +490,49 @@ fmc onboarding brand open --service-code DSS \
474
490
  ```
475
491
  ✔ 品牌开通与合同申请已提交
476
492
 
477
- 用 contract list 查看合同,contract url <合同编号> 获取签署链接
493
+ 用 contract list 查看合同,contract url <合同编号> --status <状态码> 获取签署链接
494
+ ```
495
+
496
+ ---
497
+
498
+ ### `fmc onboarding notify-saler`
499
+
500
+ | Field | Value |
501
+ | --- | --- |
502
+ | **Name** | `onboarding notify-saler` |
503
+ | **Description** | 重复入驻场景下,向当前客户对应的销售推送钉钉通知 |
504
+ | **Usage** | `fmc onboarding notify-saler [flags]` |
505
+
506
+ 需要 API Key 认证。**写操作**,默认二次确认。无业务参数:客户编码由
507
+ 服务端从 API Key 上下文自动取,通知标题与正文也由服务端写死(含企业名称与客户编码)。
508
+
509
+ **仅在确认客户存在重复入驻时调用**:即 `brand open` 被拦且错误文案明确包含
510
+ `账号存在重复申请,请等待人工审核通过后再发起申请服务`(底层业务码 50001)或
511
+ `因您重复申请账号,审核未通过,不可继续申请服务`(底层业务码 50002)时才用。
512
+ MCP 层可能将底层码包装成 `OPEN_BRAND_ERROR`,因此按错误文案判断,不要只匹配错误码。
513
+ **请勿重复发送**;通知后销售需在四方钉—工作台—OA审批发起「GPN客户发起:客户账号重复注册审核申请」。
514
+
515
+ #### Options
516
+
517
+ | Flag | Type | Required | Description |
518
+ | --- | --- | --- | --- |
519
+ | `-y, --yes` | boolean | no | 跳过交互确认(非交互环境必传) |
520
+
521
+ 支持全局选项: `--output`, `--verbose`, `--dry-run`
522
+
523
+ #### Examples
524
+
525
+ ```bash
526
+ fmc onboarding notify-saler -y
527
+ ```
528
+
529
+ #### Output (text mode)
530
+
531
+ ```
532
+ ✔ 已向该客户对应的销售推送重复入驻通知
533
+
534
+ 通知含企业名称与客户编码,并指引销售走 OA「客户账号重复注册审核申请」
535
+ 请勿重复发送;等销管审批通过后再重试 brand open
478
536
  ```
479
537
 
480
538
  ---
@@ -536,7 +594,7 @@ fmc onboarding contract list --page 2 --output json
536
594
  | --- | --- |
537
595
  | **Name** | `onboarding contract url` |
538
596
  | **Description** | 获取合同签署链接或下载链接 |
539
- | **Usage** | `fmc onboarding contract url <contractCode> [flags]` |
597
+ | **Usage** | `fmc onboarding contract url <contractCode> --status <status> [flags]` |
540
598
 
541
599
  需要 API Key 认证。
542
600
 
@@ -548,17 +606,24 @@ fmc onboarding contract list --page 2 --output json
548
606
  | Flag | Type | Required | Description |
549
607
  | --- | --- | --- | --- |
550
608
  | `<contractCode>` | string | yes | 合同编号(从 `contract list` 获取) |
609
+ | `--status <status>` | string | yes | 合同状态码(从 `contract list` 的状态原样传入) |
551
610
 
552
611
  支持全局选项: `--output`, `--verbose`, `--dry-run`
553
612
 
613
+ `--status` 必填,且**只能取自 `contract list`**:先 `contract list` 拿到该合同的
614
+ `合同编号` + `状态`,再原样传进来。禁止凭猜测或为了拿签署链接而伪造状态码
615
+ (服务端会重新查合同详情,最终以**实际状态**决定返回签署链接还是下载链接)。
616
+
554
617
  #### Examples
555
618
 
556
619
  ```bash
557
- fmc onboarding contract url CT20260801001
620
+ # 先查列表拿到编号与状态,再取链接
621
+ fmc onboarding contract list
622
+ fmc onboarding contract url CT20260801001 --status 4
558
623
  ```
559
624
 
560
625
  ```bash
561
- fmc onboarding contract url CT20260801001 --output json
626
+ fmc onboarding contract url CT20260801001 --status 4 --output json
562
627
  ```
563
628
 
564
629
  #### Output (text mode)
@@ -567,7 +632,11 @@ fmc onboarding contract url CT20260801001 --output json
567
632
  合同链接
568
633
  ──────────────────────────────────────────────────
569
634
  合同编号 CT20260801001
635
+ 合同状态 签署中 (4)
570
636
  链接 https://esign.example.com/sign/abc123
571
637
 
572
638
  签署中的合同返回签署链接,其余状态返回下载链接;请勿频繁调用
573
639
  ```
640
+
641
+ 漏传 `--status` 会被 CLI 直接拒绝(commander 报 `required option ... not specified`),
642
+ 不会发出请求。