快递信息推送服务

1. 接口返回信息代码含义及建议处理方式 2.订阅异常处理 3.推送异常处理

1. 接口返回信息代码含义及建议处理方式

信息推送接口提示“验证签名失败”?

贵方param +salt 的顺序进行MD5加密,加密后字符串转大写,与我方推送的sign进行校对 参考代码: org.apache.commons.codec.digest.DigestUtils.md5Hex(param+salt).toUpperCase();

为什么提交订阅提示重复订阅?

说明这个运单已经发起订阅,并且该单号还在跟踪流程中,无法再次订阅。

提示“非法IP”

快递100接口有白名单保护机制,出现这种情况请致电客服热线400-000-0387或者发邮件至api@kuaidi100.com。

返回“查无结果,请稍后再试”

遇到这种情况,请先到快递公司官网查询结果。如果快递公司官网查询无结果,同理快递100接口也查无结果。

如果官网可以正常查询,请致电客服热线400-000-0387或者发邮件至api@kuaidi100.com。

信息推送接口提示“key已过期”?

账号关闭或者基础版没有办法查询主流快递公司,需要登录企业管理后台充值。

信息推送接口提示“找不到对应公司”?

账号关闭了,可能是没有及时充值,请登录企业管理后台充值。

PHP请求返回数据后面出现“1”?

将curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);这段代码加在PHP 示例代码中,然后再试。


2.订阅异常处理

为什么短信提示订阅失败的数量异常?

检查接口调用是否正常,一般重复订阅也会作为订阅失败去统计

如何自行通过管理后台去操作订阅记录的关闭、重开、重推?

管理后台--数据管理中,可以对订阅记录进行关闭、重开、重推。

订阅信息有错,需要重新订阅怎么办?

在管理后台关闭原有的订阅,半小时后再重新进行订阅。

status=abort且comNew为空怎么办?

  1. 对于status= abort而且message中包含“3天”关键字而且comNew为空的快递单,需要增加以下处理逻辑:

    如果有专门的工作人员,可以:将快递单罗列给工作人员,由工作人员判断此单是否为假单:如果此单是真实单,则将此单重新向快递100提交一次;如果此单是假单,则将此单标记为假单,而且不再将此单提交给快递100。如果没有专门的工作人员,请直接用以下第二种方法进行操作; yi 如果没有专门的工作人员,可以:在收到status=abort而且message中包含“3天”关键字而且comNew为空的提示10分钟后,将此快递单重新向快递100提交订阅,如果重新提交后仍然收到status= abort,则再次重新向快递100提交,如此,在同一月中如果重复提交3~4次都仍然收到status= abort,则此单为假单,不需要再将此单提交给快递100。

    对于同一自然月内重复提交的快递单,结算时只计一次费用,对于跨了两个自然月重复提交的结算单,结算两次费用。

  2. 如果判断到status=abort且comNew不为空,则不需要重新提交订阅,且将贵司原来的快递公司编码改为comNew后的值,或在贵司数据库中增加一个快递公司编码为comNew+原来单号的运单;

  3. 如果判断到status=polling且autoCheck=1,则此单为纠正公司编码后的跟踪信息,应保存。

    关于data:我方每次推送的都是完整的、全量的快递查询结果,而不是部分最新、增量的状态。由于同一快递单查询结果的数据源可能变动,不同数据源之间的结果略有差异,建议每次删除旧的数据后再写入新的数据;

    时间建议以ftime为准,不要使用time,time的存在仅仅为了兼容。


3.推送异常处理

没有收到推送信息/推送失败

1.检查告警邮件 检查是否有收到告警邮件,如果有,直接根据告警邮件去修复回调接口。

2.未订阅成功 在企业管理后台看一下是否已经订阅成功。

3.账号关闭 账号大量刷单导致关闭,需要联系快递100重新开启。

4.单号本身物流信息无更新 订阅成功后,我方接口在15分钟内进行第一次监控,如果监控到单号本身有了跟踪信息,即进行第一次推送,否则等待下一次监控。此后我们一般每4小时进行一次监控,并会根据单号的状态等因素作调整。如果没有收到推送信息,可能单号在监控周期没有更新信息。

5.超时关闭 “超时关闭”是指单号过早订阅,快递100追踪单号三天都没有任何轨迹信息后关闭了订阅。贵司提供的运单号在订阅后三天都未进行揽收,所以导致了“超时关闭”。

遇到超时关闭,即收到status=abort而且message中包含“3天无结果”,贵方可以通过修改程序对此类型的单做重推处理,避免单号收不到推送信息的情况。在同一个自然月内单号重复订阅是不重复收费的。

6.贵方没有按规范返回接收信息 当我方调用贵方的回调接口(callbackurl)时,贵方需要先将我方提交订阅时的数据保存至贵方的数据库,接着向我方返回是否成功接收的响应报文及代码,即贵公司直接在回调接口的地址的response中填写如下内容:(报文根据贵公司订阅时提交的schema属性提交内容格式返回) result: "true"表示成功,false表示失败 returnCode: 200: 提交成功 500: 服务器错误 其他错误请自行定义 如果提交回调接口的地址失败,30分钟后重新回调,3次仍旧失败的,自动放弃。 其他信息快递100会忽略。

返回格式方式一(json):

{
    "result": true,
    "returnCode": "200",
    "message": "成功"
}

返回格式方式二(xml):

<?xml version='1.0' encoding='UTF-8'?>
<pushResponse>
    <result>true</result>
    <returnCode>200</returnCode>
    <message>成功</message>
</pushResponse>

说明:请到调试工具中进行测试,只有测试通过了才能上线,否则会出现推送失败的情况。若贵方不按上述操作而导致推送失败,我方不会承担何任责任!

注意:对于status= abort(message中包含“3天查询无记录”或者“60天无变化”)的快递单,也需要返回成功接收的响应报文及代码。

为什么回调接口一直没有收到回调推送?

检查是否有收到告警邮件,如果有,直接根据告警邮件去修复回调接口。可以登录管理后台,在管理后台中查询之前提交的订阅是否有订阅记录,没有订阅记录的话,则为订阅不成功,是不会进行跟踪推送的。

回调接口需要变更怎么办?

先保留旧的那个回调接口的使用,等旧的订阅跟踪流程全部结束再去关闭。最后在程序中更改新的回调地址去订阅。

1. 接口返回信息代码含义及建议处理方式 2.订阅异常处理 3.推送异常处理