|
@@ -15,6 +15,7 @@ const QUERY_URL = '/api/v3/bra/query/collectingOrder'
|
|
const BALANCE_URL = '/api/v3/bra/query/balance'
|
|
const BALANCE_URL = '/api/v3/bra/query/balance'
|
|
const BANK_URL = '/api/v3/bra/query/bank';
|
|
const BANK_URL = '/api/v3/bra/query/bank';
|
|
const WITHDRAW_URL = '/api/v3/bra/createTransferOrder';
|
|
const WITHDRAW_URL = '/api/v3/bra/createTransferOrder';
|
|
|
|
+const QUERY_WITHDRAW_URL = '/api/v3/bra/query/transferOrder'
|
|
|
|
|
|
const NOTIFY_HOST = `http://157.175.73.225/api/admin/dj/open/hambit/bra/notifyOrder`;
|
|
const NOTIFY_HOST = `http://157.175.73.225/api/admin/dj/open/hambit/bra/notifyOrder`;
|
|
const WITHDRAW_NOTIFY_HOST = `http://157.175.73.225/api/admin/dj/open/hambit/bra/notifyWithdraw`;
|
|
const WITHDRAW_NOTIFY_HOST = `http://157.175.73.225/api/admin/dj/open/hambit/bra/notifyWithdraw`;
|
|
@@ -228,30 +229,34 @@ export class HambitBraService extends BaseService {
|
|
}
|
|
}
|
|
});
|
|
});
|
|
this.logger.info('代付接口返回', param, JSON.stringify(res.data));
|
|
this.logger.info('代付接口返回', param, JSON.stringify(res.data));
|
|
- const { success, msg, data } = res.data;
|
|
|
|
|
|
+ const { success, msg, desc, data } = res.data;
|
|
if (success && data.orderId) {
|
|
if (success && data.orderId) {
|
|
return {
|
|
return {
|
|
|
|
+ status: 2,
|
|
traceNo: data.orderId
|
|
traceNo: data.orderId
|
|
};
|
|
};
|
|
} else {
|
|
} else {
|
|
- throw new Error(msg);
|
|
|
|
|
|
+ return {
|
|
|
|
+ status: 3,
|
|
|
|
+ message: desc || msg
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
async handleWithdrawNotify(payload, headers) {
|
|
async handleWithdrawNotify(payload, headers) {
|
|
- // const sign = headers['sign'];
|
|
|
|
- // const timestamp = headers['timestamp'];
|
|
|
|
- // const nonce = headers['nonce'];
|
|
|
|
- // const signStr = this.utils.signSort({
|
|
|
|
- // timestamp,
|
|
|
|
- // nonce,
|
|
|
|
- // access_key: ACCESS_KEY,
|
|
|
|
- // ...payload
|
|
|
|
- // });
|
|
|
|
- // const validSign = this.utils.signByHmacSha1(signStr, SECRET_KEY);
|
|
|
|
- // if (sign !== validSign) {
|
|
|
|
- // throw new Error('sign error');
|
|
|
|
- // }
|
|
|
|
|
|
+ const sign = headers['sign'];
|
|
|
|
+ const timestamp = headers['timestamp'];
|
|
|
|
+ const nonce = headers['nonce'];
|
|
|
|
+ const signStr = this.utils.signSort({
|
|
|
|
+ timestamp,
|
|
|
|
+ nonce,
|
|
|
|
+ access_key: ACCESS_KEY,
|
|
|
|
+ ...payload
|
|
|
|
+ });
|
|
|
|
+ const validSign = this.utils.signByHmacSha1(signStr, SECRET_KEY);
|
|
|
|
+ if (sign !== validSign) {
|
|
|
|
+ throw new Error('sign error');
|
|
|
|
+ }
|
|
if (+payload.orderStatusCode !== 8 && +payload.orderStatusCode !== 4 && +payload.orderStatusCode !== 16) {
|
|
if (+payload.orderStatusCode !== 8 && +payload.orderStatusCode !== 4 && +payload.orderStatusCode !== 16) {
|
|
throw new Error('order no result');
|
|
throw new Error('order no result');
|
|
}
|
|
}
|
|
@@ -268,4 +273,57 @@ export class HambitBraService extends BaseService {
|
|
orderNo: payload.externalOrderId
|
|
orderNo: payload.externalOrderId
|
|
};
|
|
};
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ async queryWithdraw(payload) {
|
|
|
|
+ const param = {
|
|
|
|
+ externalOrderId: payload.orderNo
|
|
|
|
+ };
|
|
|
|
+ const timestamp = +moment();
|
|
|
|
+ const nonce = uuidv4();
|
|
|
|
+ const signStr = this.utils.signSort({
|
|
|
|
+ timestamp,
|
|
|
|
+ nonce,
|
|
|
|
+ access_key: ACCESS_KEY,
|
|
|
|
+ ...param
|
|
|
|
+ });
|
|
|
|
+ const sign = this.utils.signByHmacSha1(signStr, SECRET_KEY);
|
|
|
|
+ const res = await this.httpService.post(HOST + QUERY_WITHDRAW_URL, param, {
|
|
|
|
+ headers: {
|
|
|
|
+ 'access_key': ACCESS_KEY,
|
|
|
|
+ 'timestamp': timestamp,
|
|
|
|
+ 'nonce': nonce,
|
|
|
|
+ 'sign': sign
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ this.logger.info('查询代付接口返回', JSON.stringify(res.data));
|
|
|
|
+ const { success, msg, data = [] } = res.data;
|
|
|
|
+ const orderData = data.find(item => item.externalOrderId === payload.orderNo)
|
|
|
|
+ if (success && orderData) {
|
|
|
|
+ if(+orderData.orderStatus === 4 || +orderData.orderStatus === 16) {
|
|
|
|
+ return {
|
|
|
|
+ date: new Date(),
|
|
|
|
+ status: 3,
|
|
|
|
+ message: orderData.errorMsg,
|
|
|
|
+ orderNo: orderData.externalOrderId
|
|
|
|
+ };
|
|
|
|
+ } else if(+orderData.orderStatus === 8) {
|
|
|
|
+ return {
|
|
|
|
+ date: new Date(),
|
|
|
|
+ status: 8,
|
|
|
|
+ message: orderData.errorMsg,
|
|
|
|
+ orderNo: orderData.externalOrderId
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
+ return {
|
|
|
|
+ status: 1,
|
|
|
|
+ traceNo: orderData.orderId,
|
|
|
|
+ date: new Date()
|
|
|
|
+ };
|
|
|
|
+ } else {
|
|
|
|
+ return {
|
|
|
|
+ status: 3,
|
|
|
|
+ message: '渠道订单不存在'
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|