cbs-4px-merchant-cli 0.0.9 → 0.0.11
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.4px.md +5 -5
- package/README.cainiao.md +5 -5
- package/README.md +5 -5
- package/dist/cli.js +65 -25
- package/dist/cli.js.map +1 -1
- package/dist/commands/address.d.ts +7 -1
- package/dist/commands/address.js +29 -10
- package/dist/commands/address.js.map +1 -1
- package/dist/commands/auth.d.ts +1 -0
- package/dist/commands/auth.js +87 -0
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/config.js +20 -12
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/onboarding.d.ts +16 -7
- package/dist/commands/onboarding.js +73 -18
- package/dist/commands/onboarding.js.map +1 -1
- package/dist/commands/order.d.ts +23 -6
- package/dist/commands/order.js +60 -30
- package/dist/commands/order.js.map +1 -1
- package/dist/commands/platform.d.ts +8 -0
- package/dist/commands/platform.js +10 -1
- package/dist/commands/platform.js.map +1 -1
- package/dist/commands/product.d.ts +3 -0
- package/dist/commands/product.js +3 -0
- package/dist/commands/product.js.map +1 -1
- package/dist/services/api-client.d.ts +31 -12
- package/dist/services/api-client.js +194 -42
- package/dist/services/api-client.js.map +1 -1
- package/dist/types/index.d.ts +126 -11
- package/dist/utils/run-command.d.ts +6 -0
- package/dist/utils/run-command.js +13 -0
- package/dist/utils/run-command.js.map +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +10 -11
- package/skill/package.json +1 -1
- package/skill/reference/auth.md +20 -1
- package/skill/reference/index.md +1 -2
- package/skill/reference/onboarding.md +79 -52
- package/skill/reference/order.md +84 -34
- package/skill/reference/platform.md +1 -1
- package/skill/reference/product.md +3 -0
package/dist/types/index.d.ts
CHANGED
|
@@ -47,23 +47,43 @@ export interface LabelPrintDTO {
|
|
|
47
47
|
}
|
|
48
48
|
export interface ShipperConsigneeVO {
|
|
49
49
|
orderId: number;
|
|
50
|
+
shipperName: string | null;
|
|
51
|
+
shipperCompany: string | null;
|
|
52
|
+
shipperAddress1: string | null;
|
|
53
|
+
shipperAddress2: string | null;
|
|
54
|
+
shipperPostcode: string | null;
|
|
55
|
+
shipperTelephone: string | null;
|
|
56
|
+
shipperMobile: string | null;
|
|
57
|
+
shipperEmail: string | null;
|
|
58
|
+
shipperCountry: string | null;
|
|
59
|
+
shipperCity: string | null;
|
|
60
|
+
shipperProvince: string | null;
|
|
50
61
|
consigneeName: string | null;
|
|
62
|
+
consigneeFirstName: string | null;
|
|
63
|
+
consigneeLastName: string | null;
|
|
64
|
+
consigneeCompany: string | null;
|
|
51
65
|
consigneeAddress1: string | null;
|
|
52
66
|
consigneeAddress2: string | null;
|
|
67
|
+
consigneeStreet: string | null;
|
|
68
|
+
consigneeDoorNo: string | null;
|
|
53
69
|
consigneePostcode: string | null;
|
|
54
70
|
consigneeTelephone: string | null;
|
|
55
71
|
consigneeMobile: string | null;
|
|
72
|
+
consigneeMail: string | null;
|
|
56
73
|
consigneeCountry: string | null;
|
|
57
74
|
consigneeCity: string | null;
|
|
58
75
|
consigneeProvince: string | null;
|
|
59
|
-
|
|
60
|
-
shipperCountry: string | null;
|
|
76
|
+
consigneeVatNo: string | null;
|
|
61
77
|
}
|
|
62
78
|
export interface DeclareInvoiceVO {
|
|
63
79
|
orderId: number;
|
|
64
80
|
invoiceId: number;
|
|
65
81
|
ename: string | null;
|
|
66
82
|
cname: string | null;
|
|
83
|
+
pcs: number | null;
|
|
84
|
+
unitPrice: number | null;
|
|
85
|
+
hscode: string | null;
|
|
86
|
+
weight: number | null;
|
|
67
87
|
totalPrice: number | null;
|
|
68
88
|
currency: string | null;
|
|
69
89
|
}
|
|
@@ -82,6 +102,16 @@ export interface OrderDetailResp {
|
|
|
82
102
|
shipperConsigneeDTO: ShipperConsigneeVO | null;
|
|
83
103
|
declareList: DeclareInvoiceVO[];
|
|
84
104
|
feeDetailList: BillingFeeItemDetailVO[];
|
|
105
|
+
batteryType: string | null;
|
|
106
|
+
iossNo: string | null;
|
|
107
|
+
orderNote: string | null;
|
|
108
|
+
customerWeight: number | null;
|
|
109
|
+
length: number | null;
|
|
110
|
+
width: number | null;
|
|
111
|
+
height: number | null;
|
|
112
|
+
dutyPayMode: string | null;
|
|
113
|
+
salesPlatform: string | null;
|
|
114
|
+
pieces: number | null;
|
|
85
115
|
totalFee: string | null;
|
|
86
116
|
weightFee: number | null;
|
|
87
117
|
chatReplay: string | null;
|
|
@@ -93,6 +123,12 @@ export interface ProductRecommendRequest {
|
|
|
93
123
|
postCode?: string;
|
|
94
124
|
isBattery?: string;
|
|
95
125
|
declareValue?: number;
|
|
126
|
+
/** 包裹长(cm),体积重计费产品必传 */
|
|
127
|
+
length?: number;
|
|
128
|
+
/** 包裹宽(cm) */
|
|
129
|
+
width?: number;
|
|
130
|
+
/** 包裹高(cm) */
|
|
131
|
+
height?: number;
|
|
96
132
|
}
|
|
97
133
|
export interface RecommendProductItem {
|
|
98
134
|
productName: string;
|
|
@@ -155,14 +191,23 @@ export interface OrderListRequest {
|
|
|
155
191
|
statusName?: string;
|
|
156
192
|
customerOrderNo?: string;
|
|
157
193
|
fpxTrackNo?: string;
|
|
194
|
+
queryDateType?: string;
|
|
158
195
|
queryStartDate?: string;
|
|
159
196
|
queryEndDate?: string;
|
|
160
197
|
productCode?: string;
|
|
161
198
|
destinationCountry?: string;
|
|
199
|
+
consigneeName?: string;
|
|
200
|
+
buyerId?: string;
|
|
201
|
+
isPrint?: string;
|
|
202
|
+
odaConfirm?: string;
|
|
203
|
+
interceptStatus?: string;
|
|
204
|
+
changeNoStatus?: string;
|
|
205
|
+
isHistory?: string;
|
|
162
206
|
pageNum?: number;
|
|
163
207
|
pageSize?: number;
|
|
164
208
|
}
|
|
165
209
|
export interface OrderSummary {
|
|
210
|
+
orderId: number | null;
|
|
166
211
|
fpxTrackNo: string | null;
|
|
167
212
|
customerOrderNo: string | null;
|
|
168
213
|
statusName: string | null;
|
|
@@ -180,19 +225,36 @@ export interface OrderListResp {
|
|
|
180
225
|
total: number;
|
|
181
226
|
list: OrderSummary[];
|
|
182
227
|
}
|
|
228
|
+
/** 地址类型:shipper 发件人 / consignee 收件人 / return 退件 / collect 揽收 */
|
|
229
|
+
export type AddressType = 'shipper' | 'consignee' | 'return' | 'collect';
|
|
230
|
+
export interface AddressBookListRequest {
|
|
231
|
+
addressType?: AddressType;
|
|
232
|
+
keyword?: string;
|
|
233
|
+
pageNum?: number;
|
|
234
|
+
pageSize?: number;
|
|
235
|
+
}
|
|
183
236
|
export interface AddressBookItem {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
237
|
+
id: string | null;
|
|
238
|
+
addressType: string | null;
|
|
239
|
+
name: string | null;
|
|
240
|
+
company: string | null;
|
|
241
|
+
phone: string | null;
|
|
242
|
+
mobile: string | null;
|
|
243
|
+
email: string | null;
|
|
244
|
+
country: string | null;
|
|
188
245
|
province: string | null;
|
|
189
246
|
city: string | null;
|
|
190
|
-
|
|
247
|
+
district: string | null;
|
|
191
248
|
address: string | null;
|
|
192
|
-
|
|
249
|
+
postcode: string | null;
|
|
250
|
+
/** 是否默认地址:Y/N */
|
|
251
|
+
isDefault: string | null;
|
|
193
252
|
}
|
|
194
253
|
export interface OrderAddressResp {
|
|
195
254
|
list: AddressBookItem[];
|
|
255
|
+
total: number | null;
|
|
256
|
+
pageNum: number | null;
|
|
257
|
+
pageSize: number | null;
|
|
196
258
|
}
|
|
197
259
|
export interface CountryItem {
|
|
198
260
|
code: string;
|
|
@@ -908,11 +970,39 @@ export interface CheckAuthCodeRequest {
|
|
|
908
970
|
flowId: string;
|
|
909
971
|
isAgent?: boolean;
|
|
910
972
|
}
|
|
973
|
+
/**
|
|
974
|
+
* 企业实名认证请求。
|
|
975
|
+
*
|
|
976
|
+
* 服务端 `startOrganRealNameAuth` 对除 `certTypeEnum` 外的字段全部做
|
|
977
|
+
* `requireNotBlank` 校验,缺一个就返回 PARAM_REQUIRED,因此这里大多为必填。
|
|
978
|
+
* `code`(客户编码)与 `creatorId` 由登录上下文填充,不接受调用方传入。
|
|
979
|
+
*/
|
|
911
980
|
export interface OrganAuthRequest {
|
|
912
981
|
name: string;
|
|
913
982
|
certNumber: string;
|
|
914
|
-
|
|
915
|
-
|
|
983
|
+
/** 企业证件类型:0 营业执照(统一社会信用代码)… 12 未知,服务端必填 */
|
|
984
|
+
certType: number;
|
|
985
|
+
/** 由 certType 推导,如 0 → CRED_ORG_USCC */
|
|
986
|
+
certTypeEnum?: string;
|
|
987
|
+
/** 0=企业四要素认证、1=组织机构三要素认证 */
|
|
988
|
+
authType: number;
|
|
989
|
+
/** 经办人账号 ID,来自 `auth code --agent` 的返回值 */
|
|
990
|
+
agentAccountId: string;
|
|
991
|
+
/** 法定代表人姓名 */
|
|
992
|
+
legalName: string;
|
|
993
|
+
/** 法定代表人证件号,authType=0(四要素)时服务端必填 */
|
|
994
|
+
legalCertNumber?: string;
|
|
995
|
+
/** 法定代表人证件类型:0 身份证,authType=0 时服务端必填 */
|
|
996
|
+
legalCertType?: number;
|
|
997
|
+
/** 国家数字编码,中国大陆为 485 */
|
|
998
|
+
countryCode: string;
|
|
999
|
+
/** 国家二字码,中国大陆为 CN */
|
|
1000
|
+
alpha2Code: string;
|
|
1001
|
+
country: string;
|
|
1002
|
+
state: string;
|
|
1003
|
+
city: string;
|
|
1004
|
+
county: string;
|
|
1005
|
+
address: string;
|
|
916
1006
|
}
|
|
917
1007
|
export interface OpenBrandRequest {
|
|
918
1008
|
serviceCode: string;
|
|
@@ -1017,7 +1107,10 @@ export interface OrderSenderInfo {
|
|
|
1017
1107
|
name?: string;
|
|
1018
1108
|
company?: string;
|
|
1019
1109
|
phone?: string;
|
|
1110
|
+
mobile?: string;
|
|
1111
|
+
email?: string;
|
|
1020
1112
|
address?: string;
|
|
1113
|
+
address2?: string;
|
|
1021
1114
|
country?: string;
|
|
1022
1115
|
postcode?: string;
|
|
1023
1116
|
city?: string;
|
|
@@ -1028,12 +1121,19 @@ export interface OrderReceiverInfo {
|
|
|
1028
1121
|
company?: string;
|
|
1029
1122
|
phone?: string;
|
|
1030
1123
|
mobile?: string;
|
|
1124
|
+
firstName?: string;
|
|
1125
|
+
lastName?: string;
|
|
1031
1126
|
address?: string;
|
|
1127
|
+
address2?: string;
|
|
1128
|
+
street?: string;
|
|
1129
|
+
doorNo?: string;
|
|
1032
1130
|
city?: string;
|
|
1033
1131
|
province?: string;
|
|
1034
1132
|
postcode?: string;
|
|
1035
1133
|
country?: string;
|
|
1036
1134
|
email?: string;
|
|
1135
|
+
idCode?: string;
|
|
1136
|
+
vatNo?: string;
|
|
1037
1137
|
}
|
|
1038
1138
|
export interface OrderParcelInfo {
|
|
1039
1139
|
weight?: number;
|
|
@@ -1041,6 +1141,13 @@ export interface OrderParcelInfo {
|
|
|
1041
1141
|
width?: number;
|
|
1042
1142
|
height?: number;
|
|
1043
1143
|
dutyPayMode?: string;
|
|
1144
|
+
batteryType?: string;
|
|
1145
|
+
iossNo?: string;
|
|
1146
|
+
orderNote?: string;
|
|
1147
|
+
salesPlatform?: string;
|
|
1148
|
+
warehouseCode?: string;
|
|
1149
|
+
codPrice?: number;
|
|
1150
|
+
codCurrency?: string;
|
|
1044
1151
|
}
|
|
1045
1152
|
export interface OrderDeclareItemInfo {
|
|
1046
1153
|
ename?: string;
|
|
@@ -1050,6 +1157,10 @@ export interface OrderDeclareItemInfo {
|
|
|
1050
1157
|
currency?: string;
|
|
1051
1158
|
weight?: number;
|
|
1052
1159
|
hsCode?: string;
|
|
1160
|
+
material?: string;
|
|
1161
|
+
uses?: string;
|
|
1162
|
+
url?: string;
|
|
1163
|
+
brand?: string;
|
|
1053
1164
|
}
|
|
1054
1165
|
/** `P` = 预报(直接提交),`D` = 草稿(保存不提交)。后端默认 `P`。 */
|
|
1055
1166
|
export type OrderWriteStatus = 'P' | 'D';
|
|
@@ -1059,6 +1170,9 @@ export interface CreateOrderRequest {
|
|
|
1059
1170
|
originCountry?: string;
|
|
1060
1171
|
status?: OrderWriteStatus;
|
|
1061
1172
|
customerOrderNo?: string;
|
|
1173
|
+
pieces?: number;
|
|
1174
|
+
hasBattery?: string;
|
|
1175
|
+
buyerId?: string;
|
|
1062
1176
|
sender?: OrderSenderInfo;
|
|
1063
1177
|
receiver?: OrderReceiverInfo;
|
|
1064
1178
|
parcel?: OrderParcelInfo;
|
|
@@ -1071,7 +1185,8 @@ export interface CreateOrderResp {
|
|
|
1071
1185
|
customerOrderNo: string | null;
|
|
1072
1186
|
}
|
|
1073
1187
|
export interface EditOrderRequest extends Partial<Omit<CreateOrderRequest, 'status'>> {
|
|
1074
|
-
|
|
1188
|
+
/** 要编辑的订单单号(4px 物流单号或客户订单号)。后端按单号反查主键。 */
|
|
1189
|
+
orderNo: string;
|
|
1075
1190
|
status?: OrderWriteStatus;
|
|
1076
1191
|
}
|
|
1077
1192
|
export interface EditOrderResp {
|
|
@@ -21,4 +21,10 @@ export interface RunCommandConfig<TData> {
|
|
|
21
21
|
* empty branch at all): `consume` owns every output decision.
|
|
22
22
|
*/
|
|
23
23
|
export declare function withClient<TData>(globalOptions: GlobalOptions, spinnerText: string, fetch: (client: ApiClient) => Promise<TData>, consume: (data: TData) => void): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* 参数校验与文件读取发生在 `withClient` 之前,因此不会经过其统一错误
|
|
26
|
+
* 通道。本包装器确保这类失败仍输出 Agent 可解析的 JSON 错误信封,而不是
|
|
27
|
+
* 未处理的 Promise rejection。
|
|
28
|
+
*/
|
|
29
|
+
export declare function preflight<T>(fn: () => Promise<T>): Promise<T>;
|
|
24
30
|
export declare function runCommand<TData>(globalOptions: GlobalOptions, config: RunCommandConfig<TData>): Promise<void>;
|
|
@@ -40,6 +40,19 @@ export async function withClient(globalOptions, spinnerText, fetch, consume) {
|
|
|
40
40
|
handleError(error);
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* 参数校验与文件读取发生在 `withClient` 之前,因此不会经过其统一错误
|
|
45
|
+
* 通道。本包装器确保这类失败仍输出 Agent 可解析的 JSON 错误信封,而不是
|
|
46
|
+
* 未处理的 Promise rejection。
|
|
47
|
+
*/
|
|
48
|
+
export async function preflight(fn) {
|
|
49
|
+
try {
|
|
50
|
+
return await fn();
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
handleError(e);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
43
56
|
export async function runCommand(globalOptions, config) {
|
|
44
57
|
await withClient(globalOptions, config.spinner, (client) => config.exec(client), (data) => {
|
|
45
58
|
if (globalOptions.output === 'json') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-command.js","sourceRoot":"","sources":["../../src/utils/run-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAc3D;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,aAA4B,EAC5B,WAAmB,EACnB,KAA4C,EAC5C,OAA8B;IAE9B,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,aAAa,EAAE,EAAE,aAAa,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,aAA4B,EAC5B,MAA+B;IAE/B,MAAM,UAAU,CACd,aAAa,EACb,MAAM,CAAC,OAAO,EACd,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAC/B,CAAC,IAAI,EAAE,EAAE;QACP,IAAI,aAAa,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,YAAY,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"run-command.js","sourceRoot":"","sources":["../../src/utils/run-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAc3D;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,aAA4B,EAC5B,WAAmB,EACnB,KAA4C,EAC5C,OAA8B;IAE9B,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,aAAa,EAAE,EAAE,aAAa,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,EAAoB;IACrD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,WAAW,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,aAA4B,EAC5B,MAA+B;IAE/B,MAAM,UAAU,CACd,aAAa,EACb,MAAM,CAAC,OAAO,EACd,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAC/B,CAAC,IAAI,EAAE,EAAE;QACP,IAAI,aAAa,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,YAAY,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
package/skill/SKILL.md
CHANGED
|
@@ -141,11 +141,11 @@ description: >-
|
|
|
141
141
|
用户提到"验证码/收到短信了" → `fmc onboarding auth code`(**写**)
|
|
142
142
|
用户提到"企业实名/公司认证" → `fmc onboarding auth organ`(**写**)
|
|
143
143
|
用户提到"港澳台/海外客户认证" → `fmc onboarding auth gat`(**写**)
|
|
144
|
-
用户提到"
|
|
144
|
+
用户提到"对公打款/要不要打款" → 入驻流程已取消对公打款环节(`auth organ` 成功即认证完成),用 `fmc onboarding auth schedule` 佐证后告知"无需打款"
|
|
145
145
|
用户提到"可开通品牌/有哪些品牌" → `fmc onboarding brand list`
|
|
146
146
|
用户提到"开通品牌/申请合同" → `fmc onboarding brand open`(**写**)
|
|
147
147
|
用户提到"合同/我的合同" → `fmc onboarding contract list`
|
|
148
|
-
用户提到"签合同/签署链接/下载合同" → `fmc onboarding contract url`
|
|
148
|
+
用户提到"签合同/签署链接/下载合同" → `fmc onboarding contract url`(须带 `--status`,取自 `contract list`)
|
|
149
149
|
用户提到"登录/配置key/认证" → `fmc auth login`
|
|
150
150
|
用户提到"升级/更新/新版本" → `fmc update`
|
|
151
151
|
|
|
@@ -209,7 +209,6 @@ export BPORTAL_API_KEY=sk-xxxxx
|
|
|
209
209
|
| `platform sync` | 提交拉单任务(异步) |
|
|
210
210
|
| `platform order push` | 订单进入物流履约流程 |
|
|
211
211
|
| `onboarding auth indiv` / `auth code` / `auth organ` / `auth gat` | 提交实名认证资料 |
|
|
212
|
-
| `onboarding auth remit` | 消耗打款校验重试次数 |
|
|
213
212
|
| `onboarding brand open` | 开通品牌并发起合同申请 |
|
|
214
213
|
|
|
215
214
|
执行规则:
|
|
@@ -225,8 +224,8 @@ export BPORTAL_API_KEY=sk-xxxxx
|
|
|
225
224
|
|
|
226
225
|
1. `order create --file <json> --draft -y` → 拿到 `orderId`
|
|
227
226
|
2. `order get <orderNo>` 把收件人、重量、申报品念给用户核对
|
|
228
|
-
3. 有错就 `order edit --
|
|
229
|
-
4. 用户明确同意后 `order forecast --
|
|
227
|
+
3. 有错就 `order edit --orderNo <单号> --file <json> --draft -y` 改,改到对
|
|
228
|
+
4. 用户明确同意后 `order forecast --orderNo <单号> -y` 提交预报
|
|
230
229
|
5. `label get <orderNo>` 取面单
|
|
231
230
|
|
|
232
231
|
只有用户明确说"直接下单/不用确认"时,才允许省掉 `--draft`。
|
|
@@ -252,14 +251,14 @@ fmc order list --status IN_TRANSIT
|
|
|
252
251
|
|
|
253
252
|
# 下单(写操作)—— 先建草稿,用户核对无误后再预报
|
|
254
253
|
fmc order create --file ./order.json --draft -y
|
|
255
|
-
fmc order forecast --
|
|
254
|
+
fmc order forecast --orderNo ORD-20260907-001 -y
|
|
256
255
|
|
|
257
256
|
# 改草稿(写操作,只传要改的字段)
|
|
258
|
-
fmc order edit --
|
|
257
|
+
fmc order edit --orderNo ORD-20260907-001 --file ./patch.json --draft -y
|
|
259
258
|
|
|
260
259
|
# 取消 / 拦截(写操作)
|
|
261
|
-
fmc order cancel --
|
|
262
|
-
fmc order intercept --
|
|
260
|
+
fmc order cancel --orderNo 4PX3003136946232CN --reason "客户取消" -y
|
|
261
|
+
fmc order intercept --orderNo 4PX3003136946232CN -y
|
|
263
262
|
|
|
264
263
|
# 获取推荐产品(寄美国)
|
|
265
264
|
fmc product recommend --country US
|
|
@@ -292,9 +291,9 @@ fmc platform sync --seller-account-id 10086 \
|
|
|
292
291
|
# 查询入驻进度
|
|
293
292
|
fmc onboarding progress
|
|
294
293
|
|
|
295
|
-
#
|
|
294
|
+
# 查询合同并获取签署链接(--status 必填,取自 contract list)
|
|
296
295
|
fmc onboarding contract list
|
|
297
|
-
fmc onboarding contract url CT20260801001
|
|
296
|
+
fmc onboarding contract url CT20260801001 --status 4
|
|
298
297
|
```
|
|
299
298
|
|
|
300
299
|
---
|
package/skill/package.json
CHANGED
package/skill/reference/auth.md
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
| Command | Description |
|
|
6
6
|
| --- | --- |
|
|
7
|
-
| `fmc auth login` |
|
|
7
|
+
| `fmc auth login` | 手动配置 API Key |
|
|
8
|
+
| `fmc auth agentz` | 通过已登录的 agentz-cli 获取并配置 API Key(AgentZ / 数字员工环境) |
|
|
8
9
|
| `fmc auth status` | 查看当前认证状态 |
|
|
9
10
|
|
|
10
11
|
## Command details
|
|
@@ -35,6 +36,24 @@
|
|
|
35
36
|
fmc auth login --api-key sk-xxxxx
|
|
36
37
|
```
|
|
37
38
|
|
|
39
|
+
### `fmc auth agentz`
|
|
40
|
+
|
|
41
|
+
| Field | Value |
|
|
42
|
+
| --- | --- |
|
|
43
|
+
| **Name** | `auth agentz` |
|
|
44
|
+
| **Description** | 检测本机 `agentz-cli`,调用 `agentz-cli client token` 获取当前 AgentZ 客户端的 accessToken,再生成并保存商家 API Key |
|
|
45
|
+
| **Usage** | `fmc auth agentz` |
|
|
46
|
+
|
|
47
|
+
仅在已安装并登录 `agentz-cli` 的 AgentZ / 数字员工环境中使用。accessToken 仅在当前进程中用于生成 API Key,不会写入配置、终端输出或日志;成功生成的 API Key 会保存至 `~/.bportal/config.json`,输出仅展示脱敏值。
|
|
48
|
+
|
|
49
|
+
若本机没有 `agentz-cli`、客户端未登录或生成失败,请改用原有 `fmc auth login --api-key <key>`,或由运行环境注入 `BPORTAL_API_KEY`。不要手动复制或提供 accessToken。
|
|
50
|
+
|
|
51
|
+
#### Examples
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
fmc auth agentz
|
|
55
|
+
```
|
|
56
|
+
|
|
38
57
|
### `fmc auth status`
|
|
39
58
|
|
|
40
59
|
| Field | Value |
|
package/skill/reference/index.md
CHANGED
|
@@ -83,7 +83,6 @@ Command **details** are in sibling `<group>.md` files in this directory.
|
|
|
83
83
|
| `fmc onboarding auth code` | 提交验证码完成实名认证(写) | [onboarding.md](onboarding.md) |
|
|
84
84
|
| `fmc onboarding auth organ` | 发起企业实名认证(写) | [onboarding.md](onboarding.md) |
|
|
85
85
|
| `fmc onboarding auth gat` | 提交港澳台/海外实名资料(写) | [onboarding.md](onboarding.md) |
|
|
86
|
-
| `fmc onboarding auth remit` | 校验对公打款金额(写) | [onboarding.md](onboarding.md) |
|
|
87
86
|
| `fmc onboarding brand list` | 查询可开通品牌 | [onboarding.md](onboarding.md) |
|
|
88
87
|
| `fmc onboarding brand open` | 开通品牌并申请合同(写) | [onboarding.md](onboarding.md) |
|
|
89
88
|
| `fmc onboarding contract list` | 查询合同列表 | [onboarding.md](onboarding.md) |
|
|
@@ -111,7 +110,7 @@ Command **details** are in sibling `<group>.md` files in this directory.
|
|
|
111
110
|
| `notice` | `list`, `detail`, `message list`, `message detail`, `message unread` | [notice.md](notice.md) |
|
|
112
111
|
| `customs` | `cargo list`, `commodity list`, `commodity detail`, `hscode search`, `registration info` | [customs.md](customs.md) |
|
|
113
112
|
| `platform` | `account list`, `sync`, `sync-record list`, `order list`, `order detail`, `order push` | [platform.md](platform.md) |
|
|
114
|
-
| `onboarding` | `progress`, `customer-type`, `auth schedule`, `auth indiv`, `auth code`, `auth organ`, `auth gat`, `
|
|
113
|
+
| `onboarding` | `progress`, `customer-type`, `auth schedule`, `auth indiv`, `auth code`, `auth organ`, `auth gat`, `brand list`, `brand open`, `contract list`, `contract url` | [onboarding.md](onboarding.md) |
|
|
115
114
|
| `update` | (no subcommand) | [update.md](update.md) |
|
|
116
115
|
| `skill` | `install`, `status`, `uninstall` | [update.md](update.md) |
|
|
117
116
|
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
| 客户类型 | 经济主体 | 认证命令 |
|
|
18
18
|
| --- | --- | --- |
|
|
19
19
|
| 中国大陆(0) | 个人 | `auth indiv` → `auth code` |
|
|
20
|
-
| 中国大陆(0) | 企业 | `auth indiv --agent` → `auth code --agent
|
|
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
|
-
|
|
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
|
-
| `--
|
|
258
|
-
| `--
|
|
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
|
-
|
|
267
|
-
|
|
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
|
-
|
|
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`
|
|
456
|
+
用 `contract list` 拿到合同编号与状态码,再 `contract url <合同编号> --status <状态码>` 继续。
|
|
441
457
|
|
|
442
458
|
#### Options
|
|
443
459
|
|
|
@@ -474,7 +490,7 @@ fmc onboarding brand open --service-code DSS \
|
|
|
474
490
|
```
|
|
475
491
|
✔ 品牌开通与合同申请已提交
|
|
476
492
|
|
|
477
|
-
用 contract list 查看合同,contract url <合同编号> 获取签署链接
|
|
493
|
+
用 contract list 查看合同,contract url <合同编号> --status <状态码> 获取签署链接
|
|
478
494
|
```
|
|
479
495
|
|
|
480
496
|
---
|
|
@@ -536,7 +552,7 @@ fmc onboarding contract list --page 2 --output json
|
|
|
536
552
|
| --- | --- |
|
|
537
553
|
| **Name** | `onboarding contract url` |
|
|
538
554
|
| **Description** | 获取合同签署链接或下载链接 |
|
|
539
|
-
| **Usage** | `fmc onboarding contract url <contractCode> [flags]` |
|
|
555
|
+
| **Usage** | `fmc onboarding contract url <contractCode> --status <status> [flags]` |
|
|
540
556
|
|
|
541
557
|
需要 API Key 认证。
|
|
542
558
|
|
|
@@ -548,17 +564,24 @@ fmc onboarding contract list --page 2 --output json
|
|
|
548
564
|
| Flag | Type | Required | Description |
|
|
549
565
|
| --- | --- | --- | --- |
|
|
550
566
|
| `<contractCode>` | string | yes | 合同编号(从 `contract list` 获取) |
|
|
567
|
+
| `--status <status>` | string | yes | 合同状态码(从 `contract list` 的状态原样传入) |
|
|
551
568
|
|
|
552
569
|
支持全局选项: `--output`, `--verbose`, `--dry-run`
|
|
553
570
|
|
|
571
|
+
`--status` 必填,且**只能取自 `contract list`**:先 `contract list` 拿到该合同的
|
|
572
|
+
`合同编号` + `状态`,再原样传进来。禁止凭猜测或为了拿签署链接而伪造状态码
|
|
573
|
+
(服务端会重新查合同详情,最终以**实际状态**决定返回签署链接还是下载链接)。
|
|
574
|
+
|
|
554
575
|
#### Examples
|
|
555
576
|
|
|
556
577
|
```bash
|
|
557
|
-
|
|
578
|
+
# 先查列表拿到编号与状态,再取链接
|
|
579
|
+
fmc onboarding contract list
|
|
580
|
+
fmc onboarding contract url CT20260801001 --status 4
|
|
558
581
|
```
|
|
559
582
|
|
|
560
583
|
```bash
|
|
561
|
-
fmc onboarding contract url CT20260801001 --output json
|
|
584
|
+
fmc onboarding contract url CT20260801001 --status 4 --output json
|
|
562
585
|
```
|
|
563
586
|
|
|
564
587
|
#### Output (text mode)
|
|
@@ -567,7 +590,11 @@ fmc onboarding contract url CT20260801001 --output json
|
|
|
567
590
|
合同链接
|
|
568
591
|
──────────────────────────────────────────────────
|
|
569
592
|
合同编号 CT20260801001
|
|
593
|
+
合同状态 签署中 (4)
|
|
570
594
|
链接 https://esign.example.com/sign/abc123
|
|
571
595
|
|
|
572
596
|
签署中的合同返回签署链接,其余状态返回下载链接;请勿频繁调用
|
|
573
597
|
```
|
|
598
|
+
|
|
599
|
+
漏传 `--status` 会被 CLI 直接拒绝(commander 报 `required option ... not specified`),
|
|
600
|
+
不会发出请求。
|