This commit is contained in:
邹宗楠
2022-10-14 15:40:21 +08:00
parent 3aafc81c64
commit d7db9fe464
14 changed files with 231 additions and 21 deletions

View File

@@ -2,6 +2,8 @@ package order_addressModify_request
import (
"encoding/json"
order_addressModify_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_addressModify/response"
doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core"
)
type OrderAddressModifyRequest struct {

View File

@@ -0,0 +1,66 @@
package order_getSettleBillDetailV3_request
import (
"encoding/json"
order_getSettleBillDetailV3_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_getSettleBillDetailV3/response"
doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core"
)
type OrderGetSettleBillDetailV3Request struct {
doudian_sdk.BaseDoudianOpApiRequest
Param *OrderAddressModifyParam
}
func (c *OrderGetSettleBillDetailV3Request) GetUrlPath() string {
return "/order/getSettleBillDetailV3"
}
func New() *OrderGetSettleBillDetailV3Request {
request := &OrderGetSettleBillDetailV3Request{
Param: &OrderAddressModifyParam{},
}
request.SetConfig(doudian_sdk.GlobalConfig)
request.SetClient(doudian_sdk.DefaultDoudianOpApiClient)
return request
}
func (c *OrderGetSettleBillDetailV3Request) Execute(accessToken *doudian_sdk.AccessToken) (*order_getSettleBillDetailV3_response.OrderGetSettleBillDetailV3Response, error) {
responseJson, err := c.GetClient().Request(c, accessToken)
if err != nil {
return nil, err
}
response := &order_getSettleBillDetailV3_response.OrderGetSettleBillDetailV3Response{}
_ = json.Unmarshal([]byte(responseJson), response)
return response, nil
}
func (c *OrderGetSettleBillDetailV3Request) GetParamObject() interface{} {
return c.Param
}
func (c *OrderGetSettleBillDetailV3Request) GetParams() *OrderAddressModifyParam {
return c.Param
}
type OrderAddressModifyParam struct {
// 页数支持范围1~100
Size int64 `json:"size"`
// 查询开始时间格式为yyyy-MM-dd HH:mm:ss订单号未传的情况下开始时间必须传注意分页查询时除首次查询外应填入上一次返回的next_start_time
StartTime string `json:"start_time"`
// 查询结束时间和end_time的时间间隔建议不超过7天格式为yyyy-MM-dd HH:mm:ss订单号未传的情况下结束时间必须传
EndTime string `json:"end_time"`
// SKU单子订单号支持通过英文逗号分隔传入多个参数
OrderId string `json:"order_id"`
// 商品id
ProductId string `json:"product_id"`
// 结算账户,不传则默认为全部,枚举: 1微信升级前、 2微信、 3支付宝、 4合众支付、 5聚合账户支持通过英文逗号分隔传入多个参数
PayType string `json:"pay_type"`
// 业务类型,不传则默认为全部,枚举: 1鲁班广告、2值点商城, 3精选联盟、 4小店自卖
FlowType string `json:"flow_type"`
// 时间类型 ,不传则默认为结算时间,枚举: 0结算时间 1下单时间
TimeType string `json:"time_type"`
// 查询开始索引注意分页查询时除首次查询可不填外应填入上一次返回的next_start_index
StartIndex string `json:"start_index"`
}

View File

@@ -0,0 +1,56 @@
package order_getSettleBillDetailV3_response
import (
doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core"
)
type OrderGetSettleBillDetailV3Response struct {
doudian_sdk.BaseDoudianOpApiResponse
Data *OrderGetSettleBillDetailV3Data `json:"data"`
}
type OrderGetSettleBillDetailV3Data struct {
Code string `json:"code"` // 返回code 100000为成功其他为失败
CodeMsg string `json:"code_msg"` // 返回信息描述,失败状态下会有失败描述
Data []DataList `json:"data"` // 订单流水明细列表
DataSize string `json:"data_size"` // 结果data的大小
IsEnd string `json:"is_end"` // 判断查询是否结束。0 未结束, 1 结束。未结束时需要把next_start_index作为下一次请求的start_index,next_start_time作为下一次请求的start_time
NextStartIndex string `json:"next_start_index"` // 下一次查询start_index
NextStartTime string `json:"next_start_time"` // 下一次查询start_time
Size string `json:"size"` // 请求的size
}
type DataList struct {
AuthorCoupon string `json:"author_coupon"` // 达人补贴(分)
ChannelPromotionFee string `json:"channel_promotion_fee"` // 直播间站外推广(分)
ColonelServiceFee string `json:"colonel_service_fee"` // 团长服务费(分)
Commission string `json:"commission"` // 佣金(分)
FlowTypeDesc string `json:"flow_type_desc"` // 业务类型: 鲁班广告、值点商城、精选联盟、小店自卖等
GoodLearnChannelFee string `json:"good_learn_channel_fee"` // 渠道分成(分)
GoodsCount string `json:"goods_count"` // 商品数量
IsContainsRefundBeforeSettle string `json:"is_contains_refund_before_settle"` // 是否包含结算前退款 0不包含 1包含
OrderId string `json:"order_id"` // 子订单号
OrderTime string `json:"order_time"` // 下单时间
OrderType string `json:"order_type"` // 订单类型:普通订单、尾款(尾款已支付)、尾款(已退款)、定金(已退款)、定金(尾款已支付)、定金(尾款未支付)
OtherSharingAmount string `json:"other_sharing_amount"` // 其他分成(学浪)(分)
PackingAmount string `json:"packing_amount"` // 打包费,单位:分
PayTypeDesc string `json:"pay_type_desc"` // 货款结算对应的账户类型: “聚合账户”“微信”“支付宝”“微信升级前”“合众支付”等
PlatformCoupon string `json:"platform_coupon"` // 平台补贴(分)
PlatformServiceFee string `json:"platform_service_fee"` // 平台服务费(分)
PostAmount string `json:"post_amount"` // 运费(分)
ProductId string `json:"product_id"` // 商品id
RealPayAmount string `json:"real_pay_amount"` // 用户实付(分)
RefundBeforeSettle string `json:"refund_before_settle"` // 结算前退款金额(分) (结算前退货+运费-店铺券)
Remark string `json:"remark"` // 备注
RequestNo string `json:"request_no"` // 结算单号
SettleAmount string `json:"settle_amount"` // 商家实收(分)
SettleTime string `json:"settle_time"` // 结算时间
ShopCoupon string `json:"shop_coupon"` // 店铺券(分)
ShopOrderId string `json:"shop_order_id"` // 订单号
TotalAmount string `json:"total_amount"` // 订单总价(分)
TotalGoodsAmount string `json:"total_goods_amount"` // 商品总价(分)
TotalIncome string `json:"total_income"` // 收入合计(分)
TotalOutcome string `json:"total_outcome"` // 合计支出
TradeType string `json:"trade_type"` // 结算单类型 0 :已结算 1 :结算后退款-原路退回 2 保证金退款-支出退回 3 结算后退款-非原路退回
ZrPayPromotion string `json:"zr_pay_promotion"` // DOU分期营销补贴
ZtPayPromotion string `json:"zt_pay_promotion"` // 抖音支付补贴(分)
}

View File

@@ -1,5 +1,7 @@
package order_logisticsAddSinglePack_response
import doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core"
type OrderLogisticsAddSinglePackResponse struct {
doudian_sdk.BaseDoudianOpApiResponse
Data *OrderLogisticsAddSinglePackData `json:"data"`

View File

@@ -0,0 +1,16 @@
package tiktok_api
import "testing"
var token = `{"access_token":"60f530b2-9ab6-4723-b487-c094918f0d21","expires_in":1666257163,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专用店","refresh_token":"1220666a-5e88-458c-a8c0-06d949fbbd3f","authority_id":""}`
var a = New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token)
// 查询售后单详情
func TestAfsOrder(t *testing.T) {
a.QueryAfsOrderDetail("7154266161041899779", true)
}
// 同意/拒绝售后单
func TestAggreOrNotAggreAfs(t *testing.T) {
//a.AfterSaleOperate()
}

View File

@@ -9,13 +9,6 @@ import (
"time"
)
const (
CallbackSuccessCode = 0
CallbackSuccess = "success"
CallbackFailCode = 1000
CallbackFail = "fail"
)
type API struct {
appKey string
appSecret string
@@ -72,7 +65,7 @@ func (a *API) CreateToken(code string) (*doudian_sdk.CreateTokenData, error) {
doudian_sdk.GlobalConfig.AppKey = a.appKey
doudian_sdk.GlobalConfig.AppSecret = a.appSecret
buildParam := &doudian_sdk.BuildAccessTokenParam{
Code: code, // 定死还是自动获取
Code: code,
ShopId: 0,
Config: nil,
}

View File

@@ -2,6 +2,7 @@ package tiktok_api
import (
"fmt"
order_getSettleBillDetailV3_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_getSettleBillDetailV3/request"
order_logisticsAdd_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_logisticsAdd/request"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/globals"
@@ -30,7 +31,8 @@ func TestQueryOrderDetail(t *testing.T) {
func TestRefaseToken(t *testing.T) {
a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", "")
a.CreateToken("41155cd5-d30f-4075-9c44-b75ffa1a84ee")
a.CreateToken("bb52688c-7bca-4b64-8747-5258a9a6ba33")
// {"access_token":"a1746210-a8a3-4497-a87b-09d1f10dbb95","expires_in":1665652230,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专用店","refresh_token":"c1cf8d88-0983-4f2a-b969-3746fae6b0cd","authority_id":""}
//{"access_token":"37f41ac7-49ac-4848-a0ee-ea86bb0dfd9f","expires_in":519389,"scope":"SCOPE","shop_id":"","shop_name":"抖店开放平台测试专用店","refresh_token":"3dd8f638-fdf1-46e7-b974-88df382f03c6","authority_id" :""}
}
@@ -40,13 +42,11 @@ func TestTimeNow(t *testing.T) {
}
func TestSendGoods(t *testing.T) {
token := `{"access_token":"a1746210-a8a3-4497-a87b-09d1f10dbb95","expires_in":1665652230,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专用店","refresh_token":"c1cf8d88-0983-4f2a-b969-3746fae6b0cd","authority_id":""}`
a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token)
param := &order_logisticsAdd_request.OrderLogisticsAddParam{
OrderId: "7136048270014416392",
OrderId: "4989178132980723098",
Company: "",
CompanyCode: "chengdouruoxi",
LogisticsCode: "7136048270014416392111",
LogisticsCode: "4989178132980723098111",
IsRefundReject: false,
IsRejectRefund: false,
SerialNumberList: nil,
@@ -61,3 +61,32 @@ func TestCreateExpss(t *testing.T) {
a := NewExpress("7152420904331429407", "cc7ba367-2394-4cbb-81c6-26f0e929d1c6", "")
a.CreateToken()
}
// 同意退货申请
func TestReturnGoodsToWareHouseSuccess(t *testing.T) {
token := `{"access_token":"60f530b2-9ab6-4723-b487-c094918f0d21","expires_in":1666257163,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专用店","refresh_token":"1220666a-5e88-458c-a8c0-06d949fbbd3f","authority_id":""}`
a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token)
a.ReturnGoodsToWareHouseSuccess("7154200345302827303")
}
// 获取订单结算信息
func TestGetSettleBillDetailV3(t *testing.T) {
token := `{"access_token":"60f530b2-9ab6-4723-b487-c094918f0d21","expires_in":1666257163,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专用店","refresh_token":"1220666a-5e88-458c-a8c0-06d949fbbd3f","authority_id":""}`
a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token)
a.GetSettleBillDetailV3(&order_getSettleBillDetailV3_request.OrderAddressModifyParam{
Size: 100,
StartTime: "2022-10-07 00:00:00",
EndTime: "2022-10-14 00:00:00",
//OrderId: "4980573848886616007",
ProductId: "",
PayType: "",
FlowType: "",
TimeType: "1",
StartIndex: "",
})
}
// 多订单同一个物流包裹
func TestLogisticsAddSinglePack(t *testing.T) {
a.LogisticsAddSinglePack()
}

View File

@@ -58,7 +58,7 @@ func (a *APIExpress) CreateToken() (*token_create_response.TokenCreateData, erro
param := request.GetParams()
param.Code = ""
param.GrantType = "authorization_self"
param.AuthId = "powertestexpress"
param.AuthId = TiktokExpressCode
param.AuthSubjectType = "WuLiuShang"
response, err := request.Execute(nil)
if err != nil {

View File

@@ -3,6 +3,7 @@ package tiktok_api
import (
"encoding/json"
"errors"
"fmt"
"git.rosy.net.cn/baseapi"
address_list_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/address_list/request"
afterSale_applyMarketAfterSale_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/afterSale_ApplyMarketAfterSale/request"
@@ -14,6 +15,7 @@ import (
afterSale_rejectReasonCodeList_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/afterSale_rejectReasonCodeList/response"
afterSale_returnGoodsToWareHouseSuccess_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/afterSale_returnGoodsToWareHouseSuccess/request"
order_logisticsAdd_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_logisticsAdd/request"
order_logisticsAddSinglePack_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_logisticsAddSinglePack/request"
order_orderDetail_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_orderDetail/request"
order_orderDetail_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_orderDetail/response"
order_searchList_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_searchList/request"
@@ -273,7 +275,7 @@ func (a *API) ReturnGoodsToWareHouseSuccess(afsOrderId string) error {
result, err := request.Execute(a.accessTokenObj)
if err != nil {
return err
return err // 202210141114300102101071350D6F3847
}
if result.Code != RequestSuccessCode {
return errors.New(result.SubMsg)
@@ -609,3 +611,20 @@ func (a *API) OrderDelivering(param *order_logisticsAdd_request.OrderLogisticsAd
}
return nil
}
// LogisticsAddSinglePack 支持多个订单发同一个物流包裹
func (a *API) LogisticsAddSinglePack() {
request := order_logisticsAddSinglePack_request.New()
request.Param.OrderIdList = []string{"4989180160180927898"}
request.Param.ShippedOrderInfo = []order_logisticsAddSinglePack_request.ShippedOrderInfoItem{
{ShippedOrderId: "4989180160180927898", ShippedNum: 1},
}
request.Param.LogisticsCode = "4989180160180927898fake"
request.Param.RequestId = "1267250f-8b9d-4d9e-9fad-0cd9629c83de"
request.Param.CompanyCode = "dajiangwangluo"
request.Param.StoreId = 63114504
data, err := request.Execute(a.accessTokenObj)
fmt.Println(data)
fmt.Println(err)
}

View File

@@ -3,6 +3,13 @@ package tiktok_api
const RequestSuccessCode = 10000
const TiktokExpressCode = "chengduruoxi"
const (
CallbackSuccessCode = 0
CallbackSuccess = "success"
CallbackFailCode = 1000
CallbackFail = "fail"
)
// 订单消息回调类型(正向订单)
const (
CallbackCreatedOrderMsgTagId = "100" // 创建订单回调 ok

View File

@@ -0,0 +1,22 @@
package tiktok_api
import (
order_getSettleBillDetailV3_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_getSettleBillDetailV3/request"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/globals"
)
// GetSettleBillDetailV3 商家结算账单
// 已结算的订单才会有数据数据T+1生成建议第二天15点之后查询。如因任务积压导致延迟的情况建议重试。
// 1、推荐使用start_index方式查询
func (a *API) GetSettleBillDetailV3(param *order_getSettleBillDetailV3_request.OrderAddressModifyParam) {
request := order_getSettleBillDetailV3_request.New()
request.Param = param
result, err := request.Execute(a.accessTokenObj)
if err != nil {
return
}
globals.SugarLogger.Debugf("======:%s", utils.Format4Output(result, false))
globals.SugarLogger.Debugf("======:%s", err)
}

View File

@@ -37,6 +37,7 @@ func (a *API) UpdateSkuStock(param *sku_syncStock_request.SkuSyncStockParam) err
request := sku_syncStock_request.New()
request.Param = param
resp, err := request.Execute(a.accessTokenObj)
globals.SugarLogger.Debug("======/sku/syncStock:%s", utils.Format4Output(resp, false))
if err != nil {
return err
}
@@ -116,7 +117,7 @@ func (a *API) CreateStoreCommodity(skuParam *product_addV2_request.ProductAddV2P
return nil, err
}
globals.SugarLogger.Debug("=========", utils.Format4Output(result, false))
globals.SugarLogger.Debug("=========/product/addV2", utils.Format4Output(result, false))
if result.Code != RequestSuccessCode {
return nil, errors.New(result.SubMsg)
}

View File

@@ -232,10 +232,7 @@ func TestGetSkuDetail(t *testing.T) {
// 查询商品详情本地商品id
func TestGetSkuDetailLocalId(t *testing.T) {
token := `{"access_token":"a1746210-a8a3-4497-a87b-09d1f10dbb95","expires_in":1665652230,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专用店","refresh_token":"c1cf8d88-0983-4f2a-b969-3746fae6b0cd","authority_id":""}`
a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token)
data, err := a.GetSkuDetail("", "")
data, err := a.GetSkuDetail("3576767557912375101", "")
fmt.Println(err)
globals.SugarLogger.Debugf("====%s", utils.Format4Output(data, false))
}

View File

@@ -47,7 +47,7 @@ func TestUploadImg(t *testing.T) {
}
func TestRefundToken(t *testing.T) {
token := `{"access_token":"a1746210-a8a3-4497-a87b-09d1f10dbb95","expires_in":1665652252,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对 接专用店","refresh_token":"c1cf8d88-0983-4f2a-b969-3746fae6b0cd","authorit y_id":""}`
token := `{"access_token":"a1746210-a8a3-4497-a87b-09d1f10dbb95","expires_in":1665652230,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专用店","refresh_token":"c1cf8d88-0983-4f2a-b969-3746fae6b0cd","authority_id":""}`
a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token)
a.RefreshToken()