slince/shipment-tracking

kuaidi100 里面的验签功能没看到

phoenixg opened this issue · 8 comments

请问是否可以加入签名的实现:

        $post_data = [];
        $post_data["customer"] = self::KUAIDI100_CUSTOMER;
        $key= self::KUAIDI100_KEY ;
        $post_data["param"] = '{"com":"'.$trackingCompany.'","num":"'.$trackingNumber.'"}';

        $url='http://poll.kuaidi100.com/poll/query.do';
        $post_data["sign"] = md5($post_data["param"].$key.$post_data["customer"]);
        $post_data["sign"] = strtoupper($post_data["sign"]);
        $o="";
        foreach ($post_data as $k=>$v)
        {
            $o.= "$k=".urlencode($v)."&";		//默认UTF-8编码格式
        }
        $post_data=substr($o, 0, -1);
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
        $result = curl_exec($ch);
        $data = str_replace("\"",'"',$result );
        $data = json_decode($data,true);

        return $data;

并且加入识别快递运输商的接口:

https://poll.kuaidi100.com/pollquery/autoNumberTechWord.jsp

有相关文档连接吗

@slince 突然发现官方的查询物流详情是不需要验签的,好奇怪!
识别快递运输商的接口可以加一下吗, 文档地址见上

你发的那个连接是没法直接打开的,而且根据你代码里的查询地址应该是以前的接口吧;

在下面这个文档页面没看到有自动识别承运商的服务, com这个参数像是要必填的: https://www.kuaidi100.com/openapi/api_post.shtml

https://poll.kuaidi100.com/pollquery/autoNumberTechWord.jsp
这个连接如果你能打开的话可以截图邮件给我下; taosikai#########yeah.net

是的, com 是必填的。
autonumbertech-kuaidi100

还有一个问题是, 我调用 track() 方法,实际上报了 “身份key认证失败” 的错误,原始请求是:

http://api.kuaidi100.com/api?id={保密}&com=debangwuliu&nu=5621868024&valicode=&show=&muti=&order=asc

{
status: "0",
message: "身份key认证失败!"
}

所以按我的理解, 类库中实现的 kuaidi100 的 track 接口应该加入算签名的逻辑

所以按我的理解, 类库中实现的 kuaidi100 的 track 接口应该加入算签名的逻辑

没有校验其它校验,你那个key应该是真错了,试试这个http://api.kuaidi100.com/api?id=29833628d495d7a5&com=debangwuliu&nu=5621868024&valicode=&show=&muti=&order=asc

识别快递运输商的接口

这个是给定单号查找承运商,并不是跟踪物流信息,所以不是本库要做的事情; 这个库的主要作用就是要屏蔽中间商的差异性,让物流查询比较友好一点

@slince 应该是key错了,能不能告诉下这样的 key 是在哪里找到的?我找了一圈没看到

你要去注册他们的服务