NodeJs 快递鸟API接入

官方文档没有NodeJs的demo,

var request = require('request');
var crypto = require("crypto");
var qs = require('querystring');
var log = require('./logger.js');

    function md5(str) {
        var crypto_md5 = crypto.createHash('md5');
        crypto_md5.update(str, 'utf8'); // 加入编码
        return crypto_md5.digest('hex');
    }
    function LogisticsQuery (ShipperCode, LogisticCode, CustomerName) {
        return new Promise((resolve, reject) => { //异步调用
            var EBusinessID = "0000000";    //快递鸟用户ID
            var AppKey = "***-*****-***-****-******";    //快递鸟商家秘钥
            var ReqURL = "http://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx";   //请求地址

            var requestData = {
                ShipperCode: ShipperCode,
                LogisticCode: LogisticCode
            };
            if (CustomerName) requestData.CustomerName = CustomerName  //顺丰需要填收件或者发件人手机后四位,京东需要填商品订单号,其他物流不需要这个参数
            var str = JSON.stringify(requestData);
            var data = encodeURIComponent(str).replace(/%22/gi, '%27');
            var ss = str.replace(/"/gi, "'");
            sign = md5(ss + AppKey);
            var s = new Buffer.from(sign).toString('base64');
            sign = encodeURIComponent(s);
            var json = {
                "EBusinessID": EBusinessID,
                "RequestType": "1002",  //在途监控(企业版无限制):8001    即时查询(免费版500次/日,只能查中圆申通):1002
                "RequestData": data,
                "DataSign": sign
            };
            var postData = qs.stringify(json);
            //console.log(postData);
            request({
                url: ReqURL,
                method: 'POST',
                headers: {
                    "content-type": "application/x-www-form-urlencoded"
                },
                body: postData
            }, function (error, response, body) {
                if (!error && response.statusCode == 200) {
                    var result = {
                        "status": 200,
                        "message": "success",
                        "data": JSON.parse(body)
                    }
                    resolve(result)
                } else {
                    var result = {
                        "status": 400,
                        "message": "error",
                        "data": ""
                    }
                    resolve(result)
                }
            });
        });
}


module.exports = LogisticsQuery;

postman调用结果
postman调用结果

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值