Merge branch 'master' of e.coding.net:rosydev/baseapi

This commit is contained in:
邹宗楠
2022-10-22 22:45:41 +08:00
13 changed files with 1504 additions and 1499 deletions

View File

@@ -6,7 +6,6 @@ import (
"sort"
"strings"
"git.rosy.net.cn/baseapi"
"git.rosy.net.cn/baseapi/utils"
)
@@ -67,7 +66,6 @@ func (a *API) unmarshalData(data []byte, msg interface{}) (callbackResponse *Cal
func (a *API) CheckCallbackValidation(mapData map[string]interface{}) (callbackResponse *CallbackResponse) {
sign := a.signCallbackParams(mapData)
if remoteSign, _ := mapData[signKey].(string); sign != remoteSign {
baseapi.SugarLogger.Infof("Signature is not ok, mine:%v, get:%v", sign, remoteSign)
return FailedResponse
}
return nil

View File

@@ -1,170 +1,171 @@
package dadaapi
import (
"net/http"
"testing"
"git.rosy.net.cn/baseapi"
"git.rosy.net.cn/baseapi/utils"
"go.uber.org/zap"
)
var (
dadaapi *API
sugarLogger *zap.SugaredLogger
testOrder *OperateOrderParams
)
const (
testShopNo = "11047059"
)
func init() {
logger, _ := zap.NewDevelopment()
sugarLogger = logger.Sugar()
baseapi.Init(sugarLogger)
// sandbox
// dadaapi = New("dada9623324449cd250", "30c2abbfe8a8780ad5aace46300c64b9", "73753", "http://callback.jxc4.com/dada/order", false)
// prod
dadaapi = New("dada154e2a41fd6cef3", "7f97d8f258b70b450f04e7ab274ed8f8", "6660", "http://callback.jxc4.com/dadadelivery/msg", true)
// prod
testOrder = &OperateOrderParams{
ShopNo: testShopNo,
OriginID: "234242342",
CityCode: "028",
CargoPrice: 12.34,
IsPrepay: 1,
ReceiverName: "我是谁",
ReceiverAddress: "九里堤",
ReceiverLat: 30.74631,
ReceiverLng: 103.99112,
ReceiverPhone: "12812345678",
}
}
func TestTest(t *testing.T) {
sugarLogger.Debug(utils.GetCurTimeStr())
}
func TestSignCallback(t *testing.T) {
sampleData := `{"signature":"5a277f2519b6011028ff541fb09b8553","client_id":"275000419162381","order_id":"234242342","order_status":1,"cancel_reason":"","cancel_from":0,"dm_id":0,"update_time":1529564947}`
mapData := make(map[string]interface{})
utils.UnmarshalUseNumber([]byte(sampleData), &mapData)
sign := dadaapi.signCallbackParams(mapData)
if sign != mapData["signature"] {
t.Fatal("sign is not correct")
}
}
func TestAccessAPI(t *testing.T) {
body := make(map[string]interface{})
body["order_id"] = "fakeorderid"
result, err := dadaapi.AccessAPI("api/order/status/query", body)
failed := true
if err != nil {
if err2, ok := err.(*utils.ErrorWithCode); ok {
if err2.IntCode() != ResponseCodeSignErr {
failed = false
}
}
} else {
failed = false
}
if failed {
t.Fatalf("Error when accessing api result:%v, error:%v", result, err)
}
}
func TestGetCites(t *testing.T) {
result, err := dadaapi.GetCities()
if err != nil {
t.Fatal(err.Error())
}
failed := true
for _, city := range result {
if city.CityCode == "028" {
failed = false
}
}
if failed {
t.Fatal("failed")
}
}
func TestGetReasons(t *testing.T) {
result, err := dadaapi.GetCancelReasons()
if err != nil {
t.Fatal(err.Error())
}
// baseapi.SugarLogger.Debug(result)
failed := true
for _, reason := range result {
if reason.ID == 1 {
failed = false
}
}
if failed {
t.Fatal("failed")
}
}
func TestAddOrder(t *testing.T) {
result, err := dadaapi.AddOrder(testOrder)
if err != nil {
t.Fatal(err.Error())
}
baseapi.SugarLogger.Debug(result)
}
func TestReaddOrder(t *testing.T) {
result, err := dadaapi.ReaddOrder(testOrder)
if err != nil {
t.Fatal(err.Error())
}
baseapi.SugarLogger.Debug(result)
}
func TestCancelOrder(t *testing.T) {
result, err := dadaapi.CancelOrder("234242342", ReasonIDClientDontWantItAnymore, "")
if err != nil {
t.Fatal(err.Error())
}
baseapi.SugarLogger.Debug(result)
}
func TestCallbackMsgPlayback(t *testing.T) {
baseURL := "http://callback.test.jxc4.com:8080/"
playbackData := [][]string{
[]string{
"{\"signature\":\"2b10053038eef28af360fa2603d59fd1\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":1,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":0,\"update_time\":1530171995}",
baseURL + "dadadelivery/msg",
},
[]string{
"{\"signature\":\"14cb9d55179d47de73e09d3b5e800fea\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":2,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530172054}",
baseURL + "dadadelivery/msg",
},
[]string{
"{\"signature\":\"1058519a18dd8ee8ba6a1638e53bed66\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":3,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530173065}",
baseURL + "dadadelivery/msg",
},
[]string{
"{\"signature\":\"9c7a5d72d4e9bdea7b452f38e5c5a0dc\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":4,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530173559}",
baseURL + "dadadelivery/msg",
},
}
for _, v := range playbackData {
_, err := utils.SendFakeRequest(http.MethodPost, v[1], v[0], "application/json; charset=utf-8")
if err != nil {
t.Fatal(err)
}
}
}
//
//import (
// "net/http"
// "testing"
//
// "git.rosy.net.cn/baseapi"
//
// "git.rosy.net.cn/baseapi/utils"
// "go.uber.org/zap"
//)
//
//var (
// dadaapi *API
// sugarLogger *zap.SugaredLogger
// testOrder *OperateOrderParams
//)
//
//const (
// testShopNo = "11047059"
//)
//
//func init() {
// logger, _ := zap.NewDevelopment()
// sugarLogger = logger.Sugar()
// baseapi.Init(sugarLogger)
//
// // sandbox
// // dadaapi = New("dada9623324449cd250", "30c2abbfe8a8780ad5aace46300c64b9", "73753", "http://callback.jxc4.com/dada/order", false)
//
// // prod
// dadaapi = New("dada154e2a41fd6cef3", "7f97d8f258b70b450f04e7ab274ed8f8", "6660", "http://callback.jxc4.com/dadadelivery/msg", true)
//
// // prod
// testOrder = &OperateOrderParams{
// ShopNo: testShopNo,
// OriginID: "234242342",
// CityCode: "028",
// CargoPrice: 12.34,
// IsPrepay: 1,
// ReceiverName: "我是谁",
// ReceiverAddress: "九里堤",
// ReceiverLat: 30.74631,
// ReceiverLng: 103.99112,
// ReceiverPhone: "12812345678",
// }
//
//}
//
//func TestTest(t *testing.T) {
// sugarLogger.Debug(utils.GetCurTimeStr())
//}
//
//func TestSignCallback(t *testing.T) {
// sampleData := `{"signature":"5a277f2519b6011028ff541fb09b8553","client_id":"275000419162381","order_id":"234242342","order_status":1,"cancel_reason":"","cancel_from":0,"dm_id":0,"update_time":1529564947}`
// mapData := make(map[string]interface{})
// utils.UnmarshalUseNumber([]byte(sampleData), &mapData)
// sign := dadaapi.signCallbackParams(mapData)
// if sign != mapData["signature"] {
// t.Fatal("sign is not correct")
// }
//}
//
//func TestAccessAPI(t *testing.T) {
// body := make(map[string]interface{})
// body["order_id"] = "fakeorderid"
// result, err := dadaapi.AccessAPI("api/order/status/query", body)
//
// failed := true
// if err != nil {
// if err2, ok := err.(*utils.ErrorWithCode); ok {
// if err2.IntCode() != ResponseCodeSignErr {
// failed = false
// }
// }
// } else {
// failed = false
// }
//
// if failed {
// t.Fatalf("Error when accessing api result:%v, error:%v", result, err)
// }
//}
//
//func TestGetCites(t *testing.T) {
// result, err := dadaapi.GetCities()
// if err != nil {
// t.Fatal(err.Error())
// }
// failed := true
// for _, city := range result {
// if city.CityCode == "028" {
// failed = false
// }
// }
//
// if failed {
// t.Fatal("failed")
// }
//}
//
//func TestGetReasons(t *testing.T) {
// result, err := dadaapi.GetCancelReasons()
// if err != nil {
// t.Fatal(err.Error())
// }
// // baseapi.SugarLogger.Debug(result)
// failed := true
// for _, reason := range result {
// if reason.ID == 1 {
// failed = false
// }
// }
//
// if failed {
// t.Fatal("failed")
// }
//}
//
//func TestAddOrder(t *testing.T) {
// result, err := dadaapi.AddOrder(testOrder)
// if err != nil {
// t.Fatal(err.Error())
// }
// t.Fatal(result)
//}
//
//func TestReaddOrder(t *testing.T) {
// result, err := dadaapi.ReaddOrder(testOrder)
// if err != nil {
// t.Fatal(err.Error())
// }
// baseapi.SugarLogger.Debug(result)
//}
//
//func TestCancelOrder(t *testing.T) {
// result, err := dadaapi.CancelOrder("234242342", ReasonIDClientDontWantItAnymore, "")
// if err != nil {
// t.Fatal(err.Error())
// }
// baseapi.SugarLogger.Debug(result)
//}
//
//func TestCallbackMsgPlayback(t *testing.T) {
// baseURL := "http://callback.test.jxc4.com:8080/"
// playbackData := [][]string{
// []string{
// "{\"signature\":\"2b10053038eef28af360fa2603d59fd1\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":1,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":0,\"update_time\":1530171995}",
// baseURL + "dadadelivery/msg",
// },
// []string{
// "{\"signature\":\"14cb9d55179d47de73e09d3b5e800fea\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":2,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530172054}",
// baseURL + "dadadelivery/msg",
// },
// []string{
// "{\"signature\":\"1058519a18dd8ee8ba6a1638e53bed66\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":3,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530173065}",
// baseURL + "dadadelivery/msg",
// },
// []string{
// "{\"signature\":\"9c7a5d72d4e9bdea7b452f38e5c5a0dc\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":4,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530173559}",
// baseURL + "dadadelivery/msg",
// },
// }
// for _, v := range playbackData {
// _, err := utils.SendFakeRequest(http.MethodPost, v[1], v[0], "application/json; charset=utf-8")
// if err != nil {
// t.Fatal(err)
// }
// }
//}

View File

@@ -1,80 +1,81 @@
package dadaapi
import (
"fmt"
"testing"
"git.rosy.net.cn/baseapi"
"git.rosy.net.cn/baseapi/utils"
)
func TestAddOrderAfterQuery(t *testing.T) {
// orderID := utils.GetUUID()
result, err := dadaapi.QueryDeliverFee(&OperateOrderParams{
ShopNo: "102908",
OriginID: "130652775117000002",
CityCode: "021",
CargoPrice: 0.01,
IsPrepay: 0,
ReceiverName: "某人",
ReceiverAddress: "西南交通大学科技大厦",
ReceiverLng: 121.258651,
ReceiverLat: 31.034611,
ReceiverPhone: "18180948107",
CargoType: 19,
CargoWeight: 3,
})
if err != nil {
t.Fatal(err)
}
baseapi.SugarLogger.Debug(utils.Format4Output(result, false))
// err = dadaapi.AddOrderAfterQuery(result.DeliveryNo)
// if err != nil {
// t.Fatal(err)
// }
// cancelResponse, err := dadaapi.CancelOrder(orderID, ReasonIDOther, "test")
// if err != nil {
// t.Fatal(err)
// }
// baseapi.SugarLogger.Debug(utils.Format4Output(cancelResponse, false))
}
func TestCancel(t *testing.T) {
cancelResponse, err := dadaapi.CancelOrder("126099099192000002", ReasonIDOther, "协商一致")
if err != nil {
t.Fatal(err)
}
baseapi.SugarLogger.Debug(utils.Format4Output(cancelResponse, false))
}
func TestGetComplaintReasons(t *testing.T) {
complaintReason, err := dadaapi.GetComplaintReasons()
if err != nil {
t.Fatal(err)
}
fmt.Println(complaintReason)
}
func TestComplaintRider(t *testing.T) {
err := dadaapi.ComplaintRider("123", 1)
if err != nil {
t.Fatal(err)
}
}
func TestQueryOrderInfo(t *testing.T) {
result, err := dadaapi.QueryOrderInfo("80704840263399812")
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestAddTip(t *testing.T) {
err := dadaapi.AddTip("80704840263399812", 1.0, "530100", "")
if err != nil {
t.Fatal(err)
}
}
//
//import (
// "fmt"
// "testing"
//
// "git.rosy.net.cn/baseapi"
// "git.rosy.net.cn/baseapi/utils"
//)
//
//func TestAddOrderAfterQuery(t *testing.T) {
// // orderID := utils.GetUUID()
// result, err := dadaapi.QueryDeliverFee(&OperateOrderParams{
// ShopNo: "102908",
// OriginID: "130652775117000002",
// CityCode: "021",
// CargoPrice: 0.01,
// IsPrepay: 0,
// ReceiverName: "某人",
// ReceiverAddress: "西南交通大学科技大厦",
// ReceiverLng: 121.258651,
// ReceiverLat: 31.034611,
// ReceiverPhone: "18180948107",
// CargoType: 19,
// CargoWeight: 3,
// })
// if err != nil {
// t.Fatal(err)
// }
// baseapi.SugarLogger.Debug(utils.Format4Output(result, false))
//
// // err = dadaapi.AddOrderAfterQuery(result.DeliveryNo)
// // if err != nil {
// // t.Fatal(err)
// // }
//
// // cancelResponse, err := dadaapi.CancelOrder(orderID, ReasonIDOther, "test")
// // if err != nil {
// // t.Fatal(err)
// // }
// // baseapi.SugarLogger.Debug(utils.Format4Output(cancelResponse, false))
//}
//
//func TestCancel(t *testing.T) {
// cancelResponse, err := dadaapi.CancelOrder("126099099192000002", ReasonIDOther, "协商一致")
// if err != nil {
// t.Fatal(err)
// }
// baseapi.SugarLogger.Debug(utils.Format4Output(cancelResponse, false))
//}
//
//func TestGetComplaintReasons(t *testing.T) {
// complaintReason, err := dadaapi.GetComplaintReasons()
// if err != nil {
// t.Fatal(err)
// }
// fmt.Println(complaintReason)
//}
//
//func TestComplaintRider(t *testing.T) {
// err := dadaapi.ComplaintRider("123", 1)
// if err != nil {
// t.Fatal(err)
// }
//}
//
//func TestQueryOrderInfo(t *testing.T) {
// result, err := dadaapi.QueryOrderInfo("80704840263399812")
// if err != nil {
// t.Fatal(err)
// }
// t.Log(utils.Format4Output(result, false))
//}
//
//func TestAddTip(t *testing.T) {
// err := dadaapi.AddTip("80704840263399812", 1.0, "530100", "")
// if err != nil {
// t.Fatal(err)
// }
//}

View File

@@ -1,47 +1,48 @@
package dadaapi
import (
"testing"
"git.rosy.net.cn/baseapi"
"git.rosy.net.cn/baseapi/utils"
)
func TestShopDetail(t *testing.T) {
result, err := dadaapi.ShopDetail("18180948107")
if err != nil {
t.Fatal(err)
}
baseapi.SugarLogger.Debug(utils.Format4Output(result, false))
}
func TestShopAdd(t *testing.T) {
shopInfo := &ShopInfo{
OriginShopID: "181809481071",
StationName: "京西大本营2",
Business: BusinessTypeFruitVegetable,
CityName: "成都市",
AreaName: "金牛区",
StationAddress: "西南交通大学科技大厦二楼",
Lng: 104.056844,
Lat: 30.695151,
ContactName: "徐先生",
Phone: "18180948107",
}
result, err := dadaapi.ShopAdd(shopInfo)
if err != nil {
t.Fatal(err)
}
baseapi.SugarLogger.Debug(result)
}
func TestShopUpdate(t *testing.T) {
shopInfo := &ShopInfo{
OriginShopID: "666872",
Status: 1,
}
err := dadaapi.ShopUpdate(shopInfo)
if err != nil {
t.Fatal(err)
}
}
//
//import (
// "testing"
//
// "git.rosy.net.cn/baseapi"
// "git.rosy.net.cn/baseapi/utils"
//)
//
//func TestShopDetail(t *testing.T) {
// result, err := dadaapi.ShopDetail("18180948107")
// if err != nil {
// t.Fatal(err)
// }
// baseapi.SugarLogger.Debug(utils.Format4Output(result, false))
//}
//
//func TestShopAdd(t *testing.T) {
// shopInfo := &ShopInfo{
// OriginShopID: "181809481071",
// StationName: "京西大本营2",
// Business: BusinessTypeFruitVegetable,
// CityName: "成都市",
// AreaName: "金牛区",
// StationAddress: "西南交通大学科技大厦二楼",
// Lng: 104.056844,
// Lat: 30.695151,
// ContactName: "徐先生",
// Phone: "18180948107",
// }
// result, err := dadaapi.ShopAdd(shopInfo)
// if err != nil {
// t.Fatal(err)
// }
// baseapi.SugarLogger.Debug(result)
//}
//
//func TestShopUpdate(t *testing.T) {
// shopInfo := &ShopInfo{
// OriginShopID: "666872",
// Status: 1,
// }
// err := dadaapi.ShopUpdate(shopInfo)
// if err != nil {
// t.Fatal(err)
// }
//}