package jdapi import ( "io/ioutil" "net/http" "net/url" "strings" "testing" "git.rosy.net.cn/baseapi/utils" ) func TestQuerySingleOrder(t *testing.T) { retVal, err := api.QuerySingleOrder("921160248000222") t.Log(utils.Format4Output(retVal, false)) if err != nil { t.Error(err) } if false { t.Log(utils.Format4Output(retVal, false)) } retVal, err = api.QuerySingleOrder("999999") if err == nil { t.Error("应该找不到这个订单!") } } func TestOrderQuery(t *testing.T) { jdParams := map[string]interface{}{ "orderId": "813344594000041", } result, totalCount, err := api.OrderQuery(jdParams) if err != nil { t.Fatalf("OrderQuery return error:%v", err) } t.Log(utils.Format4Output(result, false)) if len(result) == 0 || totalCount == 0 { t.Fatal("OrderQuery return empty data") } buyerCityOk := false orderInfo, _ := result[0].(map[string]interface{}) if buyerCity1, ok := orderInfo["buyerCity"]; ok { if buyerCity, ok := buyerCity1.(string); ok && buyerCity == "2376" { buyerCityOk = true } } if !buyerCityOk { t.Fatal("OrderQuery get data wrong") } } func TestGetOrderCallbackMsg(t *testing.T) { callbackStr := strings.TrimSpace(` timestamp=2019-12-03+06%3A28%3A40&sign=84AF173723A89E95AD7D0CFECA293683&v=1.0&jd_param_json=%7B%22billId%22%3A%22929053552000142%22%2C%22statusId%22%3A%2232000%22%2C%22timestamp%22%3A%222019-12-03+06%3A28%3A37%22%7D&token=77e703b7-7997-441b-a12a-2e522efb117a&app_key=1dba76d40cac446ca500c0391a0b6c9d&format=json `) values, _, msgURL, resp := GetCallbackMsg(utils.BuildRequest(http.MethodPost, "", callbackStr, ""), false) result, resp := api.GetOrderCallbackMsg(values, msgURL) if resp != nil { t.Fatal(resp) } sugarLogger.Debug(result) } func TestGetOrderDeliveryCallbackMsg(t *testing.T) { callbackStr := strings.TrimSpace(` timestamp=2018-06-27%2B09%253A08%253A41&sign=54D9A8515BB5650DC3B81366E3286570&v=1.0&jd_param_json=%257B%2522createPin%2522%253A%2522JD_21134dac1c251d2%2522%252C%2522deliveryCarrierName%2522%253A%2522%25E8%25BE%25BE%25E8%25BE%25BE%25E4%25B8%2593%25E9%2580%2581%2522%252C%2522deliveryCarrierNo%2522%253A%25229966%2522%252C%2522deliveryStatus%2522%253A%252210%2522%252C%2522deliveryStatusTime%2522%253A%25222018-06-27%2B09%253A08%253A41%2522%252C%2522inputTime%2522%253A%25222018-06-27%2B09%253A08%253A41%2522%252C%2522orderId%2522%253A%2522815324888000121%2522%257D&token=91633f2a-c5f5-4982-a925-a220d19095c3&app_key=1dba76d40cac446ca500c0391a0b6c9d&format=json `) values, _, msgURL, resp := GetCallbackMsg(utils.BuildRequest(http.MethodPost, "", callbackStr, ""), true) result, resp := api.GetOrderDeliveryCallbackMsg(values, msgURL) if resp != nil { t.Fatal(resp) } sugarLogger.Debug(result) } func TestGetOrderApplyCancelCallbackMsg(t *testing.T) { callbackStr := strings.TrimSpace(` timestamp=2018-06-27%2B13%253A35%253A29&sign=F1398D658514D8864FFB56F5EF2C4792&v=1.0&jd_param_json=%257B%2522billId%2522%253A%2522815339944000322%2522%252C%2522remark%2522%253A%2522%25E5%2595%2586%25E5%25AE%25B6%25E7%25BC%25BA%25E8%25B4%25A7%2522%252C%2522statusId%2522%253A%252220030%2522%252C%2522timestamp%2522%253A%25222018-06-27%2B13%253A35%253A24%2522%257D&token=91633f2a-c5f5-4982-a925-a220d19095c3&app_key=1dba76d40cac446ca500c0391a0b6c9d&format=json `) values, _, msgURL, resp := GetCallbackMsg(utils.BuildRequest(http.MethodPost, "", callbackStr, ""), true) result, resp := api.GetOrderApplyCancelCallbackMsg(values, msgURL) if resp != nil { t.Fatal(resp) } sugarLogger.Debug(result) } func TestSimulateSendNewOrderMsg(t *testing.T) { orderInfo := &CallbackOrderMsg{ BillID: "813344594000041", StatusID: OrderStatusPurchased, Timestamp: utils.GetCurTimeStr(), } params := make(url.Values) params.Set("token", api.token) params.Set("app_key", api.appKey) params.Set("timestamp", utils.GetCurTimeStr()) params.Set("v", "1.0") params.Set("format", "json") params.Set(paramJson, string(utils.MustMarshal(orderInfo))) mapData := utils.URLValues2Map(params) params.Set(signKey, api.signParams(mapData)) response, err := http.PostForm("http://callback.test.jxc4.com/djsw/newOrder", params) if err != nil { t.Fatal(err) } bodyData, _ := ioutil.ReadAll(response.Body) sugarLogger.Debug(string(bodyData)) } /* DELETE t1 FROM jdorder t1 WHERE t1.jdorderid = 815438712001141; */ func TestCallbackMsgPlayback(t *testing.T) { baseURL := "http://callback.test.jxc4.com:8080/" playbackData := [][]string{ []string{ "timestamp=2018-06-28+16%3A33%3A06&sign=B9FF8D5428F1DD1031DEF84AD08AB546&v=1.0&jd_param_json=%7B%22billId%22%3A%22815438712001141%22%2C%22statusId%22%3A%2232000%22%2C%22timestamp%22%3A%222018-06-28+16%3A33%3A03%22%7D&token=91633f2a-c5f5-4982-a925-a220d19095c3&app_key=1dba76d40cac446ca500c0391a0b6c9d&format=json", baseURL + "djsw/newOrder", }, []string{ "timestamp=2018-06-28+16%3A40%3A19&sign=10C8ACAC71D954C0607046AC669079ED&v=1.0&jd_param_json=%7B%22billId%22%3A%22815438712001141%22%2C%22statusId%22%3A%222%22%2C%22timestamp%22%3A%222018-06-28+16%3A40%3A19%22%7D&token=91633f2a-c5f5-4982-a925-a220d19095c3&app_key=1dba76d40cac446ca500c0391a0b6c9d&format=json", baseURL + "djsw/pickFinishOrder", }, []string{ "timestamp=2018-06-28%2B16%253A40%253A19&sign=E270E90A7F1712331AD210CCB477ED32&v=1.0&jd_param_json=%257B%2522createPin%2522%253A%2522JD_33d45ba55afeb1%2522%252C%2522deliveryCarrierName%2522%253A%2522%25E8%25BE%25BE%25E8%25BE%25BE%25E4%25B8%2593%25E9%2580%2581%2522%252C%2522deliveryCarrierNo%2522%253A%25229966%2522%252C%2522deliveryStatus%2522%253A%252210%2522%252C%2522deliveryStatusTime%2522%253A%25222018-06-28%2B16%253A40%253A19%2522%252C%2522inputTime%2522%253A%25222018-06-28%2B16%253A40%253A19%2522%252C%2522orderId%2522%253A%2522815438712001141%2522%257D&token=91633f2a-c5f5-4982-a925-a220d19095c3&app_key=1dba76d40cac446ca500c0391a0b6c9d&format=json", baseURL + "djsw/pushDeliveryStatus", }, []string{ "sign=5d506d2ed7d0f353bd578df64a47c1a2b596278a×tamp=1530176122&delivery_id=423701&status=0&appkey=3c0a05d464c247c19d7ec13accc78605&order_id=815438712001141&mt_peisong_id=1530176122092538", baseURL + "mtps/status", }, []string{ "sign=037e8ef50ce575c3fcc00b9507a46432c0a64768×tamp=1530176299&delivery_id=423701&status=20&appkey=3c0a05d464c247c19d7ec13accc78605&courier_phone=13281800720&courier_name=%E6%9D%8E%E5%B7%9D&order_id=815438712001141&mt_peisong_id=1530176122092538", baseURL + "mtps/status", }, []string{ "timestamp=2018-06-28+16%3A58%3A20&sign=1DD702433D915DE19F4AC3DD39287E04&v=1.0&jd_param_json=%7B%22billId%22%3A%22815438712001141%22%2C%22statusId%22%3A%2233040%22%2C%22timestamp%22%3A%222018-06-28+16%3A58%3A20%22%7D&token=91633f2a-c5f5-4982-a925-a220d19095c3&app_key=1dba76d40cac446ca500c0391a0b6c9d&format=json", baseURL + "djsw/deliveryOrder", }, []string{ "sign=73aae156870e530541d3da1c372411e9bc589470×tamp=1530176533&delivery_id=423701&status=30&appkey=3c0a05d464c247c19d7ec13accc78605&courier_phone=13281800720&courier_name=%E6%9D%8E%E5%B7%9D&order_id=815438712001141&mt_peisong_id=1530176122092538", baseURL + "mtps/status", }, []string{ "sign=ffe6c9ac09d21505106631bb92fb983599dde69d×tamp=1530177544&delivery_id=423701&status=50&appkey=3c0a05d464c247c19d7ec13accc78605&courier_phone=13281800720&courier_name=%E6%9D%8E%E5%B7%9D&order_id=815438712001141&mt_peisong_id=1530176122092538", baseURL + "mtps/status", }, []string{ "timestamp=2018-06-28+17%3A19%3A25&sign=06D8763C5B569485FD250F5C283E8B76&v=1.0&jd_param_json=%7B%22billId%22%3A%22815438712001141%22%2C%22statusId%22%3A%2233060%22%2C%22timestamp%22%3A%222018-06-28+17%3A19%3A04%22%7D&token=91633f2a-c5f5-4982-a925-a220d19095c3&app_key=1dba76d40cac446ca500c0391a0b6c9d&format=json", baseURL + "djsw/finishOrder", }, } for _, v := range playbackData { _, err := utils.SendFakeRequest(http.MethodPost, v[1], v[0], "") if err != nil { t.Fatal(err) } } } func TestOrderAcceptOperate(t *testing.T) { err := api.OrderAcceptOperate("813344594000041", true, "") if err != nil { t.Fatal(err.Error()) } } func TestOrderJDZBDelivery(t *testing.T) { result, err := api.OrderJDZBDelivery("911350836000622", "") if err != nil { t.Fatal(err.Error()) } sugarLogger.Debug(result) } func TestModifySellerDelivery(t *testing.T) { result, err := api.ModifySellerDelivery("914376668000422", "") if err != nil { t.Fatal(err.Error()) } sugarLogger.Debug(result) } func TestOrderSerllerDelivery(t *testing.T) { result, err := api.OrderSerllerDelivery("813344594000041", "") if err != nil { t.Fatal(err.Error()) } sugarLogger.Debug(result) } func TestDeliveryEndOrder(t *testing.T) { result, err := api.DeliveryEndOrder("813344594000041", "") if err != nil { t.Fatal(err.Error()) } sugarLogger.Debug(result) } func TestGetAfsService(t *testing.T) { result, err := api.GetAfsService("22565438") if err != nil { t.Fatal(err.Error()) } sugarLogger.Debug(utils.Format4Output(result, false)) } func TestGetAfsService2(t *testing.T) { result, err := api.GetAfsService2("22565438") if err != nil { t.Fatal(err.Error()) } sugarLogger.Debug(utils.Format4Output(result, false)) } func TestOrderShoudSettlementService2(t *testing.T) { result, err := api.OrderShoudSettlementService2("914508761000241") if err != nil { t.Fatal(err.Error()) } sugarLogger.Debug(utils.Format4Output(result, false)) } func TestOrderAddTips(t *testing.T) { err := api.OrderAddTips("918092290000042", 50, "xjh") if err != nil { t.Fatal(err.Error()) } } func TestOrderQuery2(t *testing.T) { orderList, _, err := api.OrderQuery2(&OrderQueryParam{ OrderID: 918092290000042, }) t.Log(utils.Format4Output(orderList, false)) if err != nil { t.Fatal(err.Error()) } } func TestGetByOrderNoForOaos(t *testing.T) { orderList, err := api.GetByOrderNoForOaos("921235438000341") t.Log(utils.Format4Output(orderList, false)) if err != nil { t.Fatal(err.Error()) } } func TestGetByOrderNoForOaosNew(t *testing.T) { orderList, err := api.GetByOrderNoForOaosNew("921235438000341") t.Log(utils.Format4Output(orderList, false)) if err != nil { t.Fatal(err.Error()) } } func TestCheckSelfPickCode(t *testing.T) { err := api.CheckSelfPickCode("020606", "921235438000341", "test") if err != nil { t.Fatal(err.Error()) } } func TestProcessQuestionPic(t *testing.T) { for _, v := range [][]string{ []string{ "http://img10.360buyimg.com/o2o/jfs/a.jpg", ",,,jfs/a.jpg", }, []string{ "http://img10.360buyimg.com/o2o/jfs/a.jpg,https://img10.360buyimg.com/o2o/jfs/b.jpg", " , ,, jfs/a.jpg,https:jfs/b.jpg", }, []string{ "https://img10.360buyimg.com/o2o/jfs/a.jpg", ",https:jfs/a.jpg", }, []string{ "", ",https:", }, } { str := ProcessQuestionPic(v[1]) if str != v[0] { t.Fatalf("%s, desired:%s, but its:%s", v[1], v[0], str) } } }