达达物流的发单api有人对接过吗?
这样的报错,无从下手啊
10 回复
参数传的不对吧,少什么参数或者参数格式不对 这种问题你只能看文档
@im-here 都没有具体 告知哪个参数不对唉,也没有技术支持qq群或者微信群。您对接过达达api吗?
@whw1988 没对接过,但是我刚看了下,有详细的文档呢,你请求的是哪个api? 而且还有一个api测试工具,可以试试 http://newopen.imdada.cn/#/development/file/apiTest?_k=ts7taw
var params = dada.gen_common_params();
params.body = {
shop_no: "11047059",
origin_id: "1122334444",
city_code:"0592",
cargo_price: 0.01,
is_prepay: 0,
receiver_name: "22",
receiver_address: "厦门市",
receiver_lat: 24,// (高德坐标系)
receiver_lng: 118,
callback: "http://11111",
receiver_phone: "1344393"
}
var signature = dada.gen_signature(params);
params.signature = signature;
console.log(params);
request({
url: 'http://newopen.qa.imdada.cn/api/order/addOrder',
method: "POST",
json: true,
headers: {
'Content-Type': 'application/json; charset=UTF-8'
},
body: JSON.stringify(params)
}, function(error, response, body) {
console.log(error);//请求接口参数异常,请查看开发文档参数设定
console.log(body);
if (!error && response.statusCode == 200) {
}
});
用到的函数:
var gen_signature=function(paramsJson){
var sorter=function(paramsJson){
var sortedJson={};
var sortedKeys=Object.keys(paramsJson).sort();
for(var i=0;i<sortedKeys.length;i++){
sortedJson[sortedKeys[i]] = paramsJson[sortedKeys[i]]
}
return sortedJson;
}
var sortedParam=sorter(paramsJson);
var needSignatureStr="";
for(var key in sortedParam){
var value=sortedParam[key];
needSignatureStr=needSignatureStr+key+value;
}
needSignatureStr = secretKey + needSignatureStr + secretKey;
var md5er = crypto.createHash('md5');
md5er.update(needSignatureStr,"UTF-8");
return md5er.digest('hex').toUpperCase();
};
var gen_common_params = function(){
var timestamp = parseInt(new Date().getTime()/1000)+"";
var format = "json";
var v = "1.0";
var source_id = "73753";
return {
app_key:app_key,
timestamp:timestamp,
format:format,
v:v,
source_id:source_id
}
}
@im-here api测试工具是验证回调的而已
@whw1988 建议你用postman之类第三方工具调用一下api看看返回什么 这种情况也许大多数情况是request请求的格式或者header不对导致的
postman一样的错误
@whw1988 那我也不知道了,官网上好像有demo,你下个下来看看吧
@im-here 可以了 params.body要是字符串