warehouseDetail response
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"crypto/md5"
|
"crypto/md5"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"mime/multipart"
|
"mime/multipart"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
@@ -12,7 +13,6 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/platformapi"
|
"git.rosy.net.cn/baseapi/platformapi"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -144,7 +144,6 @@ func (a *API) AccessAPI2(cmd string, isGet bool, bizParams map[string]interface{
|
|||||||
}
|
}
|
||||||
signURL := a.genURL(cmd) + "?"
|
signURL := a.genURL(cmd) + "?"
|
||||||
params[signKey] = a.signParams(signURL, params)
|
params[signKey] = a.signParams(signURL, params)
|
||||||
//globals.SugarLogger.Debugf("params[signKey]=============%s", params[signKey])
|
|
||||||
err = platformapi.AccessPlatformAPIWithRetry(a.client,
|
err = platformapi.AccessPlatformAPIWithRetry(a.client,
|
||||||
func() *http.Request {
|
func() *http.Request {
|
||||||
var request *http.Request
|
var request *http.Request
|
||||||
@@ -154,7 +153,6 @@ func (a *API) AccessAPI2(cmd string, isGet bool, bizParams map[string]interface{
|
|||||||
request, _ = http.NewRequest(http.MethodGet, fullURL, nil)
|
request, _ = http.NewRequest(http.MethodGet, fullURL, nil)
|
||||||
} else {
|
} else {
|
||||||
fullURL := a.genURL(cmd)
|
fullURL := a.genURL(cmd)
|
||||||
// baseapi.SugarLogger.Debug(utils.Map2URLValues(params).Encode())
|
|
||||||
if imgData == nil {
|
if imgData == nil {
|
||||||
request, _ = http.NewRequest(http.MethodPost, fullURL, strings.NewReader(utils.Map2URLValues(params).Encode()))
|
request, _ = http.NewRequest(http.MethodPost, fullURL, strings.NewReader(utils.Map2URLValues(params).Encode()))
|
||||||
request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
||||||
@@ -167,11 +165,9 @@ func (a *API) AccessAPI2(cmd string, isGet bool, bizParams map[string]interface{
|
|||||||
fw.Write(imgData.([]byte))
|
fw.Write(imgData.([]byte))
|
||||||
}
|
}
|
||||||
for k, v := range params {
|
for k, v := range params {
|
||||||
// baseapi.SugarLogger.Debug(k, " ", v)
|
|
||||||
w.WriteField(k, url.QueryEscape(fmt.Sprint(v)))
|
w.WriteField(k, url.QueryEscape(fmt.Sprint(v)))
|
||||||
}
|
}
|
||||||
w.Close()
|
w.Close()
|
||||||
// b.WriteString(utils.Map2URLValues(params).Encode())
|
|
||||||
request, _ = http.NewRequest(http.MethodPost, fullURL, &b)
|
request, _ = http.NewRequest(http.MethodPost, fullURL, &b)
|
||||||
request.Header.Set("Content-Type", w.FormDataContentType())
|
request.Header.Set("Content-Type", w.FormDataContentType())
|
||||||
}
|
}
|
||||||
@@ -225,17 +221,14 @@ func (a *API) AccessAPI3(cmd string, isGet bool, bizParams map[string]interface{
|
|||||||
params = utils.MergeMaps(params, bizParams)
|
params = utils.MergeMaps(params, bizParams)
|
||||||
signURL := a.genURL(cmd) + "?"
|
signURL := a.genURL(cmd) + "?"
|
||||||
params[signKey] = a.signParams(signURL, params)
|
params[signKey] = a.signParams(signURL, params)
|
||||||
//globals.SugarLogger.Debugf("params[signKey]=============%s", params[signKey])
|
|
||||||
err = platformapi.AccessPlatformAPIWithRetry(a.client,
|
err = platformapi.AccessPlatformAPIWithRetry(a.client,
|
||||||
func() *http.Request {
|
func() *http.Request {
|
||||||
var request *http.Request
|
var request *http.Request
|
||||||
if isGet {
|
if isGet {
|
||||||
fullURL := utils.GenerateGetURL(apiURL, cmd, params)
|
fullURL := utils.GenerateGetURL(apiURL, cmd, params)
|
||||||
// baseapi.SugarLogger.Debug(fullURL)
|
|
||||||
request, _ = http.NewRequest(http.MethodGet, fullURL, nil)
|
request, _ = http.NewRequest(http.MethodGet, fullURL, nil)
|
||||||
} else {
|
} else {
|
||||||
fullURL := a.genURL(cmd)
|
fullURL := a.genURL(cmd)
|
||||||
// baseapi.SugarLogger.Debug(utils.Map2URLValues(params).Encode())
|
|
||||||
request, _ = http.NewRequest(http.MethodPost, fullURL, strings.NewReader(utils.Map2URLValues(params).Encode()))
|
request, _ = http.NewRequest(http.MethodPost, fullURL, strings.NewReader(utils.Map2URLValues(params).Encode()))
|
||||||
request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
||||||
request.Header.Set("charset", "UTF-8")
|
request.Header.Set("charset", "UTF-8")
|
||||||
|
|||||||
119
platformapi/recharge_phone_bill/recharge.go
Normal file
119
platformapi/recharge_phone_bill/recharge.go
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
package recharge_phone_bill
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
// 充值类型
|
||||||
|
const (
|
||||||
|
ChargeTypeDefault = 0 //快充(默认)
|
||||||
|
ChargeTypeAuto = 1 // 自动慢充
|
||||||
|
ChargeTypeManual = 2 // 手动慢充
|
||||||
|
)
|
||||||
|
|
||||||
|
// 产品编码
|
||||||
|
const (
|
||||||
|
FlowCodeY10Y100 = "Y10Y100" // Y10Y100 全国 全省 中国移动 100
|
||||||
|
FlowCodeY10Y200 = "Y10Y200" // Y10Y200 全国 全省 中国移动 200
|
||||||
|
|
||||||
|
FlowCodeD10Y50 = "D10Y50" // D10Y50 全国 全省 中国电信 50
|
||||||
|
FlowCodeD10Y100 = "D10Y100" // D10Y100 全国 全省 中国电信 100
|
||||||
|
FlowCodeD10Y200 = "D10Y200" // D10Y200 全国 全省 中国电信 200
|
||||||
|
|
||||||
|
FlowCodeL10Y50 = "L10Y50" // L10Y50 全国 全省 中国联通 50
|
||||||
|
FlowCodeL10Y100 = "L10Y100" // L10Y100 全国 全省 中国联通 100
|
||||||
|
FlowCodeL10Y200 = "L10Y200" // L10Y200 全国 全省 中国联通 200
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
BaseUrl = "http://39.108.16.170/index.php/" // 基础访问路由
|
||||||
|
CreateOrder = "Api/Order/flow" // 话费充值
|
||||||
|
QueryOrder = "Api/Order/order_search" // 订单查询
|
||||||
|
QueryAccountBill = "Api/Order/balance_search" // 余额查询
|
||||||
|
)
|
||||||
|
|
||||||
|
type RechargePhoneBillBase struct {
|
||||||
|
FlowCode string `json:"flowCode"` // 产品编码
|
||||||
|
Mobile string `json:"mobile"` // 手机号码
|
||||||
|
OrderNumber string `json:"orderNumber"` // 商户订单号
|
||||||
|
CallbackURL string `json:"callbackURL"` // 回调地址,不传不回调
|
||||||
|
ChargeType string `json:"chargeType"` // 充值类型 0 快充(默认) 1 自动慢充 2 手动慢充
|
||||||
|
}
|
||||||
|
|
||||||
|
var FlowCode = map[string]bool{FlowCodeY10Y100: true, FlowCodeY10Y200: true, FlowCodeD10Y50: true, FlowCodeD10Y100: true, FlowCodeD10Y200: true, FlowCodeL10Y50: true, FlowCodeL10Y100: true, FlowCodeL10Y200: true}
|
||||||
|
|
||||||
|
// RechargePhoneBill 话费充值接口
|
||||||
|
func (a *API) RechargePhoneBill(params *RechargePhoneBillBase) (string, error) {
|
||||||
|
if !FlowCode[params.FlowCode] {
|
||||||
|
return "", errors.New("不存在的充值类型")
|
||||||
|
}
|
||||||
|
|
||||||
|
data, err := a.AccessAPI(BaseUrl, CreateOrder, http.MethodPost, utils.Struct2MapByJson(params))
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
if k, _ := data["code"].(json.Number).Int64(); k != 2000 {
|
||||||
|
return "", errors.New(data["msg"].(string))
|
||||||
|
}
|
||||||
|
|
||||||
|
return data["order_number"].(string), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type QueryOrderDetailRes struct {
|
||||||
|
Code string `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Data []QueryOrderDetailResList `json:"data"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type QueryOrderDetailResList struct {
|
||||||
|
OrderNumber string `json:"order_number"` // 平台订单号
|
||||||
|
UserOrdernum string `json:"user_ordernum"` // 商户订单号
|
||||||
|
OrderStatus string `json:"order_status"` // 状态:0:未提交,1:充值中,2:已充值,-1:失败
|
||||||
|
Mobile string `json:"mobile"` // 手机号码
|
||||||
|
Ctime string `json:"ctime"` // 时间戳
|
||||||
|
Voucher string `json:"voucher"` // 透传流水号
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryOrderDetail 查询充值订单详情
|
||||||
|
func (a *API) QueryOrderDetail(orderNumber, userOrderNum string) ([]QueryOrderDetailResList, error) {
|
||||||
|
params := make(map[string]interface{}, 0)
|
||||||
|
if orderNumber == "" && userOrderNum == "" {
|
||||||
|
return nil, errors.New("订单号不能为空")
|
||||||
|
}
|
||||||
|
if orderNumber != "" {
|
||||||
|
params["order_number"] = orderNumber
|
||||||
|
} else {
|
||||||
|
params["user_ordernum"] = userOrderNum
|
||||||
|
}
|
||||||
|
data, err := a.AccessAPI(BaseUrl, QueryOrder, http.MethodPost, params)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if k, _ := data["code"].(json.Number).Int64(); k != 2000 {
|
||||||
|
return nil, errors.New(data["msg"].(string))
|
||||||
|
}
|
||||||
|
|
||||||
|
var result []QueryOrderDetailResList
|
||||||
|
if err := json.Unmarshal([]byte(utils.Interface2String(data["data"])), &result); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryAccountBill 余额查询
|
||||||
|
func (a *API) QueryAccountBill() (string, error) {
|
||||||
|
data, err := a.AccessAPI(BaseUrl, QueryAccountBill, http.MethodPost, map[string]interface{}{})
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
if k, _ := data["code"].(json.Number).Int64(); k != 2000 {
|
||||||
|
return "", errors.New(data["msg"].(string))
|
||||||
|
}
|
||||||
|
|
||||||
|
return data["balance"].(string), nil
|
||||||
|
}
|
||||||
91
platformapi/recharge_phone_bill/recharge_api.go
Normal file
91
platformapi/recharge_phone_bill/recharge_api.go
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
package recharge_phone_bill
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/md5"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"git.rosy.net.cn/baseapi/platformapi"
|
||||||
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
"sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
type API struct {
|
||||||
|
account string
|
||||||
|
password string
|
||||||
|
secret string
|
||||||
|
locker sync.RWMutex
|
||||||
|
client *http.Client
|
||||||
|
config *platformapi.APIConfig
|
||||||
|
}
|
||||||
|
|
||||||
|
func New(password, account, secret string, config ...*platformapi.APIConfig) *API {
|
||||||
|
curConfig := platformapi.DefAPIConfig
|
||||||
|
if len(config) > 0 {
|
||||||
|
curConfig = *config[0]
|
||||||
|
}
|
||||||
|
return &API{
|
||||||
|
account: account,
|
||||||
|
password: password,
|
||||||
|
secret: secret,
|
||||||
|
locker: sync.RWMutex{},
|
||||||
|
client: &http.Client{Timeout: curConfig.ClientTimeout},
|
||||||
|
config: &curConfig,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 大写( md5( md5(密码)+手机号码+产品编码+商户订单号+秘钥 ) ) 话费充值签名接口
|
||||||
|
func (a *API) signParam(params map[string]interface{}) (sig string) {
|
||||||
|
paramsSign := ""
|
||||||
|
if params["mobile"] != "" && params["flowCode"] != "" && params["orderNumber"] != "" && params["mobile"] != nil && params["flowCode"] != nil && params["orderNumber"] != nil {
|
||||||
|
paramsSign = params["mobile"].(string) + params["flowCode"].(string) + params["orderNumber"].(string)
|
||||||
|
}
|
||||||
|
oneMd5 := fmt.Sprintf("%x", md5.Sum([]byte(a.password))) + paramsSign + a.secret
|
||||||
|
//twoMd5 := strings.ToUpper(fmt.Sprintf("%X", md5.Sum([]byte(oneMd5))))
|
||||||
|
return strings.ToUpper(fmt.Sprintf("%x", md5.Sum([]byte(oneMd5))))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *API) AccessAPI(baseUrl, actionApi, method string, bizParams map[string]interface{}) (retVal map[string]interface{}, err error) {
|
||||||
|
bizParams["account"] = a.account
|
||||||
|
bizParams["sign"] = a.signParam(bizParams)
|
||||||
|
// 序列化
|
||||||
|
data, err := json.Marshal(bizParams)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 全路径请求参数
|
||||||
|
fullURL := utils.GenerateGetURL(baseUrl, actionApi, nil)
|
||||||
|
|
||||||
|
// 发送请求
|
||||||
|
sendUrl := func() *http.Request {
|
||||||
|
var request *http.Request
|
||||||
|
if http.MethodPost == method {
|
||||||
|
request, _ = http.NewRequest(http.MethodPost, fullURL, strings.NewReader(string(data)))
|
||||||
|
} else {
|
||||||
|
request, _ = http.NewRequest(http.MethodGet, utils.GenerateGetURL(baseUrl, actionApi, bizParams), nil)
|
||||||
|
}
|
||||||
|
request.Header.Set("Content-Type", "application/json")
|
||||||
|
return request
|
||||||
|
}
|
||||||
|
|
||||||
|
// 数据解析
|
||||||
|
dataMarshal := func(response *http.Response, bodyStr string, jsonResult1 map[string]interface{}) (errLevel string, err error) {
|
||||||
|
if jsonResult1 == nil {
|
||||||
|
return platformapi.ErrLevelRecoverableErr, fmt.Errorf("mapData is nil")
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
if utils.MustInterface2Int64(jsonResult1["code"]) != 2000 {
|
||||||
|
errLevel = platformapi.ErrLevelGeneralFail
|
||||||
|
err = utils.NewErrorCode(jsonResult1["msg"].(string), utils.Int64ToStr(utils.MustInterface2Int64(jsonResult1["code"])))
|
||||||
|
}
|
||||||
|
retVal = jsonResult1
|
||||||
|
return errLevel, err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = platformapi.AccessPlatformAPIWithRetry(a.client, sendUrl, a.config, dataMarshal)
|
||||||
|
return retVal, err
|
||||||
|
}
|
||||||
11
platformapi/recharge_phone_bill/recharge_test.go
Normal file
11
platformapi/recharge_phone_bill/recharge_test.go
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package recharge_phone_bill
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
//AccountNo = "cdrxqgmc"
|
||||||
|
//PasswordNo = "cdrxqgmc1234"
|
||||||
|
//PhoneScenery = "cdrxqgmc123456"
|
||||||
|
func TestQueryAccountBill(t *testing.T) {
|
||||||
|
a := New("cdrxqgmc1234", "cdrxqgmc", "cdrxqgmc123456")
|
||||||
|
a.QueryAccountBill()
|
||||||
|
}
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 288 KiB |
@@ -8,7 +8,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
var token = `{"access_token":"2baa1126-bba0-4510-8ffa-6af55ba0bdbd","expires_in":1670828768,"scope":"SCOPE","shop_id":57939570,"shop_name":"京西菜市速食","refresh_token":"23b3eb4e-bb00-4b85-952d-de47801de80d","authority_id":""}`
|
var token = `{"access_token":"88a8dd73-b276-4eb6-830e-007b2cf18208","expires_in":1669018480,"scope":"SCOPE","shop_id":57939570,"shop_name":"京西菜市速食","refresh_token":"4fefd9c8-ae3b-41c3-98f0-427585370f61","authority_id":""}`
|
||||||
var a = New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token)
|
var a = New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token)
|
||||||
|
|
||||||
// 查询售后单详情
|
// 查询售后单详情
|
||||||
|
|||||||
@@ -68,23 +68,6 @@ func TestReturnGoodsToWareHouseSuccess(t *testing.T) {
|
|||||||
a.ReturnGoodsToWareHouseSuccess("7154200345302827303")
|
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) {
|
func TestLogisticsAddSinglePack(t *testing.T) {
|
||||||
a.LogisticsAddSinglePack()
|
a.LogisticsAddSinglePack()
|
||||||
|
|||||||
@@ -155,6 +155,9 @@ func (a *APIExpress) OrderStatusAndPsInfo(param map[string]interface{}) error {
|
|||||||
a.RefreshToken()
|
a.RefreshToken()
|
||||||
}
|
}
|
||||||
result, err := request.Execute(a.accessTokenObj)
|
result, err := request.Execute(a.accessTokenObj)
|
||||||
|
globals.SugarLogger.Debugf("'==============param : %s", utils.Format4Output(request.Param, false))
|
||||||
|
globals.SugarLogger.Debugf("'==============result : %s", utils.Format4Output(result, false))
|
||||||
|
globals.SugarLogger.Debugf("'==============param : %s", utils.Format4Output(err, false))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -481,137 +481,137 @@ func (a *API) CreateOrderCallback(orderStatus []byte) (map[string][]interface{},
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetCallbackOrderId 获取回调函数订单id
|
// GetCallbackOrderId 获取回调函数订单id
|
||||||
func (a *API) GetCallbackOrderId(msgId string, data interface{}) (string, *CallbackResponse) {
|
func (a *API) GetCallbackOrderId(msgId string, data interface{}) (string, int64, *CallbackResponse) {
|
||||||
switch msgId {
|
switch msgId {
|
||||||
case CallbackCreatedOrderMsgTagId: // 创建订单
|
case CallbackCreatedOrderMsgTagId: // 创建订单
|
||||||
create := CreateOrderData{}
|
create := CreateOrderData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", Err2CallbackResponse(err, "")
|
return "", 0, Err2CallbackResponse(err, "")
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), create.ShopId, Err2CallbackResponse(nil, "")
|
||||||
case CallbackPayOrderMsgTagId: // 支付订单
|
case CallbackPayOrderMsgTagId: // 支付订单
|
||||||
create := PayOrderData{}
|
create := PayOrderData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), create.ShopId, Err2CallbackResponse(nil, "")
|
||||||
case CallbackWaitOrderMsgTagId: // 支付订单待处理(风控审核)
|
case CallbackWaitOrderMsgTagId: // 支付订单待处理(风控审核)
|
||||||
create := WaitOrderData{}
|
create := WaitOrderData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), create.ShopId, Err2CallbackResponse(nil, "")
|
||||||
case CallbackPartGoodsMsgTagId: // 卖家部分发货
|
case CallbackPartGoodsMsgTagId: // 卖家部分发货
|
||||||
create := SomeSendOrderData{}
|
create := SomeSendOrderData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), create.ShopId, Err2CallbackResponse(nil, "")
|
||||||
case CallbackPartAllGoodsMsgTagId: // 卖家发货
|
case CallbackPartAllGoodsMsgTagId: // 卖家发货
|
||||||
create := BusinessDeliveryData{}
|
create := BusinessDeliveryData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), create.ShopId, Err2CallbackResponse(nil, "")
|
||||||
case CallbackCancelOrderMsgTagId: // 取消订单
|
case CallbackCancelOrderMsgTagId: // 取消订单
|
||||||
create := CancelOrderData{}
|
create := CancelOrderData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), create.ShopId, Err2CallbackResponse(nil, "")
|
||||||
case CallbackSuccessOrderMsgTagId: // 卖家确认收货时,会自动完成
|
case CallbackSuccessOrderMsgTagId: // 卖家确认收货时,会自动完成
|
||||||
create := SuccessOrderData{}
|
create := SuccessOrderData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), create.ShopId, Err2CallbackResponse(nil, "")
|
||||||
case CallbackWayBillChangeOrderMsgTagId: // 发货物流消息便跟
|
case CallbackWayBillChangeOrderMsgTagId: // 发货物流消息便跟
|
||||||
create := WayBillChangeData{}
|
create := WayBillChangeData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), create.ShopId, Err2CallbackResponse(nil, "")
|
||||||
case CallbackReceivingChangeOrderMsgTagId: // 收货地址消息变更(商家审核通过触发)
|
case CallbackReceivingChangeOrderMsgTagId: // 收货地址消息变更(商家审核通过触发)
|
||||||
create := ReceivingAddressChangeData{}
|
create := ReceivingAddressChangeData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), create.ShopId, Err2CallbackResponse(nil, "")
|
||||||
case CallbackChangeMoneyMsgTagId: // 卖家修改订单/运单金额回调
|
case CallbackChangeMoneyMsgTagId: // 卖家修改订单/运单金额回调
|
||||||
create := UpdateAmountChangeData{}
|
create := UpdateAmountChangeData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), create.ShopId, Err2CallbackResponse(nil, "")
|
||||||
case CallbackBusinessRemarkMsgTagId: // 买家收货消息变更(手机,地址,姓名),用户C端修改触发(需要上面审核接口)
|
case CallbackBusinessRemarkMsgTagId: // 买家收货消息变更(手机,地址,姓名),用户C端修改触发(需要上面审核接口)
|
||||||
create := BuyerUpdateWayBillData{}
|
create := BuyerUpdateWayBillData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), create.ShopId, Err2CallbackResponse(nil, "")
|
||||||
case CallbackApplyUpdateAddressMsgTagId: // 商家修改交易备注回调
|
case CallbackApplyUpdateAddressMsgTagId: // 商家修改交易备注回调
|
||||||
create := BusinessUpdateRemakeData{}
|
create := BusinessUpdateRemakeData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), create.ShopId, Err2CallbackResponse(nil, "")
|
||||||
case CallbackSendOrderTimeChangeMsgTagId: // 订单发货时消息变更回调
|
case CallbackSendOrderTimeChangeMsgTagId: // 订单发货时消息变更回调
|
||||||
create := AppointmentChangeData{}
|
create := AppointmentChangeData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return create.PId, Err2CallbackResponse(nil, "")
|
return create.PId, create.ShopId, Err2CallbackResponse(nil, "")
|
||||||
/*********下面属于订单退货消息************/
|
/*********下面属于订单退货消息************/
|
||||||
case CallbackRefundOrderMsgTagId: // 买家发起售后申请消息
|
case CallbackRefundOrderMsgTagId: // 买家发起售后申请消息
|
||||||
create := BuyerRefundCreatedData{}
|
create := BuyerRefundCreatedData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), int64(create.ShopId), Err2CallbackResponse(nil, "")
|
||||||
case CallbackUpdateRefundOrderMsgTagId: // 买家修改售后申请消息
|
case CallbackUpdateRefundOrderMsgTagId: // 买家修改售后申请消息
|
||||||
create := BuyerRefundModifiedData{}
|
create := BuyerRefundModifiedData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), int64(create.ShopId), Err2CallbackResponse(nil, "")
|
||||||
case CallbackRefundOrderSuccessMsgTagId: // 退款成功消息
|
case CallbackRefundOrderSuccessMsgTagId: // 退款成功消息
|
||||||
create := BusinessRefundSuccessData{}
|
create := BusinessRefundSuccessData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), int64(create.ShopId), Err2CallbackResponse(nil, "")
|
||||||
case CallbackRefundOrderRefuseMsgTagId: // 拒绝退款消息
|
case CallbackRefundOrderRefuseMsgTagId: // 拒绝退款消息
|
||||||
create := BusinessNotRefundRefusedData{}
|
create := BusinessNotRefundRefusedData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), int64(create.ShopId), Err2CallbackResponse(nil, "")
|
||||||
case CallbackRefundShopMsgTagId: // 拒绝退货申请消息
|
case CallbackRefundShopMsgTagId: // 拒绝退货申请消息
|
||||||
create := BusinessNotReturnApplyRefusedData{}
|
create := BusinessNotReturnApplyRefusedData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), int64(create.ShopId), Err2CallbackResponse(nil, "")
|
||||||
case CallbackReturnApplyAgreedMsgTagId: // 卖家同意时,推送此消息
|
case CallbackReturnApplyAgreedMsgTagId: // 卖家同意时,推送此消息
|
||||||
create := BusinessReturnApplyAgreedData{}
|
create := BusinessReturnApplyAgreedData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), int64(create.ShopId), Err2CallbackResponse(nil, "")
|
||||||
case CallbackReturnRefundAgreedMsgTagId: // 同意退款消息
|
case CallbackReturnRefundAgreedMsgTagId: // 同意退款消息
|
||||||
create := AppointmentChangeData{}
|
create := AppointmentChangeData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return create.PId, Err2CallbackResponse(nil, "")
|
return create.PId, create.ShopId, Err2CallbackResponse(nil, "")
|
||||||
case CallbackRefundClosedMsgTagId: // 当买家取消申请或系统超时机制导致退款取消时,会推送此消息
|
case CallbackRefundClosedMsgTagId: // 当买家取消申请或系统超时机制导致退款取消时,会推送此消息
|
||||||
create := UserCancelRefundOrderData{}
|
create := UserCancelRefundOrderData{}
|
||||||
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
if err := utils.Map2StructByJson(data, &create, false); err != nil {
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
return utils.Int64ToStr(create.PId), Err2CallbackResponse(nil, "")
|
return utils.Int64ToStr(create.PId), int64(create.ShopId), Err2CallbackResponse(nil, "")
|
||||||
default:
|
default:
|
||||||
return "", CallbackResponseErr(false)
|
return "", 0, CallbackResponseErr(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
13
platformapi/tiktok_shop/tiktok_api/settl_bill_detail_test.go
Normal file
13
platformapi/tiktok_shop/tiktok_api/settl_bill_detail_test.go
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package tiktok_api
|
||||||
|
|
||||||
|
import (
|
||||||
|
order_getSettleBillDetailV3_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_getSettleBillDetailV3/request"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestBillDetail(t *testing.T) {
|
||||||
|
a.GetSettleBillDetailV3(&order_getSettleBillDetailV3_request.OrderGetSettleBillDetailV3Param{
|
||||||
|
Size: 10,
|
||||||
|
OrderId: "5006155889577954309",
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -276,3 +276,16 @@ func TestGenerateGetURL(t *testing.T) {
|
|||||||
t.Fatal("GenerateGetURL错误")
|
t.Fatal("GenerateGetURL错误")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUtilsIsNil(t *testing.T) {
|
||||||
|
param := make(map[string]interface{}, 0)
|
||||||
|
param["aaa"] = "1"
|
||||||
|
param["bbb"] = ""
|
||||||
|
param["ccc"] = nil
|
||||||
|
|
||||||
|
fmt.Println(param["aaa"] == nil)
|
||||||
|
fmt.Println(param["bbb"] == nil)
|
||||||
|
fmt.Println(param["ccc"] == nil)
|
||||||
|
fmt.Println(param["bbb"] == "")
|
||||||
|
fmt.Println(param["kkk"] == "")
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user