This commit is contained in:
richboo111
2022-10-13 13:48:09 +08:00
16 changed files with 972 additions and 208 deletions

View File

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

View File

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

View File

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

View File

@@ -219,10 +219,10 @@ type ShopOrderDetail struct {
PromotionPayAmount int64 `json:"promotion_pay_amount"`
// 收件人电话
PostTel string `json:"post_tel"`
encryptPostTel string `json:"encrypt_post_tel"`
EncryptPostTel string `json:"encrypt_post_tel"`
// 收件人姓名
PostReceiver string `json:"post_receiver"`
encryptPostReceiver string `json:"encrypt_post_receiver"`
EncryptPostReceiver string `json:"encrypt_post_receiver"`
// 收件人地址
PostAddr *PostAddr `json:"post_addr"`
// 预计发货时间,时间戳,秒
@@ -299,7 +299,7 @@ type PostAddr struct {
Street *Street `json:"street"`
// 详细地址
Detail string `json:"detail"`
encryptDetail string `json:"encrypt_detail"`
EncryptDetail string `json:"encrypt_detail"`
}
type SkuSpecsItem struct {
// 规格名称
@@ -324,7 +324,7 @@ type AccountInfoItem struct {
AccountType string `json:"account_type"`
// 账号值
AccountId string `json:"account_id"`
encryptAccountId string `json:"encrypt_account_id"`
EncryptAccountId string `json:"encrypt_account_id"`
}
type LogisticsInfoItem struct {
// 物流单号
@@ -551,10 +551,10 @@ type SkuOrderListItem struct {
Code string `json:"code"`
// 收件人电话
PostTel string `json:"post_tel"`
encryptPostTel string `json:"encrypt_post_tel"`
EncryptPostTel string `json:"encrypt_post_tel"`
// 收件人姓名
PostReceiver string `json:"post_receiver"`
encryptPostReceiver string `json:"encrypt_post_receiver"`
EncryptPostReceiver string `json:"encrypt_post_receiver"`
// 收件人地址
PostAddr *PostAddr `json:"post_addr"`
// 预计发货时间
@@ -741,10 +741,10 @@ type OrderPhaseListItem struct {
type UserIdInfo struct {
// 证件号
IdCardNo string `json:"id_card_no"`
encryptIdCardNo string `json:"encrypt_id_card_no"`
EncryptIdCardNo string `json:"encrypt_id_card_no"`
// 证件姓名
IdCardName string `json:"id_card_name"`
encryptIdCardName string `json:"encrypt_id_card_name"`
EncryptIdCardName string `json:"encrypt_id_card_name"`
}
type ShopOrderTagUiItem struct {
// 标签key

View File

@@ -0,0 +1,54 @@
package product_detail_request_out
import (
"encoding/json"
product_detail_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_detail/response"
doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core"
)
type ProductDetailOutRequest struct {
doudian_sdk.BaseDoudianOpApiRequest
Param *ProductDetailParamOutProductId
}
func (c *ProductDetailOutRequest) GetUrlPath() string {
return "/product/detail"
}
func New() *ProductDetailOutRequest {
request := &ProductDetailOutRequest{
Param: &ProductDetailParamOutProductId{},
}
request.SetConfig(doudian_sdk.GlobalConfig)
request.SetClient(doudian_sdk.DefaultDoudianOpApiClient)
return request
}
func (c *ProductDetailOutRequest) Execute(accessToken *doudian_sdk.AccessToken) (*product_detail_response.ProductDetailResponse, error) {
responseJson, err := c.GetClient().Request(c, accessToken)
if err != nil {
return nil, err
}
response := &product_detail_response.ProductDetailResponse{}
_ = json.Unmarshal([]byte(responseJson), response)
return response, nil
}
func (c *ProductDetailOutRequest) GetParamObject() interface{} {
return c.Param
}
func (c *ProductDetailOutRequest) GetParams() *ProductDetailParamOutProductId {
return c.Param
}
type ProductDetailParamOutProductId struct {
// 商品ID抖店系统生成店铺下唯一长度19位。
//ProductId string `json:"product_id"`
// 外部商家编码,商家自定义字段
OutProductId string `json:"out_product_id"`
//// true读取草稿数据false读取线上数据不传默认为false
//ShowDraft string `json:"show_draft"`
}

View File

@@ -0,0 +1,320 @@
package product_detail_response_out
import doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core"
type ProductDetailResponse struct {
doudian_sdk.BaseDoudianOpApiResponse
Data *ProductDetailData `json:"data"`
}
type TaxExemptionSkuInfo struct {
// 是否套装0 否 1 是)
IsSuit int32 `json:"is_suit"`
// 套装数量
SuitNum int64 `json:"suit_num"`
// 净含量
Volume int64 `json:"volume"`
}
type SpecPricesItem struct {
// 规格id抖店系统生成商品id下唯一。
SkuId int64 `json:"sku_id"`
// 外部商家skui_id编码商家自定义字段推荐使用outer_sku_id字段
OutSkuId int64 `json:"out_sku_id"`
// 外部商家skui_id编码商家自定义字段
OuterSkuId string `json:"outer_sku_id"`
// 规格id列表,多规格以”,“分隔;
SpecDetailIds []int64 `json:"spec_detail_ids"`
// 可售库存;当前现货可售库存;
StockNum int64 `json:"stock_num"`
// 商品价格;单位:分
Price int64 `json:"price"`
// 编码
Code string `json:"code"`
// 阶梯库存规则详见名称解释https://op.jinritemai.com/docs/guide-docs/202/170
StepStockNum int64 `json:"step_stock_num"`
// 活动库存规则详见名称解释https://op.jinritemai.com/docs/guide-docs/202/170
PromStockNum int64 `json:"prom_stock_num"`
// 活动阶梯库存规则详见名称解释https://op.jinritemai.com/docs/guide-docs/202/170
PromStepStockNum int64 `json:"prom_step_stock_num"`
// 【已废弃无需使用】规格ID
SpecDetailId1 int64 `json:"spec_detail_id1"`
// 【已废弃无需使用】规格ID
SpecDetailId2 int64 `json:"spec_detail_id2"`
// 【已废弃无需使用】规格ID
SpecDetailId3 int64 `json:"spec_detail_id3"`
// sku类型0-普通库存 1-区域库存 10-阶梯库存
SkuType int64 `json:"sku_type"`
// 供应商编码
SupplierId string `json:"supplier_id"`
// 活动现货库存
PromotionStockNum int64 `json:"promotion_stock_num"`
// 活动阶梯库存
PromotionStepStockNum int64 `json:"promotion_step_stock_num"`
// 海关申报要素(仅海淘商品返回信息)
CustomsReportInfo *CustomsReportInfo `json:"customs_report_info"`
// 现货订单锁定库存
LockStockNum int64 `json:"lock_stock_num"`
// 阶梯订单锁定库存
LockStepStockNum int64 `json:"lock_step_stock_num"`
// 仓ID->库存映射
StockNumMap map[string]int64 `json:"stock_num_map"`
// 海南免税sku信息仅海淘商品返回信息
TaxExemptionSkuInfo *TaxExemptionSkuInfo `json:"tax_exemption_sku_info"`
// 发货时间(全款预售模式时的发货时间/阶梯模式下阶梯发货时间9999是当日发、1次日发、2 是48小时发、5、15、45天等。发货时间规则可使用【product/getProductUpdateRule】获取
PresellDelay int64 `json:"presell_delay"`
// SKU物流信息
DeliveryInfos []DeliveryInfosItem `json:"delivery_infos"`
}
type ValuesItem struct {
// 销售属性值ID
Id int64 `json:"id"`
// 规格ID
SpecId int64 `json:"spec_id"`
// 销售属性值
Name string `json:"name"`
// 销售属性ID
Pid int64 `json:"pid"`
// 是否是销售属性值
IsLeaf int16 `json:"is_leaf"`
// 在线状态,-2彻底删除、0在线、1下线、2删除
Status int16 `json:"status"`
}
type SpecsItem struct {
// 【无需使用】销售属性id
Id int64 `json:"id"`
// 【无需使用】规格id
SpecId int64 `json:"spec_id"`
// 销售属性
Name string `json:"name"`
// 【无需使用】销售属性id
Pid int64 `json:"pid"`
// 是否是销售属性值
IsLeaf int16 `json:"is_leaf"`
// 销售属性值
Values []ValuesItem `json:"values"`
}
type QualityListItem struct {
// 资质key
QualityKey string `json:"quality_key"`
// 资质名称
QualityName string `json:"quality_name"`
// 资质链接
QualityAttachments []QualityAttachmentsItem `json:"quality_attachments"`
}
type CustomsReportInfo struct {
// 海关代码
HsCode string `json:"hs_code"`
// 法定第一计量数量
FirstMeasureQty float64 `json:"first_measure_qty"`
// 法定第二计量数量
SecondMeasureQty float64 `json:"second_measure_qty"`
// 法定第一计量单位
FirstMeasureUnit string `json:"first_measure_unit"`
// 法定第二计量单位
SecondMeasureUnit string `json:"second_measure_unit"`
// 售卖单位
Unit string `json:"unit"`
// 品名
ReportName string `json:"report_name"`
// 品牌
ReportBrandName string `json:"report_brand_name"`
// 用途
Usage string `json:"usage"`
// 规格型号
GModel string `json:"g_model"`
// 条形码
BarCode string `json:"bar_code"`
}
type DeliveryInfosItem struct {
// 信息类型
InfoType string `json:"info_type"`
// 信息值
InfoValue string `json:"info_value"`
// 信息计量单位
InfoUnit string `json:"info_unit"`
}
type CategoryDetail struct {
// 一级类目id
FirstCid int64 `json:"first_cid"`
// 二级类目id
SecondCid int64 `json:"second_cid"`
// 三级类目id
ThirdCid int64 `json:"third_cid"`
// 四级类目id
FourthCid int64 `json:"fourth_cid"`
// 一级类目名
FirstCname string `json:"first_cname"`
// 二级类目名
SecondCname string `json:"second_cname"`
// 三级类目名
ThirdCname string `json:"third_cname"`
// 四级类目名
FourthCname string `json:"fourth_cname"`
}
type LogisticsInfo struct {
// 通关模式1BBC 2BC 3邮关
CustomsClearType int64 `json:"customs_clear_type"`
// 原产国id
OriginCountryId int64 `json:"origin_country_id"`
// 货源国id
SourceCountryId int64 `json:"source_country_id"`
// 品牌所在地id
BrandCountryId int64 `json:"brand_country_id"`
// 税金承担方0商家承担1用户承担
TaxPayer int64 `json:"tax_payer"`
// 商品净重
NetWeightQty float64 `json:"net_weight_qty"`
}
type SpecPicsItem struct {
// id
SpecDetailId int64 `json:"spec_detail_id"`
// 规格图片uri
Pic string `json:"pic"`
}
type QualityAttachmentsItem struct {
// 1-图片2-pdf
MediaType int64 `json:"media_type"`
// 资质url
Url string `json:"url"`
}
type PoiResource struct {
// 1 随时退+过期自动退2 不支持退
CouponReturnMethods []int64 `json:"coupon_return_methods"`
}
type DelayRule struct {
// 是否开启特殊日期延迟发货
Enable bool `json:"enable"`
// 1 时间点2 时间范围
ConfigType int32 `json:"config_type"`
// 特殊日期延迟发货时间最晚发货时间,时间戳,单位秒
ConfigValue int64 `json:"config_value"`
// 特殊日期延迟发货时间下单开始时间,时间戳,单位秒
StartTime int64 `json:"start_time"`
// 特殊日期延迟发货时间下单结束时间,时间戳,单位秒
EndTime int64 `json:"end_time"`
}
type ProductDetailData struct {
// 商品ID抖店系统生成店铺下唯一长度19位。
ProductId int64 `json:"product_id"`
// 商品ID字符串类型抖店系统生成店铺下唯一长度19位。
ProductIdStr string `json:"product_id_str"`
// 【即将废弃】外部商家编码商家自定义字段。推荐使用outer_product_id字段
OutProductId int64 `json:"out_product_id"`
// 外部商家编码,商家自定义字段,支持最多 255个字符
OuterProductId string `json:"outer_product_id"`
// 【已废弃】open应用id
OpenUserId int64 `json:"open_user_id"`
// 商品标题规则至少输入8个字16个字符以上~输入30个字60个字符以内。标题不规范会引起商品下架影响您的正常销售详见商品发布规范https://school.jinritemai.com/doudian/web/article/101800?from=shop_article
Name string `json:"name"`
// 商品详情最大支持50张图片单张详情图宽高比不超2000*2000px大小5M内仅支持jpg/jpeg/png格式返回HTML格式注意商品详情不规范会引起商品下架影响您的正常销售https://school.jinritemai.com/doudian/web/article/101800?from=shop_article
Description string `json:"description"`
// 承诺发货时间,单位是天; 不传则默认为2天当presell_type为0或2均只支持传入2当presell_type为1时支持可选值为: 2、3、5、7、10、15
DeliveryMethod int32 `json:"delivery_method"`
// 海南免税,海关限购分类编码,仅海淘商品有值返回。
CdfCategory string `json:"cdf_category"`
// 商品在店铺中状态: 0-在线1-下线2-删除详见商品状态机https://op.jinritemai.com/docs/question-docs/92/2070
Status int64 `json:"status"`
// 商品规格,新增商品是全局唯一,注意:有部分历史存量商品可能存在规格复用
SpecId int64 `json:"spec_id"`
// 商品审核状态: 1-未提交2-待审核3-审核通过4-审核未通过5-封禁7-审核通过待上架详见商品状态机https://op.jinritemai.com/docs/question-docs/92/2070
CheckStatus int64 `json:"check_status"`
// 【已废弃】手机号
Mobile string `json:"mobile"`
// 【已废弃】品牌id推荐使用standard_brand_id字段通过【/brand/list】获取无品牌id商品返回默认值596120136
BrandId int64 `json:"brand_id"`
// 是否是组合商品的子商品true-是false-不是;
IsSubProduct bool `json:"is_sub_product"`
// 草稿状态0-无草稿,1-未提审,2-待审核,3-审核通过,4-审核未通过。详见https://op.jinritemai.com/docs/question-docs/92/2070
DraftStatus int64 `json:"draft_status"`
// 类目详情商品类目id可使用【/shop/getShopCategory】查询
CategoryDetail *CategoryDetail `json:"category_detail"`
// 【已废弃】支持的支付方式0货到付款 1在线支付 2两者都支持
PayType int64 `json:"pay_type"`
// 【已废弃】商家推荐语
RecommendRemark string `json:"recommend_remark"`
// 额外信息,如资质
Extra string `json:"extra"`
// 【已废弃】无业务意义
IsCreate int64 `json:"is_create"`
// 商品创建时间时间格式yyyy-mm-dd hh:mm:ss
CreateTime string `json:"create_time"`
// 商品更新时间时间格式yyyy-mm-dd hh:mm:ss
UpdateTime string `json:"update_time"`
// 商品主图最多支持5张图片仅支持pngjpgjpeg格式宽高比例为1:1至少600*600px大小5M内
Pic []string `json:"pic"`
// 【即将废弃】推荐使用product_format_new属性名称|属性值 之间用|分隔, 多组之间用^分开
ProductFormat string `json:"product_format"`
// 规格图片
SpecPics []SpecPicsItem `json:"spec_pics"`
// 商品sku详情
SpecPrices []SpecPricesItem `json:"spec_prices"`
// 销售属性
Specs []SpecsItem `json:"specs"`
// 头图,主图第一张
Img string `json:"img"`
// 预售类型1-全款预售0-非预售2-阶梯库存
PresellType int64 `json:"presell_type"`
// 单用户下单限购件数
MaximumPerOrder int64 `json:"maximum_per_order"`
// 单用户累计限购件数
LimitPerBuyer int64 `json:"limit_per_buyer"`
// 用户每次下单至少购买的件数
MinimumPerOrder int64 `json:"minimum_per_order"`
// 资质信息
QualityList []QualityListItem `json:"quality_list"`
// 跨境物流信息(仅海淘商品返回)
LogisticsInfo *LogisticsInfo `json:"logistics_info"`
// 售后服务
AfterSaleService string `json:"after_sale_service"`
// 商品价格是否含税
PriceHasTax int64 `json:"price_has_tax"`
// 可预约发货天数
AppointDeliveryDay int64 `json:"appoint_delivery_day"`
// 类目属性
ProductFormatNew string `json:"product_format_new"`
// 品牌库brand id原brand_id代表商标关系id
StandardBrandId int64 `json:"standard_brand_id"`
// 划线价 单位分
MarketPrice int64 `json:"market_price"`
// 售卖价 单位分
DiscountPrice int64 `json:"discount_price"`
// 汽车vin码
CarVinCode string `json:"car_vin_code"`
// 生活娱乐充值模式
NeedRechargeMode bool `json:"need_recharge_mode"`
// 多账号充值账号模板
AccountTemplateId string `json:"account_template_id"`
// 发货模式presell_type = 0 现货presell_type = 2 阶梯presell_type = 1 && presell_config_level = 0 全款预售presell_type = 1 && presell_config_level = 1 sku预售presell_type = 1 && presell_config_level = 2 现货+预售presell_type = 1 && presell_config_level = 3 新预售
PresellConfigLevel int64 `json:"presell_config_level"`
// 现货模式的发货天数阶梯模式现货部分的发货天数9999=当日发、1=次日发
DeliveryDelayDay int64 `json:"delivery_delay_day"`
// 阶梯模式阶梯部分的发货天数;商品全款预售模式,预售天数
PresellDelay int64 `json:"presell_delay"`
// 卡券信息
PoiResource *PoiResource `json:"poi_resource"`
// 特殊日期延迟发货规则
DelayRule *DelayRule `json:"delay_rule"`
// 3:4长图url(仅素材中心url有效)
LongPicUrl string `json:"long_pic_url"`
// 售卖方式;0:全渠道手售卖,1:仅指定直播间售卖
SellChannel []int64 `json:"sell_channel"`
// 运费模版ID
FreightId int64 `json:"freight_id"`
// 主图视频ID
MaterialVideoId string `json:"material_video_id"`
// 提取方式新字段,推荐使用。"0": 普通商品-使用物流发货, "1": 虚拟商品-无需物流与电子交易凭证, "2": 虚拟商品-使用电子交易凭证, "3": 虚拟商品-充值直连
PickupMethod string `json:"pickup_method"`
// 尺码模板ID
SizeInfoTemplateId int64 `json:"size_info_template_id"`
// 白底图url(仅素材中心url有效)
WhiteBackGroundPicUrl string `json:"white_back_ground_pic_url"`
// 销售渠道类型包括纯电商onlineOnly、专柜同款sameAsOffline云零售商家https://fxg.jinritemai.com/ffa/merchant-growth/cloud-retail可以设置
SaleChannelType string `json:"sale_channel_type"`
// 门店ID
StoreId int64 `json:"store_id"`
// 主商品ID
MainProductId int64 `json:"main_product_id"`
// 限售模板ID
SaleLimitId int64 `json:"sale_limit_id"`
// 系统推荐的标题前缀
NamePrefix string `json:"name_prefix"`
}

View File

@@ -96,6 +96,7 @@ type DelayRule struct {
// 特殊日期延迟发货时间下单结束时间,时间戳,单位秒
EndTime int64 `json:"end_time"`
}
type ProductEditV2Param struct {
// 商品ID
ProductId int64 `json:"product_id"`
@@ -228,3 +229,9 @@ type ProductEditV2Param struct {
// 限售模板ID
SaleLimitId int64 `json:"sale_limit_id"`
}
type ProductEditV2Param2 struct {
// 商品ID
ProductId int64 `json:"product_id"`
Commit bool `json:"commit"`
}

View File

@@ -0,0 +1,239 @@
package product_editV2_commit_request
import (
"encoding/json"
product_editV2_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_editV2/response"
doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core"
)
type ProductEditV2Request struct {
doudian_sdk.BaseDoudianOpApiRequest
Param *ProductEditV2Param2
}
func (c *ProductEditV2Request) GetUrlPath() string {
return "/product/editV2"
}
func New() *ProductEditV2Request {
request := &ProductEditV2Request{
Param: &ProductEditV2Param2{},
}
request.SetConfig(doudian_sdk.GlobalConfig)
request.SetClient(doudian_sdk.DefaultDoudianOpApiClient)
return request
}
func (c *ProductEditV2Request) Execute(accessToken *doudian_sdk.AccessToken) (*product_editV2_response.ProductEditV2Response, error) {
responseJson, err := c.GetClient().Request(c, accessToken)
if err != nil {
return nil, err
}
response := &product_editV2_response.ProductEditV2Response{}
_ = json.Unmarshal([]byte(responseJson), response)
return response, nil
}
func (c *ProductEditV2Request) GetParamObject() interface{} {
return c.Param
}
func (c *ProductEditV2Request) GetParams() *ProductEditV2Param2 {
return c.Param
}
type ProductEditV2Param2 struct {
// 商品ID
ProductId int64 `json:"product_id"`
Commit bool `json:"commit"`
}
//
//
//type QualityAttachmentsItem struct {
// // 1-图片2-pdf
// MediaType int64 `json:"media_type"`
// // 凭证url
// Url string `json:"url"`
//}
//type QualityListItem struct {
// // 资质key
// QualityKey string `json:"quality_key"`
// // 资质名称
// QualityName string `json:"quality_name"`
// // 资质
// QualityAttachments []QualityAttachmentsItem `json:"quality_attachments"`
//}
//type PoiResource struct {
// // 有效时间段从领取日开始计算优先级高于ValidStart-ValidEnd
// ValidDays int64 `json:"valid_days"`
// // 卡券有效开始时间,秒单位时间戳
// ValidStart int64 `json:"valid_start"`
// // 卡券有效截止时间,秒单位时间戳
// ValidEnd int64 `json:"valid_end"`
// // 客服电话
// ServiceNum string `json:"service_num"`
// // 领取须知
// Notification string `json:"notification"`
// // 平台产生券码: 1 ; 合作方api实时传入的券码: 4
// CodeType int64 `json:"code_type"`
// // 券码总量0/-1表示不限制平台券时须\u003e0
// Count int64 `json:"count"`
// // 0-不支持二次兑换1-支持二次兑换
// CouponSecondExchange int64 `json:"couponSecondExchange"`
// // 可核销总次数
// TotalCanUseCount int32 `json:"total_can_use_count"`
// // 兑换链接
// Link string `json:"link"`
// // 券码使用条件
// Condition string `json:"condition"`
// // 数组当前只支持一个元素且只可为 1或2其中 1 表示随时退+过期自动退2 表示不支持退
// CouponReturnMethods []int64 `json:"coupon_return_methods"`
//}
//type DelayRule struct {
// // 是否开启特殊日期延迟发货
// Enable bool `json:"enable"`
// // 1 时间点2 时间范围
// ConfigType int32 `json:"config_type"`
// // 特殊日期延迟发货时间最晚发货时间时间戳单位秒当config_type=1时传时间戳代表最晚x发货当config_type=2时传天数代表延迟x天发货
// ConfigValue int64 `json:"config_value"`
// // 特殊日期延迟发货时间下单开始时间,时间戳,单位秒
// StartTime int64 `json:"start_time"`
// // 特殊日期延迟发货时间下单结束时间,时间戳,单位秒
// EndTime int64 `json:"end_time"`
//}
//
//type ProductEditV2Param struct {
// // 商品ID
// ProductId int64 `json:"product_id"`
// // 0-普通3-虚拟6玉石闪购7云闪购
// ProductType int64 `json:"product_type"`
// // 叶子类目ID通过/shop/getShopCategory接口获取
// CategoryLeafId int64 `json:"category_leaf_id"`
// // 属性名称|属性值 之间用|分隔, 多组之间用^分开
// ProductFormat string `json:"product_format"`
// // 商品名称最多60个字符(30个汉字)不能含emoj表情
// Name string `json:"name"`
// // 商家推荐语不能含emoj表情
// RecommendRemark string `json:"recommend_remark"`
// // 商品轮播图,多张图片用 \"|\" 分开第一张图为主图最多5张至少600x600大小不超过1M 注:\"pic\"、\"description\"、\"spec_pic\"这三个字段里的传入的图片数量总和不得超过50张。
// Pic string `json:"pic"`
// // 商品轮播图,多张图片用 \"|\" 分开第一张图为主图最多5张至少600x600大小不超过1M 注:\"pic\"、\"description\"、\"spec_pic\"这三个字段里的传入的图片数量总和不得超过50张。
// Description string `json:"description"`
// // 已废弃支付方式0货到付款 1在线支付2货到付款+在线支付
// PayType int64 `json:"pay_type"`
// // 海南免税生效。 0:离岛免税、1:邮寄、2:离岛自提+邮寄
// DeliveryMethod int32 `json:"delivery_method"`
// // 海南免税:海关限购分类编码
// CdfCategory string `json:"cdf_category"`
// // 1 减库存类型1-拍下减库存 2-付款减库存
// ReduceType int64 `json:"reduce_type"`
// // 同店商品推荐为空表示使用系统推荐多个product_id使用“|”分开
// AssocIds string `json:"assoc_ids"`
// // 运费模板id传0表示包邮通过/freightTemplate/list接口获取
// FreightId int64 `json:"freight_id"`
// // 重量
// Weight float64 `json:"weight"`
// // 重量单位0-kg, 1-g
// WeightUnit int64 `json:"weight_unit"`
// // delivery_delay_day 承诺发货时间,单位是天,不传则默认为2天。现货发货(presell_type=0)和阶梯发货模式(presell_type=2)时必填支持传入9999 、1、 2 分别表示当日发、次日发、48小时发具体支持传入的参数范围/product/getProductUpdateRule
// DeliveryDelayDay int64 `json:"delivery_delay_day"`
// // 发货模式0-现货发货1-预售发货2-阶梯发货默认0
// PresellType int64 `json:"presell_type"`
// // 全款预售模式时的发货时间/阶梯模式下阶梯发货时间,具体支持传入的参数范围/product/getProductUpdateRule
// PresellDelay int64 `json:"presell_delay"`
// // 预售结束时间格式2020-02-21 18:54:27最多支持设置距离当前30天
// PresellEndTime string `json:"presell_end_time"`
// // 是否支持7天无理由0不支持1支持2支持拆封后不支持
// Supply7dayReturn int64 `json:"supply_7day_return"`
// // 客服电话号码
// Mobile string `json:"mobile"`
// // false仅保存true保存+提审
// Commit bool `json:"commit"`
// // 品牌id (请求店铺授权品牌接口获取) (效果即为商品详情页面中的品牌字段)
// BrandId int64 `json:"brand_id"`
// // 商家可见备注
// Remark string `json:"remark"`
// // 外部product_id
// OutProductId int64 `json:"out_product_id"`
// // 资质信息,可通过/product/qualificationConfig获取
// QualityList []QualityListItem `json:"quality_list"`
// // 如果不填,则规格名为各级规格名用 \"-\" 自动生成
// SpecName string `json:"spec_name"`
// // 店铺通用规格,能被同类商品通用。多规格用^分隔,规格与规格值用|分隔,多个规格值用,分隔。如果创建或编辑现货+预售商品或新预售商品时,须包含发货时效,如:颜色|黑色,白色,黄色^尺码|S,M,L^发货时效|5天内发货,15天内发货
// Specs string `json:"specs"`
// // sku详情数量应该等于规格1规格2规格3sku数量和规格组合数必须一致 sku不可售时库存可设置为0。 delivery_infos为SKU物流信息info_value为字符串类型示例"12"info_type填weightinfo_unit支持mg,g,kg
// SpecPrices string `json:"spec_prices"`
// // 如颜色-尺寸, 颜色就是主规格, 颜色如黑,白,黄,它们图片url以逗号分隔 注:\"pic\"、\"description\"、\"spec_pic\"这三个字段里的传入的图片数量总和不得超过50张。
// SpecPic string `json:"spec_pic"`
// // 每个用户每次下单限购件数
// MaximumPerOrder int64 `json:"maximum_per_order"`
// // 每个用户累计限购件数
// LimitPerBuyer int64 `json:"limit_per_buyer"`
// // 每个用户每次下单至少购买的件数
// MinimumPerOrder int64 `json:"minimum_per_order"`
// // 通过/product/getCatePropertyV2获取 格式:{"property_id":[{"value":value,"name":"property_name","diy_type":0}]}, name的类型是stringvalue和diy_type的类型是number
// ProductFormatNew string `json:"product_format_new"`
// // spu id
// SpuId int64 `json:"spu_id"`
// // 可预约发货天数
// AppointDeliveryDay int64 `json:"appoint_delivery_day"`
// // third_url
// ThirdUrl string `json:"third_url"`
// // extra
// Extra string `json:"extra"`
// // src
// Src string `json:"src"`
// // 外部product id
// OuterProductId string `json:"outer_product_id"`
// // standard_brand_id通过/brand/list获取无品牌id则传596120136
// StandardBrandId int64 `json:"standard_brand_id"`
// // 卡券类型需要传true
// NeedCheckOut bool `json:"need_check_out"`
// // 卡券信息
// PoiResource *PoiResource `json:"poi_resource"`
// // 使用qualityList覆盖当前商品资质qualityList传空代表清空
// ForceUseQualityList bool `json:"force_use_quality_list"`
// // 汽车Vin码
// CarVinCode string `json:"car_vin_code"`
// // 0全款预售1sku预售2现货+预售 3新预售
// PresellConfigLevel int64 `json:"presell_config_level"`
// // 充值模式
// NeedRechargeMode bool `json:"need_recharge_mode"`
// // 多账号模板
// AccountTemplateId string `json:"account_template_id"`
// // 全款预售和sku预售时传递其他不传 0 预售结束后发货 1支付完成后发货
// PresellDeliveryType int64 `json:"presell_delivery_type"`
// // 白底图url(仅素材中心url有效)
// WhiteBackGroundPicUrl string `json:"white_back_ground_pic_url"`
// // 3:4长图url(仅素材中心url有效)
// LongPicUrl string `json:"long_pic_url"`
// // 售后服务参数,key:value格式 supply_day_return_selector(7天无理由选项)N天-政策代号N只支持7和15 supply_red_ass_return红屁屁无忧0不支持1支持 supply_allergy_return过敏无忧,仅跨境可选0不支持1支持 damaged_order_return坏损包退0不支持1支持 support_allergy_returnV2过敏包退境内可选0不支持1支持
// AfterSaleService map[string]string `json:"after_sale_service"`
// // 售卖方式;0:全渠道手售卖,1:仅指定直播间售卖
// SellChannel []int64 `json:"sell_channel"`
// // 审核通过后上架售卖时间配置:0-立即上架售卖 1-放入仓库
// StartSaleType int64 `json:"start_sale_type"`
// // 特殊日期延迟发货规则
// DelayRule *DelayRule `json:"delay_rule"`
// // 主图视频ID可以先通过https://op.jinritemai.com/docs/api-docs/69/1617接口上传视频获取审核通过的视频素材ID进行传入
// MaterialVideoId string `json:"material_video_id"`
// // 提取方式新字段,推荐使用。"0": 普通商品-使用物流发货, "1": 虚拟商品-无需物流与电子交易凭证, "2": 虚拟商品-使用电子交易凭证, "3": 虚拟商品-充值直连
// PickupMethod string `json:"pickup_method"`
// // 尺码模板ID
// SizeInfoTemplateId int64 `json:"size_info_template_id"`
// // 外部商品url
// SubstituteGoodsUrl string `json:"substitute_goods_url"`
// // 销售渠道类型可选onlineOnly纯电商仅在线上售卖或sameAsOffline专柜同款线上线下都有售卖云零售商家https://fxg.jinritemai.com/ffa/merchant-growth/cloud-retail可以设置
// SaleChannelType string `json:"sale_channel_type"`
// // 通过/product/getRecommendName接口推荐的商品标题前缀注意系统根据类目属性生成前缀字符串时末尾有一个空格
// NamePrefix string `json:"name_prefix"`
// // 门店ID
// StoreId int64 `json:"store_id"`
// // 主商品ID
// MainProductId int64 `json:"main_product_id"`
// // 限售模板ID
// SaleLimitId int64 `json:"sale_limit_id"`
//}

View File

@@ -0,0 +1,10 @@
package product_editV2_commit_request
import doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core"
type ProductEditV2Response struct {
doudian_sdk.BaseDoudianOpApiResponse
Data *ProductEditV2Data `json:"data"`
}
type ProductEditV2Data struct {
}

View File

@@ -1,9 +1,11 @@
package tiktok_api
import (
"fmt"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/globals"
"testing"
"time"
)
func TestApi(t *testing.T) {
@@ -16,3 +18,22 @@ func TestApi(t *testing.T) {
globals.SugarLogger.Debugf("%v", utils.Format4Output(a.appKey, false))
globals.SugarLogger.Debugf("%v", utils.Format4Output(a.appSecret, false))
}
func TestQueryOrderDetail(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.GetTiktokOrderDetail("4988546918828606694")
globals.SugarLogger.Debugf("=====%s", utils.Format4Output(data, false))
globals.SugarLogger.Debugf("=====%s", err)
}
func TestRefaseToken(t *testing.T) {
a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", "")
a.CreateToken("41155cd5-d30f-4075-9c44-b75ffa1a84ee")
//{"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" :""}
}
func TestTimeNow(t *testing.T) {
h, m, s := time.Now().Clock()
fmt.Println(h, m, s)
}

View File

@@ -18,9 +18,8 @@ import (
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"
"git.rosy.net.cn/baseapi/utils"
"io/ioutil"
"git.rosy.net.cn/jx-callback/globals"
"math"
"net/http"
"time"
)
@@ -36,7 +35,7 @@ func (a *API) GetTiktokOrderDetail(orderId string) (*order_orderDetail_response.
return nil, err
}
if orderDetail.Code != RequestSuccessCode {
return nil, errors.New(orderDetail.Msg)
return nil, errors.New(orderDetail.SubMsg)
}
return orderDetail.Data.ShopOrderDetail, nil
@@ -322,13 +321,9 @@ func (a *API) LogisticsAdd(orderId string, companyCode string, isRefundReject bo
return nil
}
/***********************************************/
// CreateOrderCallback 订单创建,抖店创建订单后,回调消息通知本服务器
func (a *API) CreateOrderCallback(request *http.Request) (map[string][]interface{}, *CallbackResponse) {
orderStatus, err := ioutil.ReadAll(request.Body)
if err != nil {
return nil, &CallbackResponse{Code: CallbackFailCode, Msg: CallbackFail}
}
func (a *API) CreateOrderCallback(orderStatus []byte) (map[string][]interface{}, *CallbackResponse) {
globals.SugarLogger.Debugf("88888888888888=%s", utils.Format4Output(string(orderStatus), false))
var resp []*OrderCallback
if err := json.Unmarshal(orderStatus, &resp); err != nil {
@@ -340,204 +335,127 @@ func (a *API) CreateOrderCallback(request *http.Request) (map[string][]interface
for _, data := range resp {
switch data.Tag {
case CallbackCreatedOrderMsgTagId: // 创建订单
if utils.IsNil(data.Data) {
continue
create := CreateOrderData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := CreateOrderData{}
//if err := json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackCreatedOrderMsgTagId] = append(callbackResult[CallbackCreatedOrderMsgTagId], create)
callbackResult[CallbackCreatedOrderMsgTagId] = append(callbackResult[CallbackCreatedOrderMsgTagId], data.Data)
callbackResult[CallbackCreatedOrderMsgTagId] = append(callbackResult[CallbackCreatedOrderMsgTagId], create)
case CallbackPayOrderMsgTagId: // 支付订单
if utils.IsNil(data.Data) {
continue
create := PayOrderData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := PayOrderData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackPayOrderMsgTagId] = append(callbackResult[CallbackPayOrderMsgTagId], create)
callbackResult[CallbackPayOrderMsgTagId] = append(callbackResult[CallbackPayOrderMsgTagId], data.Data)
callbackResult[CallbackPayOrderMsgTagId] = append(callbackResult[CallbackPayOrderMsgTagId], create)
globals.SugarLogger.Debugf("CallbackPayOrderMsgTagId======%s", utils.Format4Output(callbackResult, false))
case CallbackWaitOrderMsgTagId: // 支付订单待处理(风控审核)
if utils.IsNil(data.Data) {
continue
create := WaitOrderData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := WaitOrderData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackWaitOrderMsgTagId] = append(callbackResult[CallbackWaitOrderMsgTagId], create)
callbackResult[CallbackWaitOrderMsgTagId] = append(callbackResult[CallbackWaitOrderMsgTagId], data.Data)
callbackResult[CallbackWaitOrderMsgTagId] = append(callbackResult[CallbackWaitOrderMsgTagId], create)
case CallbackPartGoodsMsgTagId: // 卖家部分发货
if utils.IsNil(data.Data) {
continue
create := SomeSendOrderData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := SomeSendOrderData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackPartGoodsMsgTagId] = append(callbackResult[CallbackPartGoodsMsgTagId], create)
callbackResult[CallbackPartGoodsMsgTagId] = append(callbackResult[CallbackPartGoodsMsgTagId], data.Data)
callbackResult[CallbackPartGoodsMsgTagId] = append(callbackResult[CallbackPartGoodsMsgTagId], create)
case CallbackPartAllGoodsMsgTagId: // 卖家发货
if utils.IsNil(data.Data) {
continue
create := BusinessDeliveryData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := BusinessDeliveryData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackPartAllGoodsMsgTagId] = append(callbackResult[CallbackPartAllGoodsMsgTagId], create)
callbackResult[CallbackPartAllGoodsMsgTagId] = append(callbackResult[CallbackPartAllGoodsMsgTagId], data.Data)
callbackResult[CallbackPartAllGoodsMsgTagId] = append(callbackResult[CallbackPartAllGoodsMsgTagId], create)
case CallbackCancelOrderMsgTagId: // 取消订单
if utils.IsNil(data.Data) {
continue
create := CreateOrderData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := CancelOrderData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackCancelOrderMsgTagId] = append(callbackResult[CallbackCancelOrderMsgTagId], create)
callbackResult[CallbackCancelOrderMsgTagId] = append(callbackResult[CallbackCancelOrderMsgTagId], data.Data)
callbackResult[CallbackCancelOrderMsgTagId] = append(callbackResult[CallbackCancelOrderMsgTagId], create)
case CallbackSuccessOrderMsgTagId: // 卖家确认收货时,会自动完成
if utils.IsNil(data.Data) {
continue
create := SuccessOrderData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := SuccessOrderData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackSuccessOrderMsgTagId] = append(callbackResult[CallbackSuccessOrderMsgTagId], create)
callbackResult[CallbackSuccessOrderMsgTagId] = append(callbackResult[CallbackSuccessOrderMsgTagId], data.Data)
callbackResult[CallbackSuccessOrderMsgTagId] = append(callbackResult[CallbackSuccessOrderMsgTagId], create)
case CallbackWayBillChangeOrderMsgTagId: // 发货物流消息便跟
if utils.IsNil(data.Data) {
continue
create := WayBillChangeData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := WayBillChangeData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackWayBillChangeOrderMsgTagId] = append(callbackResult[CallbackWayBillChangeOrderMsgTagId], create)
callbackResult[CallbackWayBillChangeOrderMsgTagId] = append(callbackResult[CallbackWayBillChangeOrderMsgTagId], data.Data)
callbackResult[CallbackWayBillChangeOrderMsgTagId] = append(callbackResult[CallbackWayBillChangeOrderMsgTagId], create)
case CallbackReceivingChangeOrderMsgTagId: // 收货地址消息变更(商家审核通过触发)
if utils.IsNil(data.Data) {
continue
create := ReceivingAddressChangeData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := ReceivingAddressChangeData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackReceivingChangeOrderMsgTagId] = append(callbackResult[CallbackReceivingChangeOrderMsgTagId], create)
callbackResult[CallbackReceivingChangeOrderMsgTagId] = append(callbackResult[CallbackReceivingChangeOrderMsgTagId], data.Data)
callbackResult[CallbackReceivingChangeOrderMsgTagId] = append(callbackResult[CallbackReceivingChangeOrderMsgTagId], create)
case CallbackChangeMoneyMsgTagId: // 卖家修改订单/运单金额回调
if utils.IsNil(data.Data) {
continue
create := UpdateAmountChangeData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := UpdateAmountChangeData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackChangeMoneyMsgTagId] = append(callbackResult[CallbackChangeMoneyMsgTagId], create)
callbackResult[CallbackChangeMoneyMsgTagId] = append(callbackResult[CallbackChangeMoneyMsgTagId], data.Data)
callbackResult[CallbackChangeMoneyMsgTagId] = append(callbackResult[CallbackChangeMoneyMsgTagId], create)
case CallbackBusinessRemarkMsgTagId: // 买家收货消息变更(手机,地址,姓名),用户C端修改触发(需要上面审核接口)
if utils.IsNil(data.Data) {
continue
create := BuyerUpdateWayBillData{}
if err := json.Unmarshal([]byte(data.Data), create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := BuyerUpdateWayBillData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackBusinessRemarkMsgTagId] = append(callbackResult[CallbackBusinessRemarkMsgTagId], create)
callbackResult[CallbackBusinessRemarkMsgTagId] = append(callbackResult[CallbackBusinessRemarkMsgTagId], data.Data)
callbackResult[CallbackBusinessRemarkMsgTagId] = append(callbackResult[CallbackBusinessRemarkMsgTagId], create)
case CallbackApplyUpdateAddressMsgTagId: // 商家修改交易备注回调
if utils.IsNil(data.Data) {
continue
create := BusinessUpdateRemakeData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := BusinessUpdateRemakeData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackApplyUpdateAddressMsgTagId] = append(callbackResult[CallbackApplyUpdateAddressMsgTagId], create)
callbackResult[CallbackApplyUpdateAddressMsgTagId] = append(callbackResult[CallbackApplyUpdateAddressMsgTagId], data.Data)
callbackResult[CallbackApplyUpdateAddressMsgTagId] = append(callbackResult[CallbackApplyUpdateAddressMsgTagId], create)
case CallbackSendOrderTimeChangeMsgTagId: // 订单发货时消息变更回调
if utils.IsNil(data.Data) {
continue
create := AppointmentChangeData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := AppointmentChangeData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
callbackResult[CallbackSendOrderTimeChangeMsgTagId] = append(callbackResult[CallbackSendOrderTimeChangeMsgTagId], data.Data)
callbackResult[CallbackSendOrderTimeChangeMsgTagId] = append(callbackResult[CallbackSendOrderTimeChangeMsgTagId], create)
/*********下面属于订单退货消息************/
case CallbackRefundOrderMsgTagId: // 买家发起售后申请消息
if utils.IsNil(data.Data) {
continue
create := BuyerRefundCreatedData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := BuyerRefundCreatedData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackRefundOrderMsgTagId] = append(callbackResult[CallbackRefundOrderMsgTagId], create)
callbackResult[CallbackRefundOrderMsgTagId] = append(callbackResult[CallbackRefundOrderMsgTagId], data.Data)
callbackResult[CallbackRefundOrderMsgTagId] = append(callbackResult[CallbackRefundOrderMsgTagId], create)
case CallbackUpdateRefundOrderMsgTagId: // 买家修改售后申请消息
if utils.IsNil(data.Data) {
continue
create := BuyerRefundModifiedData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := BuyerRefundModifiedData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackUpdateRefundOrderMsgTagId] = append(callbackResult[CallbackUpdateRefundOrderMsgTagId], create)
callbackResult[CallbackUpdateRefundOrderMsgTagId] = append(callbackResult[CallbackUpdateRefundOrderMsgTagId], data.Data)
callbackResult[CallbackUpdateRefundOrderMsgTagId] = append(callbackResult[CallbackUpdateRefundOrderMsgTagId], create)
case CallbackRefundOrderSuccessMsgTagId: // 退款成功消息
if utils.IsNil(data.Data) {
continue
create := BusinessRefundSuccessData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := BusinessRefundSuccessData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackRefundOrderSuccessMsgTagId] = append(callbackResult[CallbackRefundOrderSuccessMsgTagId], create)
callbackResult[CallbackRefundOrderSuccessMsgTagId] = append(callbackResult[CallbackRefundOrderSuccessMsgTagId], data.Data)
callbackResult[CallbackRefundOrderSuccessMsgTagId] = append(callbackResult[CallbackRefundOrderSuccessMsgTagId], create)
case CallbackRefundOrderRefuseMsgTagId: // 拒绝退款消息
if utils.IsNil(data.Data) {
continue
create := BusinessNotRefundRefusedData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := BusinessNotRefundRefusedData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackRefundOrderRefuseMsgTagId] = append(callbackResult[CallbackRefundOrderRefuseMsgTagId], create)
callbackResult[CallbackRefundOrderRefuseMsgTagId] = append(callbackResult[CallbackRefundOrderRefuseMsgTagId], data.Data)
callbackResult[CallbackRefundOrderRefuseMsgTagId] = append(callbackResult[CallbackRefundOrderRefuseMsgTagId], create)
case CallbackRefundShopMsgTagId: // 拒绝退货申请消息
if utils.IsNil(data.Data) {
continue
create := BusinessNotReturnApplyRefusedData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := BusinessNotReturnApplyRefusedData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackRefundShopMsgTagId] = append(callbackResult[CallbackRefundShopMsgTagId], create)
callbackResult[CallbackRefundShopMsgTagId] = append(callbackResult[CallbackRefundShopMsgTagId], data.Data)
callbackResult[CallbackRefundShopMsgTagId] = append(callbackResult[CallbackRefundShopMsgTagId], create)
case CallbackReturnApplyAgreedMsgTagId: // 卖家同意时,推送此消息
if utils.IsNil(data.Data) {
continue
create := BusinessReturnApplyAgreedData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := BusinessReturnApplyAgreedData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
callbackResult[CallbackReturnApplyAgreedMsgTagId] = append(callbackResult[CallbackReturnApplyAgreedMsgTagId], data.Data)
callbackResult[CallbackReturnApplyAgreedMsgTagId] = append(callbackResult[CallbackReturnApplyAgreedMsgTagId], create)
case CallbackReturnRefundAgreedMsgTagId: // 同意退款消息
if utils.IsNil(data.Data) {
continue
create := BusinessRefundAgreedData{}
if err := json.Unmarshal([]byte(data.Data), &create); err != nil {
return nil, CallbackResponseErr(false)
}
//create := AppointmentChangeData{}
//if err = json.Unmarshal([]byte(utils.Interface2String(data.Data)), create); err != nil {
// return nil, CallbackResponseErr(false)
//}
//callbackResult[CallbackReturnRefundAgreedMsgTagId] = append(callbackResult[CallbackReturnRefundAgreedMsgTagId], create)
callbackResult[CallbackReturnRefundAgreedMsgTagId] = append(callbackResult[CallbackReturnRefundAgreedMsgTagId], data.Data)
callbackResult[CallbackReturnRefundAgreedMsgTagId] = append(callbackResult[CallbackReturnRefundAgreedMsgTagId], create)
default:
return nil, CallbackResponseErr(false)
}
@@ -551,122 +469,122 @@ func (a *API) GetCallbackOrderId(msgId string, data interface{}) (string, *Callb
switch msgId {
case CallbackCreatedOrderMsgTagId: // 创建订单
create := CreateOrderData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", Err2CallbackResponse(err, "")
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackPayOrderMsgTagId: // 支付订单
create := PayOrderData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackWaitOrderMsgTagId: // 支付订单待处理(风控审核)
create := WaitOrderData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackPartGoodsMsgTagId: // 卖家部分发货
create := SomeSendOrderData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackPartAllGoodsMsgTagId: // 卖家发货
create := BusinessDeliveryData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackCancelOrderMsgTagId: // 取消订单
create := CancelOrderData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackSuccessOrderMsgTagId: // 卖家确认收货时,会自动完成
create := SuccessOrderData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackWayBillChangeOrderMsgTagId: // 发货物流消息便跟
create := WayBillChangeData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackReceivingChangeOrderMsgTagId: // 收货地址消息变更(商家审核通过触发)
create := ReceivingAddressChangeData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackChangeMoneyMsgTagId: // 卖家修改订单/运单金额回调
create := UpdateAmountChangeData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackBusinessRemarkMsgTagId: // 买家收货消息变更(手机,地址,姓名),用户C端修改触发(需要上面审核接口)
create := BuyerUpdateWayBillData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackApplyUpdateAddressMsgTagId: // 商家修改交易备注回调
create := BusinessUpdateRemakeData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackSendOrderTimeChangeMsgTagId: // 订单发货时消息变更回调
create := AppointmentChangeData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return create.PId, Err2CallbackResponse(nil, "")
/*********下面属于订单退货消息************/
case CallbackRefundOrderMsgTagId: // 买家发起售后申请消息
create := BuyerRefundCreatedData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackUpdateRefundOrderMsgTagId: // 买家修改售后申请消息
create := BuyerRefundModifiedData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackRefundOrderSuccessMsgTagId: // 退款成功消息
create := BusinessRefundSuccessData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackRefundOrderRefuseMsgTagId: // 拒绝退款消息
create := BusinessNotRefundRefusedData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackRefundShopMsgTagId: // 拒绝退货申请消息
create := BusinessNotReturnApplyRefusedData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackReturnApplyAgreedMsgTagId: // 卖家同意时,推送此消息
create := BusinessReturnApplyAgreedData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
case CallbackReturnRefundAgreedMsgTagId: // 同意退款消息
create := AppointmentChangeData{}
if err := json.Unmarshal([]byte(utils.Interface2String(data)), create); err != nil {
if err := utils.Map2StructByJson(data, &create, false); err != nil {
return "", CallbackResponseErr(false)
}
return create.PId, Err2CallbackResponse(nil, "")
@@ -676,3 +594,8 @@ func (a *API) GetCallbackOrderId(msgId string, data interface{}) (string, *Callb
return "", &CallbackResponse{Code: CallbackSuccessCode, Msg: CallbackSuccess}
}
// OrderStatusAndPsInfo 三方配送同步骑手位置信息
func (a *API) OrderStatusAndPsInfo(param map[string]interface{}) error {
return nil
}

View File

@@ -17,9 +17,9 @@ type PublicOrderCallback struct {
}
type OrderCallback struct {
Tag string `json:"tag"` // 消息种类订单创建消息的tag值为"100"
MsgId string `json:"msgId"` //消息记录id
Data interface{} `json:"data"` // 消息正文
Tag string `json:"tag"` // 消息种类订单创建消息的tag值为"100"
MsgId string `json:"msg_id"` //消息记录id
Data string `json:"data"` // 消息正文
FormData url.Values
}
@@ -68,7 +68,7 @@ type PayOrderData struct {
type WaitOrderCallback struct {
PublicOrderCallback
Data *PayOrderData `json:"data"`
Data *WaitOrderData `json:"data"`
}
type WaitOrderData struct {
@@ -475,7 +475,7 @@ type BusinessReturnApplyAgreedData struct {
type BusinessRefundAgreedCallback struct {
PublicOrderCallback
Data *AppointmentChangeData `json:"data"`
Data *BusinessRefundAgreedData `json:"data"`
}
type BusinessRefundAgreedData struct {

View File

@@ -15,11 +15,11 @@ func GetCmd(request *http.Request) (cmd string) {
}
// EventSignChange 回调消息防伪标签校验
func (a *API) EventSignChange(c *http.Request) *CallbackResponse {
func (a *API) EventSignChange(c *http.Request) (*CallbackResponse, []byte) {
body, _ := ioutil.ReadAll(c.Body)
signParam := a.appKey + string(body) + a.appSecret
sign := fmt.Sprintf("%X", md5.Sum([]byte(signParam)))
return CallbackResponseErr(sign != c.Header.Get("event-sign"))
return CallbackResponseErr(sign != c.Header.Get("event-sign")), body
}
func (a *API) unmarshalData(data []byte, msg interface{}) (callbackResponse *CallbackResponse) {

View File

@@ -2,13 +2,18 @@ package tiktok_api
import (
"errors"
"fmt"
brand_list_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/brand_list/request"
order_batchDecrypt_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_batchDecrypt/request"
order_batchSensitive_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_batchSensitive/request"
product_addV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_addV2/request"
product_addV2_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_addV2/response"
product_del_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_del/request"
product_detail_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_detail/request"
product_detail_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_detail/response"
product_detail_request_out "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_detail_out_productId/request"
product_editV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_editV2/request"
product_editV2_commit_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_editV2_commit/request"
product_getCatePropertyV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_getCatePropertyV2/request"
product_getCatePropertyV2_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_getCatePropertyV2/response"
product_listV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_listV2/request"
@@ -147,6 +152,21 @@ func (a *API) EditStoreCommodity(sku *product_editV2_request.ProductEditV2Param)
return nil
}
// EditStoreCommodityCommit 上架商品
func (a *API) EditStoreCommodityCommit(sku *product_editV2_commit_request.ProductEditV2Param2) error {
request := product_editV2_commit_request.New()
request.Param = sku
result, err := request.Execute(a.accessTokenObj)
if err != nil {
return err
}
if result.Code != RequestSuccessCode {
return errors.New(result.SubMsg)
}
return nil
}
// DeleteStoreCommodity 删除商品
func (a *API) DeleteStoreCommodity(productId int64) error {
request := product_del_request.New()
@@ -181,7 +201,7 @@ func (a *API) ProductSetOffline(productId int64) error {
return nil
}
// GetSkuDetail 查询单个商品详情 美团商品id(19位),本地商品id
// GetSkuDetail 查询单个商品详情(这个只有抖店平台商品id有效)
func (a *API) GetSkuDetail(productId, outProductId string) (*product_detail_response.ProductDetailData, error) {
request := product_detail_request.New()
param := request.GetParams()
@@ -202,6 +222,25 @@ func (a *API) GetSkuDetail(productId, outProductId string) (*product_detail_resp
return result.Data, nil
}
// GetSkuDetailLocalID 查询单个商品详情(这个只有京西平台商品id有效)
func (a *API) GetSkuDetailLocalID(productId, outProductId string) (*product_detail_response.ProductDetailData, error) {
request := product_detail_request_out.New()
param := request.GetParams()
if outProductId != "" {
param.OutProductId = outProductId
}
result, err := request.Execute(a.accessTokenObj)
if err != nil {
return nil, err
}
if result.Code != RequestSuccessCode {
return nil, errors.New(result.SubMsg)
}
return result.Data, nil
}
// GetSkuDetailList 批量获取商品列表
func (a *API) GetSkuDetailList(param *product_listV2_request.ProductListV2Param) (*product_listV2_response.ProductListV2Data, error) {
request := product_listV2_request.New()
@@ -251,3 +290,78 @@ func (a *API) GetSkuBrand(categoryId int64) (int64, error) {
return result.Data.AuthBrandList[0].BrandId, nil
}
// OrderUserInfoDecrypt 用户信息解密
func (a *API) OrderUserInfoDecrypt(orderId, name, tel, address string) (string, string, string, error) {
request := order_batchDecrypt_request.New()
cipherInfos := make([]order_batchDecrypt_request.CipherInfosItem, 0, 0)
for i := 1; i <= 3; i++ {
cipher := order_batchDecrypt_request.CipherInfosItem{}
cipher.AuthId = orderId
switch i {
case 1: // 姓名
cipher.CipherText = name
cipherInfos = append(cipherInfos, cipher)
case 2: // 手机号
cipher.CipherText = tel
cipherInfos = append(cipherInfos, cipher)
case 3: // 地址
cipher.CipherText = address
cipherInfos = append(cipherInfos, cipher)
}
}
request.Param.CipherInfos = cipherInfos
result, err := request.Execute(a.accessTokenObj)
if err != nil {
return "", "", "", err
}
if result.Code != RequestSuccessCode {
return "", "", "", errors.New(result.SubCode)
}
var (
userName, userTel, userAddress = "", "", ""
)
for _, v := range result.Data.DecryptInfos {
if v.CipherText != "" && v.CipherText == name {
userName = v.DecryptText
}
if v.CipherText != "" && v.CipherText == tel {
userTel = v.DecryptText
}
if v.CipherText != "" && v.CipherText == address {
userAddress = v.DecryptText
}
}
return userName, userTel, userAddress, err
}
// OrderUserInfoSensitive 用户信息脱敏
func (a *API) OrderUserInfoSensitive(orderId, name, tel, address string) {
request := order_batchSensitive_request.New()
paramItems := make([]order_batchSensitive_request.CipherInfosItem, 0, 0)
for i := 0; i < 3; i++ {
cipher := order_batchSensitive_request.CipherInfosItem{}
cipher.AuthId = orderId
switch i {
case 1: // 姓名
cipher.CipherText = name
paramItems = append(paramItems, cipher)
case 2: // 手机号
cipher.CipherText = tel
paramItems = append(paramItems, cipher)
case 3: // 地址
cipher.CipherText = address
paramItems = append(paramItems, cipher)
}
}
request.Param.CipherInfos = paramItems
result, err := request.Execute(a.accessTokenObj)
fmt.Println(result)
fmt.Println(err)
}

View File

@@ -6,6 +6,8 @@ import (
"git.rosy.net.cn/baseapi"
product_addV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_addV2/request"
product_editV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_editV2/request"
product_editV2_commit_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_editV2_commit/request"
product_listV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_listV2/request"
sku_editPrice_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/sku_editPrice/request"
sku_syncStock_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/sku_syncStock/request"
"git.rosy.net.cn/baseapi/utils"
@@ -34,9 +36,8 @@ func TestCategory(t *testing.T) {
}
func TestGetCatePropertyV2(t *testing.T) {
accesstoken := `{"access_token":"6c4d71b3-831c-4a96-8d2e-977e37afba5a","expires_in":604800,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专用店","refresh_token":"65aae144-4cc0-44d2-89ba-5d3062caca41","authority_id":""}
`
a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", accesstoken)
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.GetCatePropertyV2(23065)
fmt.Println("err=====", err)
fmt.Println("data====", data) // 202209281558450102081001701D7B32C5
@@ -219,11 +220,22 @@ func TestInt16(t *testing.T) {
fmt.Println(utils.Str2Int16(strings.ReplaceAll("08:00", ":", "")))
}
// 查询商品详情(抖音平台id)
func TestGetSkuDetail(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("3576377564144516403", "")
data, err := a.GetSkuDetail("3576590519251398269", "")
fmt.Println(err)
globals.SugarLogger.Debugf("====%s", utils.Format4Output(data, false))
}
// 查询商品详情本地商品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("", "")
fmt.Println(err)
globals.SugarLogger.Debugf("====%s", utils.Format4Output(data, false))
}
@@ -257,6 +269,7 @@ func TestEiduPrice(t *testing.T) {
fmt.Println(err)
}
// s上架1
func TestEditStoreCommodity(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)
@@ -265,3 +278,57 @@ func TestEditStoreCommodity(t *testing.T) {
Commit: true,
})
}
// 上架2
func TestEditStoreCommodity2(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)
a.EditStoreCommodityCommit(&product_editV2_commit_request.ProductEditV2Param2{
ProductId: 3576377564144516403,
Commit: true,
})
}
// 下架
func TestProductSetOffline(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)
a.ProductSetOffline(3576377564144516403)
}
// 解密购买用户电话,名字,地址
func TestBatchDecrypt(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)
encrypt_post_tel := `##3aVwfhe5fJHdlO0UijiOA3GbeZYsIZppi+Y9bpYZ9gRBshpl555DP9B1FFp8R0fbyiTaeU9LAck8nkzKNMp5frZUO0w2ba8lsm+1zwYZrBkFlQ==*CgkIARCtHCABKAESPgo8d1IWxRMUZ/3UM2wAbb6m8jXa0z/h/RDf4NnIrUK3Zfiqg+/rrvoo/3DX9DQfmAW/5DkNVk2beqYZx0tYGgA=#1##`
encrypt_post_receiver := `##K3dJts44TlQGmLNQAHud1Iivzu6rWDeFx8EwQYK35oMXVtlLGgN+ZmQDIa7K6rVzXYReq3dgKz8Vi4VGVR8kR45BpHZdaVJUx2tCwM0=*CgkIARCtHCABKAESPgo8X7FrpSxbV2yGA29uxewKEdHW+Rp1tiqWGxRZgwirlJX2uOILTwCWTN6Q1sT3JHeTjXgXslRTEqqWcdd/GgA=#1##`
encrypt_post_name := ``
a.OrderUserInfoDecrypt("4988546918828606694", encrypt_post_name, encrypt_post_tel, encrypt_post_receiver)
}
//// 脱敏购买用户电话,名字,地址
//func TestOrderUserInfoSensitive(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)
// a.OrderUserInfoSensitive("4988354190732430566")
//}
func TestGetSkuList(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)
a.GetSkuDetailList(&product_listV2_request.ProductListV2Param{
Status: 0,
CheckStatus: 0,
ProductType: 0,
StartTime: 0,
EndTime: 0,
Page: 1,
Size: 100,
UpdateStartTime: 0,
UpdateEndTime: 0,
//StoreId: 63114504,
})
}

View File

@@ -175,6 +175,9 @@ func TestWarehouseBindFence(t *testing.T) {
OutWarehouseId: "668510",
OutFenceIds: []string{"668410-2"},
}
_, err := a.WarehouseBindFence(param)
err := a.WarehouseBindFence(param)
fmt.Println(err)
}
func TestJNTM(t *testing.T) {
fmt.Println(2 | 8)
}