//#region import
|
import BaseApiService from "../baseApiService";
|
import { ResultInfo } from "../../public/commonInterface";
|
import * as crypto from "crypto";
|
// import { In } from "typeorm";
|
import { TMSWayBill } from "../../entity/express/tms/tmsWayBill";
|
import rp = require("request-promise");
|
// import moment = require("moment");
|
|
//#endregion
|
|
/**
|
* 获取福州ems,泉州邮政小包分拣码帮助类
|
*/
|
export default class sortingCodeHelper extends BaseApiService {
|
//#region 福州ems,泉州邮政小包获取分拣码
|
public async getSortingCode(wayBill_Id): Promise<ResultInfo> {
|
let info: ResultInfo = {
|
result: false,
|
msg: undefined,
|
dynamic: null
|
};
|
try {
|
let wayBillInfo = await this.dbRead
|
.createQueryBuilder(TMSWayBill, "t")
|
.where(`wayBill_Id=:wayBill_Id`, {
|
wayBill_Id: wayBill_Id
|
})
|
.getOne();
|
var sendID = "LDPKJT";
|
var appKey = "V6O3P3XHPSO9G8MA";
|
var url = "http://139.199.85.254/WMS?RequestType=GetSortingCode";
|
var requestData =
|
' { "traceNo":"' + wayBillInfo.expressCode + '","address":"' + wayBillInfo.consigneeAddress + '"}';
|
var urlRequestData = encodeURI(requestData);
|
var md5 = crypto.createHash("md5");
|
var md5Str = md5.update(requestData + appKey, "utf8").digest("hex");
|
var b = new Buffer(md5Str);
|
var sign = b.toString("base64");
|
url += "&SendID=" + sendID + "&RequestData=" + urlRequestData + "&Sign=" + sign;
|
// url = "http://139.199.85.254/WMS?RequestType=GetSortingCode&SendID=LDPKJT&RequestData=+%7b+%22traceNo%22%3a%221186538681251%22%2c%22address%22%3a%22%e5%b9%bf%e8%a5%bf%e5%a3%ae%e6%97%8f%e8%87%aa%e6%b2%bb%e5%8c%ba%e9%98%b2%e5%9f%8e%e6%b8%af%e5%b8%82%e4%b8%9c%e5%85%b4%e5%b8%82%e4%b8%9c%e5%85%b4%e8%b7%af%22%7d&Sign=NDdkZmYyMDU2ZGY4MGZhMDhiMTVjY2EzOWVkNGU4NjI=";
|
//httpclient总是返回301不知道为什么
|
// const result = await this.ctx.curl(url, {
|
// method: 'POST'
|
// });
|
//使用request-promise请求
|
var options = {
|
uri: url,
|
json: true // Automatically parses the JSON string in the response
|
};
|
var res = null;
|
await rp(options)
|
.then(function(repos) {
|
res = repos;
|
console.log("getSortingCode获得大头笔", repos);
|
})
|
.catch(function(err) {
|
console.log("getSortingCode错误:" + err.message);
|
// API call failed...
|
});
|
// const result = await this.ctx.curl(url, {
|
// // 必须指定 method,支持 POST,PUT 和 DELETE
|
// method: 'POST',
|
// // 不需要设置 contentType,HttpClient 会默认以 application/x-www-form-urlencoded 格式发送请求
|
// data: {
|
// SendID: sendID,
|
// RequestData: urlRequestData,
|
// Sign: sign
|
// },
|
// // 明确告诉 HttpClient 以 JSON 格式处理响应 body
|
// dataType: 'json',
|
// });
|
// var count = Buffer.from(resutl).toString();
|
|
var dynData = res;
|
if (dynData.status == "FAILURE") {
|
info.dynamic = dynData;
|
info.msg = dynData.msg;
|
info.result = false;
|
} else {
|
info.dynamic = dynData;
|
info.result = true;
|
info.msg = dynData.msg;
|
}
|
} catch (error) {
|
info.msg = error.message;
|
info.result = false;
|
}
|
return info;
|
}
|
|
//#endregion
|
}
|