Merge branch 'master' of https://e.coding.net/rosydev/baseapi
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
package dadaapi
|
package dadaapi
|
||||||
|
|
||||||
import "go.uber.org/zap"
|
import (
|
||||||
|
"git.rosy.net.cn/baseapi"
|
||||||
|
"go.uber.org/zap"
|
||||||
|
)
|
||||||
|
|
||||||
//
|
//
|
||||||
//import (
|
//import (
|
||||||
@@ -24,32 +27,33 @@ var (
|
|||||||
// testShopNo = "11047059"
|
// testShopNo = "11047059"
|
||||||
//)
|
//)
|
||||||
//
|
//
|
||||||
//func init() {
|
func init() {
|
||||||
// logger, _ := zap.NewDevelopment()
|
logger, _ := zap.NewDevelopment()
|
||||||
// sugarLogger = logger.Sugar()
|
sugarLogger = logger.Sugar()
|
||||||
// baseapi.Init(sugarLogger)
|
baseapi.Init(sugarLogger)
|
||||||
//
|
|
||||||
// // sandbox
|
// sandbox
|
||||||
// // dadaapi = New("dada9623324449cd250", "30c2abbfe8a8780ad5aace46300c64b9", "73753", "http://callback.jxc4.com/dada/order", false)
|
// dadaapi = New("dada9623324449cd250", "30c2abbfe8a8780ad5aace46300c64b9", "73753", "http://callback.jxc4.com/dada/order", false)
|
||||||
//
|
|
||||||
// // prod
|
// prod
|
||||||
// dadaapi = New("dada154e2a41fd6cef3", "7f97d8f258b70b450f04e7ab274ed8f8", "6660", "http://callback.jxc4.com/dadadelivery/msg", true)
|
dadaapi = New("dada154e2a41fd6cef3", "7f97d8f258b70b450f04e7ab274ed8f8", "6660", "http://callback.jxc4.com/dadadelivery/msg", true)
|
||||||
//
|
|
||||||
// // prod
|
// prod
|
||||||
// testOrder = &OperateOrderParams{
|
//testOrder = &OperateOrderParams{
|
||||||
// ShopNo: testShopNo,
|
// ShopNo: testShopNo,
|
||||||
// OriginID: "234242342",
|
// OriginID: "234242342",
|
||||||
// CityCode: "028",
|
// CityCode: "028",
|
||||||
// CargoPrice: 12.34,
|
// CargoPrice: 12.34,
|
||||||
// IsPrepay: 1,
|
// IsPrepay: 1,
|
||||||
// ReceiverName: "我是谁",
|
// ReceiverName: "我是谁",
|
||||||
// ReceiverAddress: "九里堤",
|
// ReceiverAddress: "九里堤",
|
||||||
// ReceiverLat: 30.74631,
|
// ReceiverLat: 30.74631,
|
||||||
// ReceiverLng: 103.99112,
|
// ReceiverLng: 103.99112,
|
||||||
// ReceiverPhone: "12812345678",
|
// ReceiverPhone: "12812345678",
|
||||||
// }
|
//}
|
||||||
//
|
|
||||||
//}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
//func TestTest(t *testing.T) {
|
//func TestTest(t *testing.T) {
|
||||||
// sugarLogger.Debug(utils.GetCurTimeStr())
|
// sugarLogger.Debug(utils.GetCurTimeStr())
|
||||||
|
|||||||
@@ -136,6 +136,8 @@ func (a *API) QueryOrderInfo(orderID string) (order *OrderInfo, err error) {
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
err = utils.Map2StructByJson(result.Result, &order, false)
|
err = utils.Map2StructByJson(result.Result, &order, false)
|
||||||
}
|
}
|
||||||
|
order.DeliveryFee += (utils.Int2Float64(utils.WayBillDeliveryMarkUp) / 100)
|
||||||
|
//order.ActualFee += utils.Int2Float64(utils.WayBillDeliveryMarkUp)
|
||||||
return order, err
|
return order, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ package dadaapi
|
|||||||
|
|
||||||
//
|
//
|
||||||
import (
|
import (
|
||||||
|
"git.rosy.net.cn/baseapi"
|
||||||
//"fmt"
|
//"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
//"git.rosy.net.cn/baseapi"
|
//"git.rosy.net.cn/baseapi"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
)
|
)
|
||||||
@@ -43,13 +43,14 @@ import (
|
|||||||
// // baseapi.SugarLogger.Debug(utils.Format4Output(cancelResponse, false))
|
// // baseapi.SugarLogger.Debug(utils.Format4Output(cancelResponse, false))
|
||||||
//}
|
//}
|
||||||
//
|
//
|
||||||
//func TestCancel(t *testing.T) {
|
func TestCancel(t *testing.T) {
|
||||||
// cancelResponse, err := dadaapi.CancelOrder("126099099192000002", ReasonIDOther, "协商一致")
|
cancelResponse, err := dadaapi.CancelOrder("1100551162883899675", ReasonIDOther, "协商一致")
|
||||||
// if err != nil {
|
if err != nil {
|
||||||
// t.Fatal(err)
|
t.Fatal(err)
|
||||||
// }
|
}
|
||||||
// baseapi.SugarLogger.Debug(utils.Format4Output(cancelResponse, false))
|
baseapi.SugarLogger.Debug(utils.Format4Output(cancelResponse, false))
|
||||||
//}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
//func TestGetComplaintReasons(t *testing.T) {
|
//func TestGetComplaintReasons(t *testing.T) {
|
||||||
// complaintReason, err := dadaapi.GetComplaintReasons()
|
// complaintReason, err := dadaapi.GetComplaintReasons()
|
||||||
@@ -68,17 +69,12 @@ import (
|
|||||||
//
|
//
|
||||||
func TestQueryOrderInfo(t *testing.T) {
|
func TestQueryOrderInfo(t *testing.T) {
|
||||||
dadaapi = New("dada154e2a41fd6cef3", "7f97d8f258b70b450f04e7ab274ed8f8", "6660", "http://callback.jxc4.com/dadadelivery/msg", true)
|
dadaapi = New("dada154e2a41fd6cef3", "7f97d8f258b70b450f04e7ab274ed8f8", "6660", "http://callback.jxc4.com/dadadelivery/msg", true)
|
||||||
result, err := dadaapi.QueryOrderInfo("1100538083115517396")
|
result, err := dadaapi.QueryOrderInfo("88421859678001")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
t.Log(utils.Format4Output(result, false))
|
t.Log(utils.Format4Output(result, false))
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
func TestAddTip(t *testing.T) {
|
||||||
//func TestAddTip(t *testing.T) {
|
}
|
||||||
// err := dadaapi.AddTip("80704840263399812", 1.0, "530100", "")
|
|
||||||
// if err != nil {
|
|
||||||
// t.Fatal(err)
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|||||||
@@ -138,25 +138,24 @@ func (a *API) GetChainstoreStatusNotify(request *http.Request) (shopStatusMsg *C
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取订单状态回调消息
|
// 获取订单状态回调消息
|
||||||
func (a *API) GetChainOrderStatusNotify(request *http.Request) (shopStatusMsg *OrderStatusNottify, callbackResponse *CallbackResponse) {
|
func (a *API) GetChainOrderStatusNotify(request *http.Request) (shopStatusMsg *OrderStatusNottify, result *ShortStatus, callbackResponse *CallbackResponse) {
|
||||||
data, err := ioutil.ReadAll(request.Body)
|
data, err := ioutil.ReadAll(request.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
callbackResponse = &CallbackResponse{Code: -1}
|
callbackResponse = &CallbackResponse{Code: -1}
|
||||||
return nil, callbackResponse
|
return nil, nil, callbackResponse
|
||||||
}
|
}
|
||||||
|
|
||||||
result := &ShortStatus{}
|
|
||||||
if err := json.Unmarshal(data, &result); err != nil {
|
if err := json.Unmarshal(data, &result); err != nil {
|
||||||
callbackResponse = &CallbackResponse{Code: -1}
|
callbackResponse = &CallbackResponse{Code: -1}
|
||||||
return nil, callbackResponse
|
return nil, nil, callbackResponse
|
||||||
}
|
}
|
||||||
|
|
||||||
orderResult := &OrderStatusNottify{}
|
orderResult := &OrderStatusNottify{}
|
||||||
if err := json.Unmarshal([]byte(result.BusinessData), orderResult); err != nil {
|
if err := json.Unmarshal([]byte(result.BusinessData), orderResult); err != nil {
|
||||||
callbackResponse = &CallbackResponse{Code: -1}
|
callbackResponse = &CallbackResponse{Code: -1}
|
||||||
return nil, callbackResponse
|
return nil, nil, callbackResponse
|
||||||
}
|
}
|
||||||
return orderResult, SuccessResponse
|
return orderResult, result, SuccessResponse
|
||||||
}
|
}
|
||||||
|
|
||||||
// 异常配送
|
// 异常配送
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -20,17 +19,17 @@ func init() {
|
|||||||
sugarLogger = logger.Sugar()
|
sugarLogger = logger.Sugar()
|
||||||
baseapi.Init(sugarLogger)
|
baseapi.Init(sugarLogger)
|
||||||
|
|
||||||
api = New("6705486294797503379", "c1e6c280-e618-4103-9d0a-673bc54fb22e", "51658", "cabrXQf9eFMVWVYg4hNlwu")
|
api = New("6705486294797503379", "c1e6c280-e618-4103-9d0a-673bc54fb22e", "5375691", "")
|
||||||
//token, _ := api.GetAccessToken()
|
//token, _ := api.GetAccessToken()
|
||||||
api.accessToken = "5638ebf7-e69e-498b-8b47-96336ca720bc"
|
api.accessToken = "c7ed10b7-3ecf-4def-adc1-9f43d5e9480c"
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询单个门店
|
// 查询单个门店
|
||||||
func TestQueryOneStore(t *testing.T) {
|
func TestQueryOneStore(t *testing.T) {
|
||||||
api = New("6705486294797503379", "c1e6c280-e618-4103-9d0a-673bc54fb22e", "5375691", "")
|
api = New("6705486294797503379", "c1e6c280-e618-4103-9d0a-673bc54fb22e", "51658", "")
|
||||||
token, err := api.GetAccessToken()
|
//token, err := api.GetAccessToken()
|
||||||
api.accessToken = token.BusinessDataObj.AccessToken
|
api.accessToken = "45c49b75-d47e-4145-b38d-fda8b5ebf3a9"
|
||||||
data, err := api.GetStore("209476483")
|
data, err := api.GetStore("800293")
|
||||||
fmt.Println(data)
|
fmt.Println(data)
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
}
|
}
|
||||||
@@ -180,13 +179,22 @@ func TestGetOrder(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestQueryOrder(t *testing.T) {
|
func TestQueryOrder(t *testing.T) {
|
||||||
data, err := api.QueryOrder("1100536591119839487") // 1100537991119839487 1100536591119839487
|
api = New("6705486294797503379", "c1e6c280-e618-4103-9d0a-673bc54fb22e", "51658", "")
|
||||||
|
api.accessToken = "c7ed10b7-3ecf-4def-adc1-9f43d5e9480c"
|
||||||
|
data, err := api.QueryOrder("88421859678001") // 1100537991119839487 1100536591119839487
|
||||||
globals.SugarLogger.Debug("data:= %s", utils.Format4Output(data, false))
|
globals.SugarLogger.Debug("data:= %s", utils.Format4Output(data, false))
|
||||||
globals.SugarLogger.Debug("err:= %s", utils.Format4Output(err, false))
|
globals.SugarLogger.Debug("err:= %s", utils.Format4Output(err, false))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestTime(t *testing.T) {
|
func TestCancelOrder(t *testing.T) {
|
||||||
fmt.Println(time.Now().UnixNano() / 1e6)
|
api = New("6705486294797503379", "c1e6c280-e618-4103-9d0a-673bc54fb22e", "51658", "")
|
||||||
fmt.Println(1683530814777)
|
api.accessToken = "f5716fd7-f69b-491f-b63c-d0167c9097b6"
|
||||||
fmt.Println(time.Now().UnixNano()/1e6 - 1683530814777)
|
param := CancelOrderReq{
|
||||||
|
GetOrderDetailReq: GetOrderDetailReq{PartnerOrderCode: "88421859678001"},
|
||||||
|
OrderCancelCode: 9,
|
||||||
|
OrderCancelRole: 2,
|
||||||
|
OrderCancelOtherReason: "不想要了",
|
||||||
|
}
|
||||||
|
err := api.CancelOrder(¶m) // 1100537991119839487 1100536591119839487
|
||||||
|
globals.SugarLogger.Debug("err:= %s", utils.Format4Output(err, false))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -420,10 +420,10 @@ type PreCancelOrderReq struct {
|
|||||||
// cancelOrder 正式取消订单接口
|
// cancelOrder 正式取消订单接口
|
||||||
type CancelOrderReq struct {
|
type CancelOrderReq struct {
|
||||||
GetOrderDetailReq
|
GetOrderDetailReq
|
||||||
OrderCancelCode int64 `json:"order_cancel_code"` // 从可用取消原因列表接口返回结果选择(必填)
|
OrderCancelCode int64 `json:"order_cancel_code"` // 从可用取消原因列表接口返回结果选择(必填)
|
||||||
OrderCancelRole int `json:"order_cancel_role"` // 1商户取消, 2 用户取消(必填)
|
OrderCancelRole int `json:"order_cancel_role"` // 1商户取消, 2 用户取消(必填)
|
||||||
ActualCancelCostCent int64 `json:"actual_cancel_cost_cent"` // 单位分 取消实际需扣金额,从预取消接口拿(非必填)
|
//ActualCancelCostCent int64 `json:"actual_cancel_cost_cent"` // 单位分 取消实际需扣金额,从预取消接口拿(非必填)
|
||||||
OrderCancelOtherReason string `json:"order_cancel_other_reason"` // 取消原因补充 20字以内(非必填)
|
OrderCancelOtherReason string `json:"order_cancel_other_reason"` // 取消原因补充 20字以内(必填)
|
||||||
}
|
}
|
||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -60,8 +61,8 @@ func (a *API) PreCreateByShopFn(basicParams *PreCreateOrder) (deliveryFee, baseD
|
|||||||
if v.IsValid != 1 {
|
if v.IsValid != 1 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
deliveryFeeFn = v.ActualDeliveryAmountCent
|
deliveryFeeFn = v.TotalDeliveryAmountCent // 优惠后 actual_delivery_amount_cent
|
||||||
baseDeliveryFeeFn = v.TotalDeliveryAmountCent
|
baseDeliveryFeeFn = v.TotalDeliveryAmountCent // 原始配送费
|
||||||
}
|
}
|
||||||
|
|
||||||
// 异常检测
|
// 异常检测
|
||||||
@@ -83,7 +84,8 @@ func (a *API) CreateOrder(createOrderParam *CreateOrderReqParam) (result string,
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
if utils.Interface2String(resultData["code"]) != "200" || utils.Interface2String(resultData["apiCode"]) != "" {
|
|
||||||
|
if utils.Interface2String(resultData["code"]) != "200" {
|
||||||
return "", fmt.Errorf(fmt.Sprintf("其他异常错误信息:%s", utils.Interface2String(resultData["apiCode"])))
|
return "", fmt.Errorf(fmt.Sprintf("其他异常错误信息:%s", utils.Interface2String(resultData["apiCode"])))
|
||||||
}
|
}
|
||||||
if orderId, ok := resultData["business_data"]; ok {
|
if orderId, ok := resultData["business_data"]; ok {
|
||||||
@@ -170,9 +172,7 @@ func (a *API) CancelOrder(req *CancelOrderReq) (err error) {
|
|||||||
if req.PartnerOrderCode == "" && req.OrderId == "" {
|
if req.PartnerOrderCode == "" && req.OrderId == "" {
|
||||||
return errors.New("内部订单号或者外部订单号比填写一个")
|
return errors.New("内部订单号或者外部订单号比填写一个")
|
||||||
}
|
}
|
||||||
if req.OrderCancelCode == 0 && req.OrderCancelOtherReason == "" {
|
req.OrderCancelOtherReason = "暂时不想要了"
|
||||||
req.OrderCancelOtherReason = "暂时不想要了"
|
|
||||||
}
|
|
||||||
|
|
||||||
orderHead := a.MakeFnRequestHead()
|
orderHead := a.MakeFnRequestHead()
|
||||||
business, err := json.Marshal(req)
|
business, err := json.Marshal(req)
|
||||||
@@ -181,11 +181,15 @@ func (a *API) CancelOrder(req *CancelOrderReq) (err error) {
|
|||||||
}
|
}
|
||||||
orderHead["business_data"] = string(business)
|
orderHead["business_data"] = string(business)
|
||||||
|
|
||||||
if _, err := a.AccessAPI(ApiURL, "cancelOrder", RequestPost, orderHead); err != nil {
|
data, err := a.AccessAPI(ApiURL, "cancelOrder", RequestPost, orderHead)
|
||||||
|
globals.SugarLogger.Debugf("======data : %s", utils.Format4Output(data, false))
|
||||||
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if data["code"].(string) != "200" {
|
||||||
return
|
return errors.New(data["msg"].(string))
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询订单详情接口
|
// 查询订单详情接口
|
||||||
@@ -206,6 +210,8 @@ func (a *API) QueryOrder(partnerOrderCode string) (result *GetOrderDetailRes, er
|
|||||||
if err := json.Unmarshal([]byte(data["business_data"].(string)), &fnResult); err != nil {
|
if err := json.Unmarshal([]byte(data["business_data"].(string)), &fnResult); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
fnResult.OrderActualAmountCent += int64(utils.WayBillDeliveryMarkUp)
|
||||||
|
fnResult.OrderTotalAmountCent += int64(utils.WayBillDeliveryMarkUp)
|
||||||
return fnResult, nil
|
return fnResult, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package fnpsapi
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
@@ -130,3 +131,40 @@ func IsErrShopExist(err error) bool {
|
|||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HttpToGuoYuanFN 订单消息推送果园
|
||||||
|
func HttpToGuoYuanFN(param map[string]interface{}, requestType string) (*http.Response, error) {
|
||||||
|
var paramData []byte
|
||||||
|
var err error
|
||||||
|
if requestType == "order" || requestType == "waybill" {
|
||||||
|
param["data"] = utils.Format4Output(param["data"], false)
|
||||||
|
paramData, err = json.Marshal([]interface{}{param})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
paramData, err = json.Marshal(param)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
body := strings.NewReader(string(paramData))
|
||||||
|
url := ""
|
||||||
|
switch requestType {
|
||||||
|
case "store": // 订单相关
|
||||||
|
url = "http://callback-jxgy.jxc4.com/fn/fnStore"
|
||||||
|
case "order": // 门店
|
||||||
|
url = "http://callback-jxgy.jxc4.com/fn/fnOrder"
|
||||||
|
case "abnormal": // 异常
|
||||||
|
url = "http://callback-jxgy.jxc4.com/fn/fnAbnormal"
|
||||||
|
}
|
||||||
|
httpReq, err := http.NewRequest(http.MethodPost, url, body)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
httpReq.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
|
httpRes, err := http.DefaultClient.Do(httpReq)
|
||||||
|
return httpRes, err
|
||||||
|
}
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ func (a *API) AccessAPI1(url string, params map[string]interface{}) (retVal map[
|
|||||||
err = platformapi.AccessPlatformAPIWithRetry(a.client,
|
err = platformapi.AccessPlatformAPIWithRetry(a.client,
|
||||||
func() *http.Request {
|
func() *http.Request {
|
||||||
globals.SugarLogger.Debugf("====param := %s", utils.Format4Output(params, false))
|
globals.SugarLogger.Debugf("====param := %s", utils.Format4Output(params, false))
|
||||||
|
globals.SugarLogger.Debugf("====url := %s", utils.Format4Output(url, false))
|
||||||
request, _ := http.NewRequest(http.MethodPost, url, strings.NewReader(utils.Map2URLValues(params).Encode()))
|
request, _ := http.NewRequest(http.MethodPost, url, strings.NewReader(utils.Map2URLValues(params).Encode()))
|
||||||
request.Header.Set("Content-Type", "application/json;charset=UTF-8")
|
request.Header.Set("Content-Type", "application/json;charset=UTF-8")
|
||||||
return request
|
return request
|
||||||
|
|||||||
@@ -72,20 +72,20 @@ func TestCreateToken(t *testing.T) {
|
|||||||
// 快手预下单获取支付参数
|
// 快手预下单获取支付参数
|
||||||
func TestPreCreateOrder(t *testing.T) {
|
func TestPreCreateOrder(t *testing.T) {
|
||||||
param := &PreCreateOrderReq{
|
param := &PreCreateOrderReq{
|
||||||
OutOrderNo: "1024028220",
|
OutOrderNo: "88422209072664",
|
||||||
OpenId: "f198f59711c9785314bf5724f7ab9f47",
|
OpenId: "f198f59711c9785314bf5724f7ab9f47",
|
||||||
TotalAmount: 1,
|
TotalAmount: 501,
|
||||||
Subject: "这是一个测试商品",
|
Subject: "蔬菜水果日用品",
|
||||||
Detail: "大白菜,小白菜,中白菜",
|
Detail: "好吃的素材水果",
|
||||||
TypeDetail: 1832, // 素菜
|
TypeDetail: 1832, // 素菜
|
||||||
ExpireTime: 10 * 60,
|
ExpireTime: 10 * 60,
|
||||||
Sign: "",
|
Sign: "",
|
||||||
Attach: "1111",
|
Attach: "22",
|
||||||
NotifyUrl: "https://callback.jxc4.com/tictoc/tiktokMsg",
|
NotifyUrl: "https://callback-jxgy.jxc4.com/kuaishou/kuaiShouCallback",
|
||||||
GoodsId: "1122",
|
GoodsId: "1122",
|
||||||
GoodsDetailUrl: "/page/index/anima",
|
GoodsDetailUrl: "/page/index/anima",
|
||||||
MultiCopiesGoodsInfo: "[{\"copies\":2}]",
|
//MultiCopiesGoodsInfo: `[{"copies":2}]`,
|
||||||
CancelOrder: 0,
|
CancelOrder: 1,
|
||||||
}
|
}
|
||||||
data, err := api.PreCreateOrder(param)
|
data, err := api.PreCreateOrder(param)
|
||||||
globals.SugarLogger.Debugf("data := %s", utils.Format4Output(data, false))
|
globals.SugarLogger.Debugf("data := %s", utils.Format4Output(data, false))
|
||||||
|
|||||||
@@ -295,7 +295,7 @@ func (a *API) result2OrderResponse(result *ResponseResult) (order *OrderResponse
|
|||||||
order.MtPeisongID = result.Data["mt_peisong_id"].(string)
|
order.MtPeisongID = result.Data["mt_peisong_id"].(string)
|
||||||
order.DeliveryID = utils.MustInterface2Int64(result.Data["delivery_id"])
|
order.DeliveryID = utils.MustInterface2Int64(result.Data["delivery_id"])
|
||||||
order.OrderID = result.Data["order_id"].(string)
|
order.OrderID = result.Data["order_id"].(string)
|
||||||
order.DeliveryFee = utils.MustInterface2Float64(result.Data["delivery_fee"])
|
order.DeliveryFee = utils.MustInterface2Float64(result.Data["delivery_fee"]) // 原价
|
||||||
return order
|
return order
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -346,6 +346,8 @@ func (a *API) QueryOrderStatus(deliveryId int64, mtPeiSongId string) (retVal map
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
result.Data["delivery_fee"] = utils.MustInterface2Float64(result.Data["delivery_fee"]) + (float64(utils.WayBillDeliveryMarkUp) / 100)
|
||||||
|
result.Data["pay_amount"] = utils.MustInterface2Float64(result.Data["pay_amount"])
|
||||||
return result.Data, nil
|
return result.Data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -465,8 +467,9 @@ func (a *API) PreCreateByShop(basicParams *PreCreateByShopParam) (deliveryFee, b
|
|||||||
return 0, 0, err
|
return 0, 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
deliveryFee = utils.Float64TwoInt64(utils.MustInterface2Float64(result.Data["delivery_fee"]) * 100) // 订单配送价格
|
deliveryFee = utils.Float64TwoInt64(utils.MustInterface2Float64(result.Data["delivery_fee"]) * 100) // 订单配送价格
|
||||||
baseDeliveryFee = utils.Float64TwoInt64(utils.MustInterface2Float64(result.Data["base_delivery_fee"]) * 100) // 订单优惠价格
|
baseDeliveryFee = utils.Float64TwoInt64(utils.MustInterface2Float64(result.Data["delivery_fee"]) * 100) // 订单优惠价格
|
||||||
|
//baseDeliveryFee = utils.Float64TwoInt64(utils.MustInterface2Float64(result.Data["base_delivery_fee"]) * 100) // 订单优惠价格
|
||||||
return deliveryFee, baseDeliveryFee, nil
|
return deliveryFee, baseDeliveryFee, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ func init() {
|
|||||||
//api = New("4123", "df2c88338b85f830cebce2a9eab56628", "", "")
|
//api = New("4123", "df2c88338b85f830cebce2a9eab56628", "", "")
|
||||||
|
|
||||||
//商超
|
//商超
|
||||||
//api = New("5873", "41c479790a76f86326f89e8048964739", "", "token_n4TwqCntWWuvQwAawzxC0w") //token_n4TwqCntWWuvQwAawzxC0w
|
api = New("5873", "41c479790a76f86326f89e8048964739", "", "token_nFTOat5DYhvqHIZbDZRJkQ") //token_n4TwqCntWWuvQwAawzxC0w
|
||||||
cookieStr := `
|
cookieStr := `
|
||||||
acctId=57396785; token=0bWbK5VbK50E2BmIhIH2zHB-am_y7mB37yXHm6RLZWx4*; wmPoiId=-1;
|
acctId=57396785; token=0bWbK5VbK50E2BmIhIH2zHB-am_y7mB37yXHm6RLZWx4*; wmPoiId=-1;
|
||||||
`
|
`
|
||||||
|
|||||||
@@ -120,10 +120,10 @@ func TestRetailListAll(t *testing.T) {
|
|||||||
|
|
||||||
// 删除所有门店商品
|
// 删除所有门店商品
|
||||||
func TestReloadStoreSku(t *testing.T) {
|
func TestReloadStoreSku(t *testing.T) {
|
||||||
result, err := api.RetailListAll("17817296")
|
result, err := api.RetailListAll("17223201")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
for i := 0; i < len(result); i++ {
|
for i := 0; i < len(result); i++ {
|
||||||
err := api.RetailDelete(utils.Int64ToStr(time.Now().Unix()), "17817296", result[i].AppFoodCode)
|
err := api.RetailDelete(utils.Int64ToStr(time.Now().Unix()), "17223201", result[i].AppFoodCode)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import (
|
|||||||
// "authority_id": ""
|
// "authority_id": ""
|
||||||
//}`
|
//}`
|
||||||
|
|
||||||
var token = `{"access_token":"71896365-cec7-4982-a686-0d8f3044cc1e","expires_in":1682872676,"scope":"SCOPE","shop_id":57939570,"shop_name":"京西菜市速食","refresh_token":"76d410d2-e869-4ddc-b8ad-0ae652114e13","authority_id":""}`
|
var token = `{"access_token":"09e5b626-418f-4780-ab33-857ba8f69b49","expires_in":1684077242,"scope":"SCOPE","shop_id":57939570,"shop_name":"京西菜市速食","refresh_token":"04a82701-a439-4dad-a20a-48299b0dffcd","authority_id":""}`
|
||||||
|
|
||||||
//var token = `{"access_token":"e3173e9f-266f-4d87-88e7-e7cd837bc9d9","expires_in":1672882632,"scope":"SCOPE","shop_id":68023619,"shop_name":"京西到家","refresh_token":"5070aae2-493f-46bd-b5d6-6ea0cd64729f","authority_id":""}`
|
//var token = `{"access_token":"e3173e9f-266f-4d87-88e7-e7cd837bc9d9","expires_in":1672882632,"scope":"SCOPE","shop_id":68023619,"shop_name":"京西到家","refresh_token":"5070aae2-493f-46bd-b5d6-6ea0cd64729f","authority_id":""}`
|
||||||
|
|
||||||
|
|||||||
@@ -30,3 +30,9 @@ func tryCatName2Code(originName string) (catCodeStr string) {
|
|||||||
}
|
}
|
||||||
return catCodeStr
|
return catCodeStr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCa(t *testing.T) {
|
||||||
|
name := "四川省"
|
||||||
|
fmt.Println(len(name))
|
||||||
|
fmt.Println(name[0:6])
|
||||||
|
}
|
||||||
|
|||||||
@@ -303,7 +303,7 @@ func TestDeleteSkuAndUploadSkuXiaJiaBiXu(t *testing.T) {
|
|||||||
CheckStatus: 1, // 1-未提交;2-待审核;3-审核通过;4-审核未通过;5-封禁;7-审核通过待上架
|
CheckStatus: 1, // 1-未提交;2-待审核;3-审核通过;4-审核未通过;5-封禁;7-审核通过待上架
|
||||||
Page: int64(i),
|
Page: int64(i),
|
||||||
Size: 100,
|
Size: 100,
|
||||||
StoreId: v,
|
StoreId: 63509510,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
globals.SugarLogger.Debugf("=index := %d ,err := %s", i, utils.Format4Output(err, false))
|
globals.SugarLogger.Debugf("=index := %d ,err := %s", i, utils.Format4Output(err, false))
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package tonglianpayapi
|
|||||||
import (
|
import (
|
||||||
"crypto/md5"
|
"crypto/md5"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"net/http"
|
"net/http"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -192,6 +193,8 @@ func (a *API) CreateUnitorderOrder(param *CreateUnitorderOrderParam) (result *Cr
|
|||||||
params["paytype"] = param.PayType
|
params["paytype"] = param.PayType
|
||||||
params["sub_appid"] = param.SubAppID
|
params["sub_appid"] = param.SubAppID
|
||||||
retVal, err := a.AccessAPI(sepcAction, params)
|
retVal, err := a.AccessAPI(sepcAction, params)
|
||||||
|
globals.SugarLogger.Debugf("===========err := %s", utils.Format4Output(retVal, false))
|
||||||
|
globals.SugarLogger.Debugf("===========err := %s", utils.Format4Output(err, false))
|
||||||
if err == nil {
|
if err == nil {
|
||||||
utils.Map2StructByJson(retVal, &result, false)
|
utils.Map2StructByJson(retVal, &result, false)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ func (a *API) GetOrderDetail(orderCode string) (*GetOrderDetailResp, error) {
|
|||||||
}
|
}
|
||||||
con := retVal != GetOrderDetailResp{}
|
con := retVal != GetOrderDetailResp{}
|
||||||
if con {
|
if con {
|
||||||
|
retVal.OrderPrice = utils.Float64ToStr(utils.Str2Float64(retVal.OrderPrice) + float64(utils.WayBillDeliveryMarkUp/100) + float64(0.2))
|
||||||
return &retVal, nil
|
return &retVal, nil
|
||||||
} else {
|
} else {
|
||||||
return nil, fmt.Errorf("UU跑腿未返回运单详情")
|
return nil, fmt.Errorf("UU跑腿未返回运单详情")
|
||||||
|
|||||||
@@ -23,8 +23,9 @@ var json1 = jsoniter.ConfigCompatibleWithStandardLibrary
|
|||||||
const MaxTimeSecond = 9573800254 // 正常最大的秒数
|
const MaxTimeSecond = 9573800254 // 正常最大的秒数
|
||||||
|
|
||||||
var (
|
var (
|
||||||
DefaultTimeValue = Str2Time("1970-01-01 00:00:00")
|
DefaultTimeValue = Str2Time("1970-01-01 00:00:00")
|
||||||
ZeroTimeValue = time.Time{}
|
WayBillDeliveryMarkUp = 20 // 运单加价两毛钱
|
||||||
|
ZeroTimeValue = time.Time{}
|
||||||
)
|
)
|
||||||
|
|
||||||
func UnmarshalUseNumber(data []byte, result interface{}) error {
|
func UnmarshalUseNumber(data []byte, result interface{}) error {
|
||||||
|
|||||||
Reference in New Issue
Block a user