ts-glitter 19.5.2 → 19.5.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/lowcode/Entry.js CHANGED
@@ -141,7 +141,7 @@ export class Entry {
141
141
  }
142
142
  window.renderClock = (_b = window.renderClock) !== null && _b !== void 0 ? _b : createClock();
143
143
  console.log(`Entry-time:`, window.renderClock.stop());
144
- glitter.share.editerVersion = 'V_19.5.2';
144
+ glitter.share.editerVersion = 'V_19.5.3';
145
145
  glitter.share.start = new Date();
146
146
  const vm = { appConfig: [] };
147
147
  window.saasConfig = {
package/lowcode/Entry.ts CHANGED
@@ -140,7 +140,7 @@ export class Entry {
140
140
  }
141
141
  (window as any).renderClock = (window as any).renderClock ?? createClock();
142
142
  console.log(`Entry-time:`, (window as any).renderClock.stop());
143
- glitter.share.editerVersion = 'V_19.5.2';
143
+ glitter.share.editerVersion = 'V_19.5.3';
144
144
  glitter.share.start = new Date();
145
145
  const vm = { appConfig: [] };
146
146
  (window as any).saasConfig = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-glitter",
3
- "version": "19.5.2",
3
+ "version": "19.5.3",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -27,7 +27,9 @@ class PayNowLogistics {
27
27
  }))[0];
28
28
  return {
29
29
  pwd: deliveryConfig.value.pay_now.pwd,
30
- link: deliveryConfig.value.pay_now.Action === 'test' ? `https://testlogistic.paynow.com.tw` : `https://logistic.paynow.com.tw`,
30
+ link: deliveryConfig.value.pay_now.Action === 'test'
31
+ ? `https://testlogistic.paynow.com.tw`
32
+ : `https://logistic.paynow.com.tw`,
31
33
  toggle: deliveryConfig.value.pay_now.toggle,
32
34
  account: deliveryConfig.value.pay_now.account,
33
35
  sender_name: deliveryConfig.value.pay_now.SenderName,
@@ -39,16 +41,21 @@ class PayNowLogistics {
39
41
  async choseLogistics(type, return_url) {
40
42
  const key = tool_js_1.default.randomString(6);
41
43
  await redis_js_1.default.setValue('redirect_' + key, return_url);
42
- const code = await this.encrypt(process_1.default.env.logistic_apicode);
43
- const shipment_config = (await new user_js_1.User(this.app_name).getConfigV2({
44
+ const shipment_config = await new user_js_1.User(this.app_name).getConfigV2({
44
45
  key: `shipment_config_${type}`,
45
- user_id: 'manager'
46
- }));
46
+ user_id: 'manager',
47
+ });
48
+ let deliveryConfig = (await private_config_js_1.Private_config.getConfig({
49
+ appName: this.app_name,
50
+ key: 'glitter_delivery',
51
+ }))[0];
52
+ deliveryConfig = (deliveryConfig && deliveryConfig.value && deliveryConfig.value.pay_now) || {};
53
+ const code = await this.encrypt(deliveryConfig.pwd || process_1.default.env.logistic_apicode);
47
54
  const cf = {
48
- user_account: process_1.default.env.logistic_account,
55
+ user_account: deliveryConfig.account || process_1.default.env.logistic_account,
49
56
  apicode: encodeURIComponent(code),
50
57
  Logistic_serviceID: (() => {
51
- const paynow_id = shipment_config_js_1.ShipmentConfig.list.find((dd) => {
58
+ const paynow_id = shipment_config_js_1.ShipmentConfig.list.find(dd => {
52
59
  return dd.value === type;
53
60
  }).paynow_id;
54
61
  if (shipment_config.bulk) {
@@ -72,20 +79,23 @@ class PayNowLogistics {
72
79
  return paynow_id;
73
80
  }
74
81
  })(),
75
- returnUrl: `${process_1.default.env.DOMAIN}/api-public/v1/ec/logistics/redirect?g-app=${this.app_name}&return=${key}`
82
+ returnUrl: `${process_1.default.env.DOMAIN}/api-public/v1/ec/logistics/redirect?g-app=${this.app_name}&return=${key}`,
76
83
  };
77
- console.log(`Logistic_serviceID`, cf.Logistic_serviceID);
78
84
  return html `
79
- <form action="https://logistic.paynow.com.tw/Member/Order/Choselogistics" method="post"
80
- enctype="application/x-www-form-urlencoded"
81
- accept="text/html">
82
- ${Object.keys(cf).map((dd) => {
85
+ <form
86
+ action="https://logistic.paynow.com.tw/Member/Order/Choselogistics"
87
+ method="post"
88
+ enctype="application/x-www-form-urlencoded"
89
+ accept="text/html"
90
+ >
91
+ ${Object.keys(cf)
92
+ .map(dd => {
83
93
  return `<input type="hidden" name="${dd}" id="${dd}" value="${cf[dd]}"/>`;
84
- }).join('\n')}
85
- <button type="submit" class="btn btn-secondary custom-btn beside-btn d-none" id="submit"
86
- hidden></button>
87
- </form>
88
- `;
94
+ })
95
+ .join('\n')}
96
+ <button type="submit" class="btn btn-secondary custom-btn beside-btn d-none" id="submit" hidden></button>
97
+ </form>
98
+ `;
89
99
  }
90
100
  async deleteLogOrder(orderNO, logisticNumber, totalAmount) {
91
101
  const l_config = await this.config();
@@ -93,9 +103,9 @@ class PayNowLogistics {
93
103
  const data = {
94
104
  LogisticNumber: logisticNumber,
95
105
  sno: 1,
96
- PassCode: await this.sha1Encrypt([l_config.account, orderNO, totalAmount, l_config.pwd].join(''))
106
+ PassCode: await this.sha1Encrypt([l_config.account, orderNO, totalAmount, l_config.pwd].join('')),
97
107
  };
98
- Object.keys(data).map((dd) => {
108
+ Object.keys(data).map(dd => {
99
109
  data[dd] = `${data[dd]}`;
100
110
  });
101
111
  const config = {
@@ -103,22 +113,22 @@ class PayNowLogistics {
103
113
  maxBodyLength: Infinity,
104
114
  url: url,
105
115
  headers: {
106
- 'Content-Type': 'application/JSON'
116
+ 'Content-Type': 'application/JSON',
107
117
  },
108
- data: data
118
+ data: data,
109
119
  };
110
120
  const response = await (0, axios_1.default)(config);
111
121
  console.log(`response_data==>`, response.data);
112
- if (response.data && !(response.data.includes('已繳費')) && !(response.data.includes('已寄件'))) {
122
+ if (response.data && !response.data.includes('已繳費') && !response.data.includes('已寄件')) {
113
123
  const order = (await database_js_1.default.query(`select *
114
- from \`${this.app_name}\`.t_checkout
115
- where cart_token = ?`, [orderNO]))[0];
124
+ from \`${this.app_name}\`.t_checkout
125
+ where cart_token = ?`, [orderNO]))[0];
116
126
  delete order.orderData.user_info.shipment_number;
117
127
  delete order.orderData.user_info.shipment_refer;
118
128
  await new shopping_js_1.Shopping(this.app_name).putOrder({
119
129
  cart_token: orderNO,
120
130
  orderData: order.orderData,
121
- status: undefined
131
+ status: undefined,
122
132
  });
123
133
  }
124
134
  return response.data;
@@ -132,8 +142,8 @@ class PayNowLogistics {
132
142
  maxBodyLength: Infinity,
133
143
  url: url,
134
144
  headers: {
135
- 'Content-Type': 'application/JSON'
136
- }
145
+ 'Content-Type': 'application/JSON',
146
+ },
137
147
  };
138
148
  const response = await (0, axios_1.default)(config);
139
149
  return response.data;
@@ -141,19 +151,19 @@ class PayNowLogistics {
141
151
  catch (e) {
142
152
  console.log(e);
143
153
  return {
144
- status: e.status
154
+ status: e.status,
145
155
  };
146
156
  }
147
157
  }
148
158
  async printLogisticsOrder(carData) {
149
159
  const l_config = await this.config();
150
160
  const url = `${l_config.link}/api/Orderapi/Add_Order`;
151
- const shipment_config = (await new user_js_1.User(this.app_name).getConfigV2({
161
+ const shipment_config = await new user_js_1.User(this.app_name).getConfigV2({
152
162
  key: `shipment_config_${carData.user_info.shipment}`,
153
- user_id: 'manager'
154
- }));
163
+ user_id: 'manager',
164
+ });
155
165
  const service = (() => {
156
- const paynow_id = shipment_config_js_1.ShipmentConfig.list.find((dd) => {
166
+ const paynow_id = shipment_config_js_1.ShipmentConfig.list.find(dd => {
157
167
  return dd.value === carData.user_info.shipment;
158
168
  }).paynow_id;
159
169
  if (shipment_config.bulk) {
@@ -184,7 +194,7 @@ class PayNowLogistics {
184
194
  apicode: l_config.pwd,
185
195
  Logistic_service: service,
186
196
  OrderNo: carData.orderID,
187
- DeliverMode: (carData.customer_info.payment_select == 'cash_on_delivery') ? '01' : '02',
197
+ DeliverMode: carData.customer_info.payment_select == 'cash_on_delivery' ? '01' : '02',
188
198
  TotalAmount: carData.total,
189
199
  receiver_storeid: carData.user_info.CVSStoreID,
190
200
  receiver_storename: carData.user_info.CVSStoreName,
@@ -211,9 +221,9 @@ class PayNowLogistics {
211
221
  return '0003';
212
222
  }
213
223
  })(),
214
- "Remark": "",
215
- "Description": "",
216
- PassCode: await this.sha1Encrypt([l_config.account, carData.orderID, carData.total, l_config.pwd].join(''))
224
+ Remark: '',
225
+ Description: '',
226
+ PassCode: await this.sha1Encrypt([l_config.account, carData.orderID, carData.total, l_config.pwd].join('')),
217
227
  };
218
228
  }
219
229
  else {
@@ -222,7 +232,7 @@ class PayNowLogistics {
222
232
  apicode: l_config.pwd,
223
233
  Logistic_service: service,
224
234
  OrderNo: carData.orderID,
225
- DeliverMode: (carData.customer_info.payment_select == 'cash_on_delivery') ? '01' : '02',
235
+ DeliverMode: carData.customer_info.payment_select == 'cash_on_delivery' ? '01' : '02',
226
236
  TotalAmount: carData.total,
227
237
  receiver_storeid: carData.user_info.CVSStoreID,
228
238
  receiver_storename: carData.user_info.CVSStoreName,
@@ -235,9 +245,9 @@ class PayNowLogistics {
235
245
  Sender_Phone: l_config.sender_phone,
236
246
  Sender_Email: l_config.sender_email,
237
247
  Sender_address: l_config.sender_address,
238
- "Remark": "",
239
- "Description": "",
240
- PassCode: await this.sha1Encrypt([l_config.account, carData.orderID, carData.total, l_config.pwd].join(''))
248
+ Remark: '',
249
+ Description: '',
250
+ PassCode: await this.sha1Encrypt([l_config.account, carData.orderID, carData.total, l_config.pwd].join('')),
241
251
  };
242
252
  }
243
253
  })();
@@ -252,7 +262,7 @@ class PayNowLogistics {
252
262
  else if (['02', '22', '04', '24'].includes(service)) {
253
263
  data.Deadline = getDaysDifference(new Date(), new Date(carData.user_info.shipment_date));
254
264
  }
255
- Object.keys(data).map((dd) => {
265
+ Object.keys(data).map(dd => {
256
266
  data[dd] = `${data[dd]}`;
257
267
  });
258
268
  const config = {
@@ -260,11 +270,11 @@ class PayNowLogistics {
260
270
  maxBodyLength: Infinity,
261
271
  url: url,
262
272
  headers: {
263
- 'Content-Type': 'application/JSON'
273
+ 'Content-Type': 'application/JSON',
264
274
  },
265
275
  data: {
266
- JsonOrder: await this.encrypt(JSON.stringify(data))
267
- }
276
+ JsonOrder: await this.encrypt(JSON.stringify(data)),
277
+ },
268
278
  };
269
279
  const response = await (0, axios_1.default)(config);
270
280
  console.log(`response_data==>`, response.data);
@@ -272,12 +282,12 @@ class PayNowLogistics {
272
282
  }
273
283
  async encrypt(content) {
274
284
  try {
275
- var ivbyte = crypto_js_1.default.enc.Utf8.parse("12345678");
285
+ var ivbyte = crypto_js_1.default.enc.Utf8.parse('12345678');
276
286
  console.log(`ivbyte=>`, ivbyte);
277
- const encrypted = crypto_js_1.default.TripleDES.encrypt(crypto_js_1.default.enc.Utf8.parse(content), crypto_js_1.default.enc.Utf8.parse("123456789070828783123456"), {
287
+ const encrypted = crypto_js_1.default.TripleDES.encrypt(crypto_js_1.default.enc.Utf8.parse(content), crypto_js_1.default.enc.Utf8.parse('123456789070828783123456'), {
278
288
  iv: ivbyte,
279
289
  mode: crypto_js_1.default.mode.ECB,
280
- padding: crypto_js_1.default.pad.ZeroPadding
290
+ padding: crypto_js_1.default.pad.ZeroPadding,
281
291
  });
282
292
  return encrypted.toString();
283
293
  }
@@ -1 +1 @@
1
- {"version":3,"file":"paynow-logistics.js","sourceRoot":"","sources":["paynow-logistics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paynow-logistics.js","sourceRoot":"","sources":["paynow-logistics.ts"],"names":[],"mappings":"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"}
@@ -1,312 +1,325 @@
1
- import tool from "../../modules/tool.js";
2
- import redis from "../../modules/redis.js";
3
- import process from "process";
4
- import CryptoJS from "crypto-js";
5
- import {createHash} from "crypto";
6
- import {Private_config} from "../../services/private_config.js";
7
- import {ShipmentConfig} from "../config/shipment-config.js";
8
- import axios from "axios";
9
- import db from "../../modules/database.js";
1
+ import tool from '../../modules/tool.js';
2
+ import redis from '../../modules/redis.js';
3
+ import process from 'process';
4
+ import CryptoJS from 'crypto-js';
5
+ import { createHash } from 'crypto';
6
+ import { Private_config } from '../../services/private_config.js';
7
+ import { ShipmentConfig } from '../config/shipment-config.js';
8
+ import axios from 'axios';
9
+ import db from '../../modules/database.js';
10
10
  import { CheckoutService } from './checkout.js';
11
11
  import { Shopping } from './shopping.js';
12
12
  import { User } from './user.js';
13
13
 
14
- const html = String.raw
14
+ const html = String.raw;
15
15
 
16
16
  export class PayNowLogistics {
17
- app_name: string
17
+ app_name: string;
18
18
 
19
- constructor(app_name: string) {
20
- this.app_name = app_name
21
- }
19
+ constructor(app_name: string) {
20
+ this.app_name = app_name;
21
+ }
22
22
 
23
- async config() {
24
- const deliveryConfig = (
25
- await Private_config.getConfig({
26
- appName: this.app_name,
27
- key: 'glitter_delivery',
28
- })
29
- )[0];
23
+ async config() {
24
+ const deliveryConfig = (
25
+ await Private_config.getConfig({
26
+ appName: this.app_name,
27
+ key: 'glitter_delivery',
28
+ })
29
+ )[0];
30
30
 
31
- return {
32
- pwd: deliveryConfig.value.pay_now.pwd,
33
- link: deliveryConfig.value.pay_now.Action === 'test' ? `https://testlogistic.paynow.com.tw` : `https://logistic.paynow.com.tw`,
34
- toggle: deliveryConfig.value.pay_now.toggle,
35
- account: deliveryConfig.value.pay_now.account,
36
- sender_name: deliveryConfig.value.pay_now.SenderName,
37
- sender_phone: deliveryConfig.value.pay_now.SenderCellPhone,
38
- sender_address: deliveryConfig.value.pay_now.SenderAddress,
39
- sender_email: deliveryConfig.value.pay_now.SenderEmail,
40
- }
41
- }
31
+ return {
32
+ pwd: deliveryConfig.value.pay_now.pwd,
33
+ link:
34
+ deliveryConfig.value.pay_now.Action === 'test'
35
+ ? `https://testlogistic.paynow.com.tw`
36
+ : `https://logistic.paynow.com.tw`,
37
+ toggle: deliveryConfig.value.pay_now.toggle,
38
+ account: deliveryConfig.value.pay_now.account,
39
+ sender_name: deliveryConfig.value.pay_now.SenderName,
40
+ sender_phone: deliveryConfig.value.pay_now.SenderCellPhone,
41
+ sender_address: deliveryConfig.value.pay_now.SenderAddress,
42
+ sender_email: deliveryConfig.value.pay_now.SenderEmail,
43
+ };
44
+ }
42
45
 
43
- //超商選擇門市
44
- async choseLogistics(type: string, return_url: string) {
45
- const key = tool.randomString(6)
46
- await redis.setValue('redirect_' + key, return_url)
47
- const code = await this.encrypt(process.env.logistic_apicode as string)
48
- const shipment_config=(await new User(this.app_name).getConfigV2({
49
- key:`shipment_config_${type}`,
50
- user_id:'manager'
51
- }))
46
+ //超商選擇門市
47
+ async choseLogistics(type: string, return_url: string) {
48
+ const key = tool.randomString(6);
49
+ await redis.setValue('redirect_' + key, return_url);
50
+ const shipment_config = await new User(this.app_name).getConfigV2({
51
+ key: `shipment_config_${type}`,
52
+ user_id: 'manager',
53
+ });
54
+ let deliveryConfig = (
55
+ await Private_config.getConfig({
56
+ appName: this.app_name,
57
+ key: 'glitter_delivery',
58
+ })
59
+ )[0];
60
+ deliveryConfig = (deliveryConfig && deliveryConfig.value && deliveryConfig.value.pay_now) || {};
52
61
 
53
-
54
- const cf: any = {
55
- user_account: process.env.logistic_account,
56
- apicode: encodeURIComponent(code as string),
57
- Logistic_serviceID: (()=>{
58
- const paynow_id=ShipmentConfig.list.find((dd) => {
59
- return dd.value === type
60
- })!!.paynow_id;
61
- if (shipment_config.bulk){
62
- if(paynow_id==='01'){
63
- return '02'
64
- }else if(paynow_id==='21'){
65
- return '22'
66
- }else if(paynow_id==='03'){
67
- return '04'
68
- }else if(paynow_id==='23'){
69
- return '24'
70
- }else{
71
- return `-1`
72
- }
73
- }else{
74
- return paynow_id
75
- }
76
- })(),
77
- returnUrl: `${process.env.DOMAIN}/api-public/v1/ec/logistics/redirect?g-app=${this.app_name}&return=${key}`
62
+ const code = await this.encrypt(deliveryConfig.pwd || (process.env.logistic_apicode as string));
63
+ const cf: any = {
64
+ user_account: deliveryConfig.account || process.env.logistic_account,
65
+ apicode: encodeURIComponent(code as string),
66
+ Logistic_serviceID: (() => {
67
+ const paynow_id = ShipmentConfig.list.find(dd => {
68
+ return dd.value === type;
69
+ })!!.paynow_id;
70
+ if (shipment_config.bulk) {
71
+ if (paynow_id === '01') {
72
+ return '02';
73
+ } else if (paynow_id === '21') {
74
+ return '22';
75
+ } else if (paynow_id === '03') {
76
+ return '04';
77
+ } else if (paynow_id === '23') {
78
+ return '24';
79
+ } else {
80
+ return `-1`;
81
+ }
82
+ } else {
83
+ return paynow_id;
78
84
  }
79
- console.log(`Logistic_serviceID`,cf.Logistic_serviceID)
80
- return html`
81
- <form action="https://logistic.paynow.com.tw/Member/Order/Choselogistics" method="post"
82
- enctype="application/x-www-form-urlencoded"
83
- accept="text/html">
84
- ${Object.keys(cf).map((dd) => {
85
- return `<input type="hidden" name="${dd}" id="${dd}" value="${cf[dd]}"/>`
86
- }).join('\n')}
87
- <button type="submit" class="btn btn-secondary custom-btn beside-btn d-none" id="submit"
88
- hidden></button>
89
- </form>
90
- `
91
- }
92
-
93
- //取消托運單
94
- async deleteLogOrder(orderNO: string, logisticNumber: string, totalAmount: string) {
85
+ })(),
86
+ returnUrl: `${process.env.DOMAIN}/api-public/v1/ec/logistics/redirect?g-app=${this.app_name}&return=${key}`,
87
+ };
88
+ // console.log(`Logistic_serviceID`,cf.Logistic_serviceID)
89
+ return html`
90
+ <form
91
+ action="https://logistic.paynow.com.tw/Member/Order/Choselogistics"
92
+ method="post"
93
+ enctype="application/x-www-form-urlencoded"
94
+ accept="text/html"
95
+ >
96
+ ${Object.keys(cf)
97
+ .map(dd => {
98
+ return `<input type="hidden" name="${dd}" id="${dd}" value="${cf[dd]}"/>`;
99
+ })
100
+ .join('\n')}
101
+ <button type="submit" class="btn btn-secondary custom-btn beside-btn d-none" id="submit" hidden></button>
102
+ </form>
103
+ `;
104
+ }
95
105
 
96
- const l_config = await this.config()
97
- const url = `${l_config.link}/api/Orderapi/CancelOrder`;
98
- const data: any = {
99
- LogisticNumber: logisticNumber,
100
- sno: 1,
101
- PassCode: await this.sha1Encrypt([l_config.account, orderNO, totalAmount, l_config.pwd].join(''))
102
- }
103
- //轉成純字串
104
- Object.keys(data).map((dd) => {
105
- data[dd] = `${data[dd]}`
106
- })
107
- const config = {
108
- method: 'delete',
109
- maxBodyLength: Infinity,
110
- url: url,
111
- headers: {
112
- 'Content-Type': 'application/JSON'
113
- },
114
- data: data
115
- };
116
- const response = await axios(config)
117
- console.log(`response_data==>`, response.data)
118
- if (response.data && !(response.data.includes('已繳費')) && !(response.data.includes('已寄件'))) {
119
- const order = (await db.query(`select *
120
- from \`${this.app_name}\`.t_checkout
121
- where cart_token = ?`, [orderNO]))[0]
122
- delete order.orderData.user_info.shipment_number;
123
- delete order.orderData.user_info.shipment_refer;
124
- await new Shopping(this.app_name).putOrder({
125
- cart_token:orderNO,
126
- orderData:order.orderData,
127
- status:undefined
128
- })
129
- }
130
- return response.data;
106
+ //取消托運單
107
+ async deleteLogOrder(orderNO: string, logisticNumber: string, totalAmount: string) {
108
+ const l_config = await this.config();
109
+ const url = `${l_config.link}/api/Orderapi/CancelOrder`;
110
+ const data: any = {
111
+ LogisticNumber: logisticNumber,
112
+ sno: 1,
113
+ PassCode: await this.sha1Encrypt([l_config.account, orderNO, totalAmount, l_config.pwd].join('')),
114
+ };
115
+ //轉成純字串
116
+ Object.keys(data).map(dd => {
117
+ data[dd] = `${data[dd]}`;
118
+ });
119
+ const config = {
120
+ method: 'delete',
121
+ maxBodyLength: Infinity,
122
+ url: url,
123
+ headers: {
124
+ 'Content-Type': 'application/JSON',
125
+ },
126
+ data: data,
127
+ };
128
+ const response = await axios(config);
129
+ console.log(`response_data==>`, response.data);
130
+ if (response.data && !response.data.includes('已繳費') && !response.data.includes('已寄件')) {
131
+ const order = (
132
+ await db.query(
133
+ `select *
134
+ from \`${this.app_name}\`.t_checkout
135
+ where cart_token = ?`,
136
+ [orderNO]
137
+ )
138
+ )[0];
139
+ delete order.orderData.user_info.shipment_number;
140
+ delete order.orderData.user_info.shipment_refer;
141
+ await new Shopping(this.app_name).putOrder({
142
+ cart_token: orderNO,
143
+ orderData: order.orderData,
144
+ status: undefined,
145
+ });
131
146
  }
147
+ return response.data;
148
+ }
132
149
 
133
- //查詢物流單
134
- async getOrderInfo(orderNO: string) {
135
- try {
136
- const l_config = await this.config()
137
- const url = `${l_config.link}/api/Orderapi/Get_Order_Info_orderno?orderno=${orderNO}&user_account=${l_config.account}&sno=1`;
138
- const config = {
139
- method: 'get',
140
- maxBodyLength: Infinity,
141
- url: url,
142
- headers: {
143
- 'Content-Type': 'application/JSON'
144
- }
145
- };
146
- const response = await axios(config)
147
- return response.data;
148
- } catch (e: any) {
149
- console.log(e)
150
- return {
151
- status: e.status
152
- }
153
- }
150
+ //查詢物流單
151
+ async getOrderInfo(orderNO: string) {
152
+ try {
153
+ const l_config = await this.config();
154
+ const url = `${l_config.link}/api/Orderapi/Get_Order_Info_orderno?orderno=${orderNO}&user_account=${l_config.account}&sno=1`;
155
+ const config = {
156
+ method: 'get',
157
+ maxBodyLength: Infinity,
158
+ url: url,
159
+ headers: {
160
+ 'Content-Type': 'application/JSON',
161
+ },
162
+ };
163
+ const response = await axios(config);
164
+ return response.data;
165
+ } catch (e: any) {
166
+ console.log(e);
167
+ return {
168
+ status: e.status,
169
+ };
154
170
  }
171
+ }
155
172
 
156
- //列印托運單
157
- async printLogisticsOrder(carData: any) {
158
-
159
- const l_config = await this.config()
160
- const url = `${l_config.link}/api/Orderapi/Add_Order`;
161
- const shipment_config=(await new User(this.app_name).getConfigV2({
162
- key:`shipment_config_${carData.user_info.shipment}`,
163
- user_id:'manager'
164
- }))
165
- const service = (()=>{
166
- const paynow_id=ShipmentConfig.list.find((dd) => {
167
- return dd.value === carData.user_info.shipment
168
- })!!.paynow_id;
169
- if (shipment_config.bulk){
170
- if(paynow_id==='01'){
171
- return '02'
172
- }else if(paynow_id==='21'){
173
- return '22'
174
- }else if(paynow_id==='03'){
175
- return '04'
176
- }else if(paynow_id==='23'){
177
- return '24'
178
- }else{
179
- return `-1`
180
- }
181
- }else{
182
- return paynow_id
183
- }
184
- })()
185
-
186
-
187
-
188
- const data: any = await (async () => {
189
- if (service === '36') {
190
- return {
191
- user_account: l_config.account,
192
- apicode: l_config.pwd,
193
- Logistic_service: service,
194
- OrderNo: carData.orderID,
195
- DeliverMode: (carData.customer_info.payment_select == 'cash_on_delivery') ? '01' : '02',
196
- TotalAmount: carData.total,
197
- receiver_storeid: carData.user_info.CVSStoreID,
198
- receiver_storename: carData.user_info.CVSStoreName,
199
- return_storeid: '',
200
- Receiver_Name: carData.user_info.name,
201
- Receiver_Phone: carData.user_info.phone,
202
- Receiver_Email: carData.user_info.email,
203
- Receiver_address: carData.user_info.address,
204
- Sender_Name: l_config.sender_name,
205
- Sender_Phone: l_config.sender_phone,
206
- Sender_Email: l_config.sender_email,
207
- Sender_address: l_config.sender_address,
208
- Length:carData.user_info.length,
209
- Wide:carData.user_info.wide,
210
- High:carData.user_info.high,
211
- Weight:carData.user_info.weight,
212
- DeliveryType:(()=>{
213
- switch (carData.user_info.shipment){
214
- case 'black_cat':
215
- return '0001'
216
- case 'black_cat_ice':
217
- return '0002';
218
- case 'black_cat_freezing':
219
- return '0003';
220
- }
221
- })(),
222
- "Remark": "",
223
- "Description": "",
224
- PassCode: await this.sha1Encrypt([l_config.account, carData.orderID, carData.total, l_config.pwd].join(''))
225
- }
226
- } else {
227
- return {
228
- user_account: l_config.account,
229
- apicode: l_config.pwd,
230
- Logistic_service: service,
231
- OrderNo: carData.orderID,
232
- DeliverMode: (carData.customer_info.payment_select == 'cash_on_delivery') ? '01' : '02',
233
- TotalAmount: carData.total,
234
- receiver_storeid: carData.user_info.CVSStoreID,
235
- receiver_storename: carData.user_info.CVSStoreName,
236
- return_storeid: '',
237
- Receiver_Name: carData.user_info.name,
238
- Receiver_Phone: carData.user_info.phone,
239
- Receiver_Email: carData.user_info.email,
240
- Receiver_address: carData.user_info.CVSAddress,
241
- Sender_Name: l_config.sender_name,
242
- Sender_Phone: l_config.sender_phone,
243
- Sender_Email: l_config.sender_email,
244
- Sender_address: l_config.sender_address,
245
- "Remark": "",
246
- "Description": "",
247
- PassCode: await this.sha1Encrypt([l_config.account, carData.orderID, carData.total, l_config.pwd].join(''))
248
- }
249
- }
250
- })();
251
- function getDaysDifference(date1:Date, date2:Date) {
252
- // 獲取毫秒時間戳,使用 Math.abs() 確保不受前後順序影響
253
- const timeDifference = Math.abs(date2.getTime() - date1.getTime());
254
- // 將毫秒轉換為天數 (1 天 = 1000 毫秒 * 60 秒 * 60 分鐘 * 24 小時)
255
- const daysDifference = Math.ceil(timeDifference / (1000 * 60 * 60 * 24));
256
- return daysDifference;
173
+ //列印托運單
174
+ async printLogisticsOrder(carData: any) {
175
+ const l_config = await this.config();
176
+ const url = `${l_config.link}/api/Orderapi/Add_Order`;
177
+ const shipment_config = await new User(this.app_name).getConfigV2({
178
+ key: `shipment_config_${carData.user_info.shipment}`,
179
+ user_id: 'manager',
180
+ });
181
+ const service = (() => {
182
+ const paynow_id = ShipmentConfig.list.find(dd => {
183
+ return dd.value === carData.user_info.shipment;
184
+ })!!.paynow_id;
185
+ if (shipment_config.bulk) {
186
+ if (paynow_id === '01') {
187
+ return '02';
188
+ } else if (paynow_id === '21') {
189
+ return '22';
190
+ } else if (paynow_id === '03') {
191
+ return '04';
192
+ } else if (paynow_id === '23') {
193
+ return '24';
194
+ } else {
195
+ return `-1`;
257
196
  }
197
+ } else {
198
+ return paynow_id;
199
+ }
200
+ })();
258
201
 
259
- if (service === '36') {
260
- data.Deadline = '0'
261
- }else if(['02','22','04','24'].includes(service as string)){
262
- data.Deadline=getDaysDifference(
263
- new Date()
264
- ,new Date(carData.user_info.shipment_date))
265
- }
266
- //轉成純字串
267
- Object.keys(data).map((dd) => {
268
- data[dd] = `${data[dd]}`
269
- })
270
- const config = {
271
- method: 'post',
272
- maxBodyLength: Infinity,
273
- url: url,
274
- headers: {
275
- 'Content-Type': 'application/JSON'
276
- },
277
- data: {
278
- JsonOrder: await this.encrypt(JSON.stringify(data))
202
+ const data: any = await (async () => {
203
+ if (service === '36') {
204
+ return {
205
+ user_account: l_config.account,
206
+ apicode: l_config.pwd,
207
+ Logistic_service: service,
208
+ OrderNo: carData.orderID,
209
+ DeliverMode: carData.customer_info.payment_select == 'cash_on_delivery' ? '01' : '02',
210
+ TotalAmount: carData.total,
211
+ receiver_storeid: carData.user_info.CVSStoreID,
212
+ receiver_storename: carData.user_info.CVSStoreName,
213
+ return_storeid: '',
214
+ Receiver_Name: carData.user_info.name,
215
+ Receiver_Phone: carData.user_info.phone,
216
+ Receiver_Email: carData.user_info.email,
217
+ Receiver_address: carData.user_info.address,
218
+ Sender_Name: l_config.sender_name,
219
+ Sender_Phone: l_config.sender_phone,
220
+ Sender_Email: l_config.sender_email,
221
+ Sender_address: l_config.sender_address,
222
+ Length: carData.user_info.length,
223
+ Wide: carData.user_info.wide,
224
+ High: carData.user_info.high,
225
+ Weight: carData.user_info.weight,
226
+ DeliveryType: (() => {
227
+ switch (carData.user_info.shipment) {
228
+ case 'black_cat':
229
+ return '0001';
230
+ case 'black_cat_ice':
231
+ return '0002';
232
+ case 'black_cat_freezing':
233
+ return '0003';
279
234
  }
235
+ })(),
236
+ Remark: '',
237
+ Description: '',
238
+ PassCode: await this.sha1Encrypt([l_config.account, carData.orderID, carData.total, l_config.pwd].join('')),
280
239
  };
281
- const response = await axios(config)
282
- console.log(`response_data==>`, response.data)
283
- return response.data;
284
- }
285
-
286
- async encrypt(content: string) {
287
-
288
- try {
289
- var ivbyte = CryptoJS.enc.Utf8.parse("12345678");
290
- console.log(`ivbyte=>`, ivbyte)
291
- const encrypted = CryptoJS.TripleDES.encrypt(CryptoJS.enc.Utf8.parse(content), CryptoJS.enc.Utf8.parse("123456789070828783123456"), {
292
- iv: ivbyte, // 当 mode 为 CBC 时,偏移量必传
293
- mode: CryptoJS.mode.ECB,
294
- padding: CryptoJS.pad.ZeroPadding
295
- });
296
- // mBcTYds3zPQ=
297
- // tB5BKj5AMGw=
298
- // W1BhPWN3FAI= 這是對的
299
- return encrypted.toString();
300
- } catch (e) {
301
- console.error(e)
302
- }
240
+ } else {
241
+ return {
242
+ user_account: l_config.account,
243
+ apicode: l_config.pwd,
244
+ Logistic_service: service,
245
+ OrderNo: carData.orderID,
246
+ DeliverMode: carData.customer_info.payment_select == 'cash_on_delivery' ? '01' : '02',
247
+ TotalAmount: carData.total,
248
+ receiver_storeid: carData.user_info.CVSStoreID,
249
+ receiver_storename: carData.user_info.CVSStoreName,
250
+ return_storeid: '',
251
+ Receiver_Name: carData.user_info.name,
252
+ Receiver_Phone: carData.user_info.phone,
253
+ Receiver_Email: carData.user_info.email,
254
+ Receiver_address: carData.user_info.CVSAddress,
255
+ Sender_Name: l_config.sender_name,
256
+ Sender_Phone: l_config.sender_phone,
257
+ Sender_Email: l_config.sender_email,
258
+ Sender_address: l_config.sender_address,
259
+ Remark: '',
260
+ Description: '',
261
+ PassCode: await this.sha1Encrypt([l_config.account, carData.orderID, carData.total, l_config.pwd].join('')),
262
+ };
263
+ }
264
+ })();
303
265
 
266
+ function getDaysDifference(date1: Date, date2: Date) {
267
+ // 獲取毫秒時間戳,使用 Math.abs() 確保不受前後順序影響
268
+ const timeDifference = Math.abs(date2.getTime() - date1.getTime());
269
+ // 將毫秒轉換為天數 (1 天 = 1000 毫秒 * 60 秒 * 60 分鐘 * 24 小時)
270
+ const daysDifference = Math.ceil(timeDifference / (1000 * 60 * 60 * 24));
271
+ return daysDifference;
304
272
  }
305
273
 
306
- async sha1Encrypt(data: string) {
307
- const hash = createHash('sha1').update(data, 'utf8').digest('hex');
308
- return hash.toUpperCase();
274
+ if (service === '36') {
275
+ data.Deadline = '0';
276
+ } else if (['02', '22', '04', '24'].includes(service as string)) {
277
+ data.Deadline = getDaysDifference(new Date(), new Date(carData.user_info.shipment_date));
309
278
  }
279
+ //轉成純字串
280
+ Object.keys(data).map(dd => {
281
+ data[dd] = `${data[dd]}`;
282
+ });
283
+ const config = {
284
+ method: 'post',
285
+ maxBodyLength: Infinity,
286
+ url: url,
287
+ headers: {
288
+ 'Content-Type': 'application/JSON',
289
+ },
290
+ data: {
291
+ JsonOrder: await this.encrypt(JSON.stringify(data)),
292
+ },
293
+ };
294
+ const response = await axios(config);
295
+ console.log(`response_data==>`, response.data);
296
+ return response.data;
297
+ }
310
298
 
299
+ async encrypt(content: string) {
300
+ try {
301
+ var ivbyte = CryptoJS.enc.Utf8.parse('12345678');
302
+ console.log(`ivbyte=>`, ivbyte);
303
+ const encrypted = CryptoJS.TripleDES.encrypt(
304
+ CryptoJS.enc.Utf8.parse(content),
305
+ CryptoJS.enc.Utf8.parse('123456789070828783123456'),
306
+ {
307
+ iv: ivbyte, // 当 mode 为 CBC 时,偏移量必传
308
+ mode: CryptoJS.mode.ECB,
309
+ padding: CryptoJS.pad.ZeroPadding,
310
+ }
311
+ );
312
+ // mBcTYds3zPQ=
313
+ // tB5BKj5AMGw=
314
+ // W1BhPWN3FAI= 這是對的
315
+ return encrypted.toString();
316
+ } catch (e) {
317
+ console.error(e);
318
+ }
319
+ }
311
320
 
312
- }
321
+ async sha1Encrypt(data: string) {
322
+ const hash = createHash('sha1').update(data, 'utf8').digest('hex');
323
+ return hash.toUpperCase();
324
+ }
325
+ }