Categorygithub.com/hiscaler/51tracking-go
repositorypackage
0.0.0-20220729060557-48dfd08aa603
Repository: https://github.com/hiscaler/51tracking-go.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

51Tracking SDK

文档地址

https://www.51tracking.com/v3/api-index?language=Golang#api-version

数据更新频率

正常

  • 添加 30 天内未签收的属于正常更新频次也就是下限是 4 小时上限是 6 小时;
  • 30~45 天仍未签收就会降低更新频率至下限 6 小时上限 8 小时;
  • 45~60 天仍未签收更新频率变为下限 12 小时上限 14 小时;
  • 60~80 天仍未签收更新频率变为下限 24 小时上限 26 小时;
  • 超过 80 天仍未签收将停止更新。

其他

  • 快递更新间隔正常时间是 4~6 个小时;
  • 邮政更新间隔是 6~8 个小时;
  • sfb2c 更新间隔为 8 小时。

手动更新条件

  1. 查询不到超过 15 天,已经停止更新了的单号;
  2. 已经签收,并且已经停止更新了的单号;
  3. 添加时间超过 30 天,已经停止更新的单号;
  4. 其他条件暂时无法通过该接口更新。

安装

go get github.com/hiscaler/51tracking-go

使用

client := NewTracking51(config.Config{
    Debug:        true,
    Sandbox:      true,
    AppKey:       "xxx",
    IntervalTime: 1500,
})

配置说明

type Config struct {
	Debug        bool   // 是否为调试模式(调试模式下会输出 HTTP 请求和返回数据)
	Sandbox      bool   // 是否为沙箱测试环境
	Version      string // API 版本(当前固定为 V3)
	AppKey       string // App Key
	IntervalTime int64  // 当前请求与上次请求间隔的时间(单位为毫秒),默认为零,表示没有间隔,大于 0 表示实际间隔的毫秒数
}

服务

Account

  • 帐号情况
client.Services.Account.Profile()

Courier

  • 获取物流商列表
client.Services.Courier.List()
  • 修改包裹物流商
client.Services.Courier.Change("trackingNumber", "oldCourierCode", "newCourierCode")

Tracking

  • 添加物流单号
client.Services.Tracking.Create()
  • 修改单号信息
client.Services.Tracking.Update()
  • 获取查询结果
params := TracksQueryParams{}
client.Services.Tracking.Query(params)
  • 删除查询单号
client.Services.Tracking.Delete([]DeleteTrackRequest{})
  • 停止单号更新
client.Services.Tracking.StopUpdate(StopUpdateRequests{})
  • 手动更新
client.Services.Tracking.Refresh([]RefreshRequest{})
  • 统计包裹状态
client.Services.Tracking.StatusStatistic(StatusStatisticRequest{})
  • 时效
client.Services.Tracking.TransitTime(TransitTimeRequest{})
  • 检测偏远地区
client.Services.Tracking.RemoteDetection(RemoteDetectionRequest{})

Webhook

针对 51Tracking 的数据推送,提供了 WebhookRequest 结构体,您可以使用他来接受推送过来的数据,并判断 Code 是否为 200 且 Data.Valid() 是否有效来进行下一步的业务逻辑处理。

Data.Valid(you51TrackingAccountEmail) 用来判断推送的数据是否来自 51Tracking,根据需要,您可以跳过此步。

var wr WebRequest
if json.Unmarshal(resp.Body, &wr) != nil {
	if wr.Code == 200 && wr.Data.Valid(you51TrackingAccountEmail) {
	    // you code	
    }
}