|
- package weapp
-
- const (
- apiGetContact = "/cgi-bin/express/delivery/contact/get"
- apiPreviewTemplate = "/cgi-bin/express/delivery/template/preview"
- apiUpdateBusiness = "/cgi-bin/express/delivery/service/business/update"
- apiUpdatePath = "/cgi-bin/express/delivery/path/update"
- )
-
- // GetContactResponse 获取面单联系人信息返回数据
- type GetContactResponse struct {
- CommonError
- WaybillID string `json:"waybill_id"` // 运单 ID
- Sender ContactUser `json:"sender"` // 发件人信息
- Receiver ContactUser `json:"receiver"` // 收件人信息
- }
-
- // ContactUser 联系人
- type ContactUser struct {
- Address string `json:"address"` //地址,已经将省市区信息合并
- Name string `json:"name"` //用户姓名
- Tel string `json:"tel"` //座机号码
- Mobile string `json:"mobile"` //手机号码
- }
-
- // GetContact 获取面单联系人信息
- // accessToken, token, watBillID 接口调用凭证
- func GetContact(accessToken, token, watBillID string) (*GetContactResponse, error) {
- api := baseURL + apiGetContact
- return getContact(api, accessToken, token, watBillID)
- }
-
- func getContact(api, accessToken, token, watBillID string) (*GetContactResponse, error) {
- url, err := tokenAPI(api, accessToken)
- if err != nil {
- return nil, err
- }
-
- params := requestParams{
- "token": token,
- "waybill_id": watBillID,
- }
-
- res := new(GetContactResponse)
- if err := postJSON(url, params, res); err != nil {
- return nil, err
- }
-
- return res, nil
- }
-
- // ExpressTemplatePreviewer 面单模板预览器
- type ExpressTemplatePreviewer struct {
- WaybillID string `json:"waybill_id"` // 运单 ID
- WaybillTemplate string `json:"waybill_template"` // 面单 HTML 模板内容(需经 Base64 编码)
- WaybillData string `json:"waybill_data"` // 面单数据。详情参考下单事件返回值中的 WaybillData
- Custom ExpressOrder `json:"custom"` // 商户下单数据,格式是商户侧下单 API 中的请求体
- }
-
- // PreviewTemplateResponse 预览面单模板返回数据
- type PreviewTemplateResponse struct {
- CommonError
- WaybillID string `json:"waybill_id"` // 运单 ID
- RenderedWaybillTemplate string `json:"rendered_waybill_template"` // 渲染后的面单 HTML 文件(已经过 Base64 编码)
- }
-
- // Preview 预览面单模板。用于调试面单模板使用。
- // token 接口调用凭证
- func (previewer *ExpressTemplatePreviewer) Preview(token string) (*PreviewTemplateResponse, error) {
- api := baseURL + apiPreviewTemplate
- return previewer.preview(api, token)
- }
-
- func (previewer *ExpressTemplatePreviewer) preview(api, token string) (*PreviewTemplateResponse, error) {
- url, err := tokenAPI(api, token)
- if err != nil {
- return nil, err
- }
-
- res := new(PreviewTemplateResponse)
- if err := postJSON(url, previewer, res); err != nil {
- return nil, err
- }
-
- return res, nil
- }
-
- // BusinessResultCode 商户审核结果状态码
- type BusinessResultCode = int8
-
- // 所有商户审核结果状态码
- const (
- ResultSuccess BusinessResultCode = 0 // 审核通过
- ResultFailed = 1 // 审核失败
- )
-
- // BusinessUpdater 商户审核结果更新器
- type BusinessUpdater struct {
- ShopAppID string `json:"shop_app_id"` // 商户的小程序AppID,即审核商户事件中的 ShopAppID
- BizID string `json:"biz_id"` // 商户账户
- ResultCode BusinessResultCode `json:"result_code"` // 审核结果,0 表示审核通过,其他表示审核失败
- ResultMsg string `json:"result_msg,omitempty"` // 审核错误原因,仅 result_code 不等于 0 时需要设置
- }
-
- // Update 更新商户审核结果
- // token 接口调用凭证
- func (updater *BusinessUpdater) Update(token string) (*CommonError, error) {
- api := baseURL + apiUpdateBusiness
- return updater.update(api, token)
- }
-
- func (updater *BusinessUpdater) update(api, token string) (*CommonError, error) {
- url, err := tokenAPI(api, token)
- if err != nil {
- return nil, err
- }
-
- res := new(CommonError)
- if err := postJSON(url, updater, res); err != nil {
- return nil, err
- }
-
- return res, nil
- }
-
- // ExpressPathUpdater 运单轨迹更新器
- type ExpressPathUpdater struct {
- Token string `json:"token"` // 商户侧下单事件中推送的 Token 字段
- WaybillID string `json:"waybill_id"` // 运单 ID
- ActionTime uint `json:"action_time"` // 轨迹变化 Unix 时间戳
- ActionType uint `json:"action_type"` // 轨迹变化类型
- ActionMsg string `json:"action_msg"` // 轨迹变化具体信息说明,展示在快递轨迹详情页中。若有手机号码,则直接写11位手机号码。使用UTF-8编码。
- }
-
- // Update 更新运单轨迹
- // token 接口调用凭证
- func (updater *ExpressPathUpdater) Update(token string) (*CommonError, error) {
- api := baseURL + apiUpdatePath
- return updater.update(api, token)
- }
-
- func (updater *ExpressPathUpdater) update(api, token string) (*CommonError, error) {
- url, err := tokenAPI(api, token)
- if err != nil {
- return nil, err
- }
-
- res := new(CommonError)
- if err := postJSON(url, updater, res); err != nil {
- return nil, err
- }
-
- return res, nil
- }
|