yunda

package module
v0.0.0-...-d93e263 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 8, 2019 License: MIT Imports: 8 Imported by: 0

README

yunda

yunda 韵达 订单接口对接

Documentation

Index

Constants

View Source
const (
	TestHost = `http://orderdev.yundasys.com:10110/cus_order/order_interface/`
	Host     = `http://order.yundasys.com:10235/cus_order/order_interface/`
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	PartnerID string
	Password  string
	Host      string
	// contains filtered or unexported fields
}

Client 韵达客户端

func NewClient

func NewClient(host, partnerID, password string) *Client

NewClient 创建一个新的韵达客户端

func (*Client) Count

func (c *Client) Count() (r *CountResponse, err error)

Count 面单库存查询

func (*Client) Create

func (c *Client) Create(order *CreateOrder) (r *CreateResponse, err error)

Create 订单创建接口 接口流程见方案图 下单后,接口返回: 是否送达 运单号(送单时才有) 打印文件(1. json 格式,或者 2.密文:使用韵达提供的本地服务可直接生成打印图片) 说明:返回打印文件格式可以在韵达系统配置客户属性,json 格式可以支持可以自己生成打印文件

func (*Client) Delete

func (c *Client) Delete(order *DeleteOrder) (err error)

Delete 订单取消接口 【接口功能描述】 下单后如果订单取消,请用此接口 取消订单后,如果有运单号,则进入冻结,一个月后释放到库存,可重新使用。错 误信息类型有: 1. 取消订单后订单要重新生效,则使用下单接口下单即可

func (*Client) Get

func (c *Client) Get(order *GetOrder) (err error)

Get 订单信息查询接口 如果下单的时候密文/运单号没有接收成功,则可以用此接口查询 按照运单号或者订单序列号查询订单的状态,运单号,打印密文或者 json 数据 如果需要接口返回 pdf 信息则需要传递参数 print_file 如果需要返回打印密文信息或者 json 明文,则传递参数 json_data,调用本地服务

func (*Client) Update

func (c *Client) Update(order *CreateOrder) (r *CreateResponse, err error)

Update 订单更新接口 【接口功能描述】 下单后如果订单信息需要更新,请用此接口 更新订单后会将运单号,打印信息(密文或者明文 json)返回,错误信息 错误信息类型有: 1. 超过下单时间 15 天,不允许更新 2. 已经有物流信息,不允许更新

type CountResponse

type CountResponse struct {
	TotalNum  string `xml:"total_num" json:"total_num" bson:"total_num"`
	UsedNum   string `xml:"used_num" json:"used_num" bson:"used_num"`
	RemainNum string `xml:"remain_num" json:"remain_num" bson:"remain_num"`
}

type CountResponseBody

type CountResponseBody struct {
	Status        string `xml:"status" json:"status" bson:"status"`
	Msg           string `xml:"msg" json:"msg" bson:"msg"`
	CountResponse `xml:"innerxml" json:"innerxml" bson:"innerxml"`
}

type CountResponsesBody

type CountResponsesBody struct {
	XMLName  xml.Name          `xml:"responses" json:"responses" bson:"responses"`
	Response CountResponseBody `xml:"response" json:"response" bson:"response"`
}

type CreateItem

type CreateItem struct {
	// 商品名称(cod 订单必填)
	Name string `xml:"name" json:"name" bson:"name"`
	// 数量
	Number string `xml:"number" json:"number" bson:"number"`
	// 备注
	Remark string `xml:"remark" json:"remark" bson:"remark"`
}

type CreateItems

type CreateItems struct {
	XMLName xml.Name   `xml:"items" json:"items" bson:"items"`
	Item    CreateItem `xml:"item" json:"item" bson:"item"`
}

type CreateLocale

type CreateLocale struct {
	// 需要将省市区划信息加上,例如:上 海市,上海市,青浦区盈港东路 7766 号
	Address string `xml:"address" json:"address" bson:"address"`
	Branch  string `xml:"branch" json:"branch" bson:"branch"`
	// 严格按照国家行政区划,省市区三级, 逗号分隔。示例上海市,上海市,青浦区 (cod 订单必填)
	City string `xml:"city" json:"city" bson:"city"`
	// 公司名
	Company string `xml:"company" json:"company" bson:"company"`
	// 移动电话
	Mobile string `xml:"mobile" json:"mobile" bson:"mobile"`
	// 姓名
	Name string `xml:"name" json:"name" bson:"name"`
	// 固定电话
	Phone string `xml:"phone" json:"phone" bson:"phone"`
	// 邮编
	Postcode string `xml:"postcode" json:"postcode" bson:"postcode"`
}

type CreateOrder

type CreateOrder struct {

	// 订单唯一序列号(可以是订单号,可 以是序列号,必须保证唯一)
	OrderSerialNo string `xml:"order_serial_no" json:"order_serial_no" bson:"order_serial_no"`

	// 代收货款金额(目前仅用于 cod 订单, cod 订单必填)
	CollectionValue string `xml:"collection_value" json:"collection_value" bson:"collection_value"`

	// 可以自定义显示信息 1,打印在客户自 定义区域 1,换行请用\n
	CusArea1 string `xml:"cus_area1,omitempty" json:"cus_area1,omitempty" bson:"cus_area1,omitempty"`

	// 可以自定义显示信息 2,打印在客户自 定义区域 2,换行请用\n
	CusArea2 string `xml:"cus_area2,omitempty" json:"cus_area2,omitempty" bson:"cus_area2,omitempty"`

	// 可以自定义显示信息 3,打印在客户自 定义区域 3,换行请用\n
	CusArea3 string `xml:"cus_area3,omitempty" json:"cus_area3,omitempty" bson:"cus_area3,omitempty"`

	// 商品种类
	Items CreateItems `xml:"items" json:"items" bson:"items"`

	// 大客户系统订单的订单号
	Khddh string `xml:"khddh" json:"khddh" bson:"khddh"`

	// 内部参考号,供大客户自己使用,可 以是客户的客户编号
	Nbckh string `xml:"nbckh,omitempty" json:"nbckh,omitempty" bson:"nbckh,omitempty"`

	OrderType OrderType `xml:"order_type" json:"order_type" bson:"order_type"`

	// 接口异步回传的时候返回的 ID,客户 方系统使用,此 ID 是客户需求,可以 不填,默认为空
	CallbackID string `xml:"callback_id,omitempty" json:"callback_id,omitempty" bson:"callback_id,omitempty"`

	// 客户波次号,按照此号进行批量打印 校验
	WaveNo string `xml:"wave_no,omitempty" json:"wave_no,omitempty" bson:"wave_no,omitempty"`

	// 人工强制下单(系统筛单不送达的情 况下,会验证此标签,为 1 的话会强制 标记为可送达,使用此参数需要和网 点协商,否则不要使用此参数)
	ReceiverForce string `xml:"receiver_force,omitempty" json:"receiver_force,omitempty" bson:"receiver_force,omitempty"`

	// 送货地
	Receiver CreateLocale `xml:"receiver" json:"receiver" bson:"receiver"`
	// 收货地
	Sender CreateLocale `xml:"sender" json:"sender" bson:"sender"`

	// 商品性质(保留字段,暂时不用)
	Special string `xml:"special,omitempty" json:"special,omitempty" bson:"special,omitempty"`

	// 物品金额
	Value string `xml:"value,omitempty" json:"value,omitempty" bson:"value,omitempty"`

	// 物品重量
	Weight string `xml:"weight,omitempty" json:"weight,omitempty" bson:"weight,omitempty"`

	// 备注
	Remark string `xml:"remark,omitempty" json:"remark,omitempty" bson:"remark,omitempty"`
}

type CreateOrders

type CreateOrders struct {
	XMLName xml.Name    `xml:"orders" json:"orders" bson:"orders"`
	Order   CreateOrder `xml:"order" json:"order" bson:"order"`
}

type CreateResponse

type CreateResponse struct {
	OrderSerialNo string `xml:"order_serial_no" json:"order_serial_no" bson:"order_serial_no"`
	MailNo        string `xml:"mail_no" json:"mail_no" bson:"mail_no"`
	PdfInfo       string `xml:"pdf_info" json:"pdf_info" bson:"pdf_info"`
}

type CreateResponseBody

type CreateResponseBody struct {
	CreateResponse `xml:"innerxml" json:"innerxml" bson:"innerxml"`
	Status         string `xml:"status" json:"status" bson:"status"`
	Msg            string `xml:"msg" json:"msg" bson:"msg"`
}

type CreateResponsesBody

type CreateResponsesBody struct {
	XMLName  xml.Name           `xml:"responses" json:"responses" bson:"responses"`
	Response CreateResponseBody `xml:"response" json:"response" bson:"response"`
}

type DeleteOrder

type DeleteOrder struct {
	// 订单唯一序列号(可以是订单号,可 以是序列号,必须保证唯一)
	OrderSerialNo string `xml:"order_serial_no" json:"order_serial_no" bson:"order_serial_no"`

	// 运单号,可选填
	Mailno string `xml:"mailno,omitempty" json:"mailno,omitempty" bson:"mailno,omitempty"`
}

type DeleteOrders

type DeleteOrders struct {
	XMLName xml.Name    `xml:"orders" json:"orders" bson:"orders"`
	Order   DeleteOrder `xml:"order" json:"order" bson:"order"`
}

type DeleteResponse

type DeleteResponse struct {
	// 订单唯一序列号(可以是订单号,可 以是序列号,必须保证唯一)
	OrderSerialNo string `xml:"order_serial_no" json:"order_serial_no" bson:"order_serial_no"`

	// 运单号,可选填
	Mailno string `xml:"mailno" json:"mailno" bson:"mailno"`
}

type DeleteResponseBody

type DeleteResponseBody struct {
	Status         string `xml:"status" json:"status" bson:"status"`
	Msg            string `xml:"msg" json:"msg" bson:"msg"`
	DeleteResponse `xml:"innerxml" json:"innerxml" bson:"innerxml"`
}

type DeleteResponsesBody

type DeleteResponsesBody struct {
	XMLName  xml.Name           `xml:"responses" json:"responses" bson:"responses"`
	Response DeleteResponseBody `xml:"response" json:"response" bson:"response"`
}

type GetOrder

type GetOrder struct {
	// 订单唯一序列号(可以是订单号,可 以是序列号,必须保证唯一)
	OrderSerialNo string `xml:"order_serial_no" json:"order_serial_no" bson:"order_serial_no"`

	// 运单号,可选填
	Mailno string `xml:"mailno,omitempty" json:"mailno,omitempty" bson:"mailno,omitempty"`

	// 是否需要 pdf 文件:1 需要,0 不需要
	PrintFile string `xml:"print_file,omitempty" json:"print_file,omitempty" bson:"print_file,omitempty"`

	// 是否需要打印文件的 json 数据,用于 直接生成打印图片:1 需要,0 不需要
	JSONData string `xml:"json_data,omitempty" json:"json_data,omitempty" bson:"json_data,omitempty"`

	// 强制加密参数,1 加密
	JSONEncrypt string `xml:"json_encrypt,omitempty" json:"json_encrypt,omitempty" bson:"json_encrypt,omitempty"`
}

type GetOrders

type GetOrders struct {
	XMLName xml.Name `xml:"orders" json:"orders" bson:"orders"`
	Order   GetOrder `xml:"order" json:"order" bson:"order"`
}

type GetResponse

type GetResponse struct {
	// 订单唯一序列号(可以是订单号,可 以是序列号,必须保证唯一)
	OrderSerialNo string `xml:"order_serial_no" json:"order_serial_no" bson:"order_serial_no"`

	// 运单号,可选填
	Mailno string `xml:"mailno" json:"mailno" bson:"mailno"`
}

type GetResponseBody

type GetResponseBody struct {
	Status      string `xml:"status" json:"status" bson:"status"`
	Msg         string `xml:"msg" json:"msg" bson:"msg"`
	GetResponse `xml:"innerxml" json:"innerxml" bson:"innerxml"`
}

type GetResponsesBody

type GetResponsesBody struct {
	XMLName  xml.Name        `xml:"responses" json:"responses" bson:"responses"`
	Response GetResponseBody `xml:"response" json:"response" bson:"response"`
}

type OrderType

type OrderType string

OrderType order_type 可以为空,为空时默认值为 common

var (
	// OrderTypeCommon 普通
	OrderTypeCommon OrderType = "common"
	// OrderTypeSupportValue 保价
	OrderTypeSupportValue OrderType = "support_value"
	// OrderTypeCod COD
	OrderTypeCod OrderType = "cod"
	// OrderTypeDf 到付
	OrderTypeDf OrderType = "df"
)

type Request

type Request string

Request 定义字典表 说明:大客户订单系统(A)与韵达订单平台(B)

var (
	// RequestData A->B 下单到韵达平台
	RequestData Request = "data"

	// RequestCancelOrder A->B 取消订单
	RequestCancelOrder Request = "cancel_order"

	// RequestAcceptOrder A->B 韵达向客户方推送是否接单
	RequestAcceptOrder Request = "accept_order"
)

type RequestBody

type RequestBody struct {
	PartnerID  string  // 合作商 ID,如:partnerid = YUNDA(合作商 ID 待正式上线前更改 为韵达指定的 ID)
	Request    Request // 数据请求类型,如 request=data;其中 data 表示下单
	Version    string  // 版本
	XMLdata    string  // XML 数据内容
	Validation string  // 效验码
}

RequestBody 主要请求封装

func NewRequestBody

func NewRequestBody(partnerID, password string, request Request, data []byte) *RequestBody

NewRequestBody 创建新的请求

func (*RequestBody) Encode

func (r *RequestBody) Encode() string

Encode 编码

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL