Commit afa547f2 authored by Allen Chen's avatar Allen Chen

commit

parent 263e7ab5
package org.ta.pddserver.config;
public class PddAPIConfig {
// 临沂海际韩国集运 生产环境参数
// 应用基础参数
public static final String CLIENT_ID = "8f5f3f9c92e847b2894fc9c0afce3d61";
public static final String CLIENT_SECRET = "281d79ad5117d20a51efb9e7b0d5f7ee336399b0";
// 基础API地址
public static final String URL = "https://ark-api.pinduoduo.com/ark/router";
// 工单API地址
public static final String URL_GD = "https://gw-api.pinduoduo.com/api/router";
// 临沂海际韩国集运 测试环境参数
// // 应用基础参数
// public static final String CLIENT_ID = "d0217707e1194c46b57e696ac7619a06";
// public static final String CLIENT_SECRET = "a5aba84483d8387030899f01276b06a194942470";
// // 基础API地址
// public static final String URL = "https://opengw-api.hutaojie.com/ark/router";
// // 工单API地址
// public static final String URL_GD = "https://opengw-api.hutaojie.com/api/router";
// 服务商编码 生产环境和测试环境一致
public static final String PROVIDER_CODE = "HAIJI_KR";
// 仓库编码 生产环境和测试环境一致
public static final String WAREHOUSE_CODE = "HJJY001";
// 分配快递编码 生产环境和测试环境一致
public static final String SHIP_ID = "567";
}
......@@ -8,6 +8,7 @@ import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.ta.pddserver.config.PddAPIConfig;
import org.ta.pddserver.entity.*;
import org.ta.pddserver.mapper.TraceObjectMapper;
import org.ta.pddserver.model.pddjy.request.*;
......@@ -33,12 +34,6 @@ import java.util.List;
@RestController
public class PddFZController {
private static final String PROVIDER_CODE = "HAIJI_KR";
private static final String WAREHOUSE_CODE = "HJJY001";
private static final String CLIENT_ID = "8f5f3f9c92e847b2894fc9c0afce3d61";
private static final String CLIENT_SECRET = "281d79ad5117d20a51efb9e7b0d5f7ee336399b0";
@Resource
LogOrderMailDetailImpl logOrderMailDetailImpl;
......@@ -59,14 +54,14 @@ public class PddFZController {
PddLogisticsCoTrackNotifyRequest request = new PddLogisticsCoTrackNotifyRequest();
request.setClient_id(CLIENT_ID);
request.setShip_id("567");
request.setTarget_client_id(CLIENT_ID);
request.setClient_id(PddAPIConfig.CLIENT_ID);
request.setShip_id(PddAPIConfig.SHIP_ID);
request.setTarget_client_id(PddAPIConfig.CLIENT_ID);
request.setTimestamp(System.currentTimeMillis() / 1000);
PddLogisticsCoTrackNotifyRequest.DataObject dataObject = getDataObject(code);
request.setDataObject(dataObject);
request.encodeData();
request.setSign(PddSignTool.generateSign(request, CLIENT_SECRET));
request.setSign(PddSignTool.generateSign(request, PddAPIConfig.CLIENT_SECRET));
log.info("requestModel:{}", JSON.toJSONString(request));
String resp = PddHttpTool.sendJsonPost(request);
log.info("resp = {}", resp);
......@@ -92,7 +87,7 @@ public class PddFZController {
public void bizAction(@PathVariable("mailNo") String mailNo, @PathVariable("action") String action) {
LogOrderMailDetailEntity logOrderMailDetailEntity = logOrderMailDetailImpl.getByMailNo(mailNo);
PddServiceConsoFirstBizActionNotifyRequest notifyRequest = new PddServiceConsoFirstBizActionNotifyRequest();
notifyRequest.setProviderCode(PROVIDER_CODE);
notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
notifyRequest.setExecuteTime(getNowString());
notifyRequest.setTimeZone("UTC+8");
notifyRequest.setLogisticsOrderCode(logOrderMailDetailEntity.getLogisticsOrderCode());
......@@ -122,11 +117,11 @@ public class PddFZController {
requestModel.setRequest(JSON.toJSONString(notifyRequest));
requestModel.setRequest_id("" + new Date().getTime());
requestModel.setType("pdd.service.conso.first.biz.action.notify");
requestModel.setTarget_client_id(CLIENT_ID);
requestModel.setClient_id(CLIENT_ID);
requestModel.setTarget_client_id(PddAPIConfig.CLIENT_ID);
requestModel.setClient_id(PddAPIConfig.CLIENT_ID);
long time = new Date().getTime() / 1000;
requestModel.setTimestamp(time);
requestModel.setSign(PddSignTool.generateSign(requestModel, CLIENT_SECRET));
requestModel.setSign(PddSignTool.generateSign(requestModel, PddAPIConfig.CLIENT_SECRET));
log.info("requestModel:{}", JSON.toJSONString(requestModel));
// String resp = PddHttpTool.postRequest(requestModel);
String resp = PddHttpTool.sendJsonPost(requestModel);
......@@ -141,7 +136,7 @@ public class PddFZController {
// PddServiceConsoFirstBizActionNotifyRequest notifyRequest = new PddServiceConsoFirstBizActionNotifyRequest();
notifyRequest.setProviderCode(PROVIDER_CODE);
notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
notifyRequest.setLogisticsOrderCode(logOrderMailDetailEntity.getLogisticsOrderCode());
notifyRequest.setExecuteTime(getNowString());
notifyRequest.setTimeZone("UTC+8");
......@@ -167,11 +162,11 @@ public class PddFZController {
requestModel.setRequest(JSON.toJSONString(notifyRequest));
requestModel.setRequest_id("" + new Date().getTime());
requestModel.setType("pdd.service.conso.inbound");
requestModel.setTarget_client_id(CLIENT_ID);
requestModel.setClient_id(CLIENT_ID);
requestModel.setTarget_client_id(PddAPIConfig.CLIENT_ID);
requestModel.setClient_id(PddAPIConfig.CLIENT_ID);
long time = new Date().getTime() / 1000;
requestModel.setTimestamp(time);
requestModel.setSign(PddSignTool.generateSign(requestModel, CLIENT_SECRET));
requestModel.setSign(PddSignTool.generateSign(requestModel, PddAPIConfig.CLIENT_SECRET));
log.info("requestModel:{}", JSON.toJSONString(requestModel));
// String resp = PddHttpTool.postRequest(requestModel);
String resp = PddHttpTool.sendJsonPost(requestModel);
......
......@@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.ta.pddserver.config.PddAPIConfig;
import org.ta.pddserver.entity.GDAttachmentEntity;
import org.ta.pddserver.entity.GDReplyAttachmentEntity;
import org.ta.pddserver.entity.GDReplyEntity;
......@@ -37,80 +38,6 @@ import java.util.*;
@Slf4j
@RestController
public class PddGDController {
private static final String CLIENT_ID = "8f5f3f9c92e847b2894fc9c0afce3d61";
private static final String CLIENT_SECRET = "281d79ad5117d20a51efb9e7b0d5f7ee336399b0";
public JSONObject getTicketList() {
JSONObject jsonObject = new JSONObject();
long end = new Date().getTime() / 1000;
jsonObject.put("end_updated_at", end);
jsonObject.put("start_updated_at", end - 1800);
jsonObject.put("page", 1);
jsonObject.put("page_size", 100);
jsonObject.put("client_id", CLIENT_ID);
JYBaseRequestModel requestModel = new JYBaseRequestModel();
requestModel.setRequest(JSON.toJSONString(jsonObject));
requestModel.setRequest_id("" + new Date().getTime());
requestModel.setType("pdd.logistics.ticket.get");
requestModel.setTarget_client_id(CLIENT_ID);
requestModel.setClient_id(CLIENT_ID);
long time = new Date().getTime() / 1000;
requestModel.setTimestamp(time);
requestModel.setSign(PddSignTool.generateSign(requestModel, CLIENT_SECRET));
log.info("requestModel:{}", JSON.toJSONString(requestModel));
// String resp = PddHttpTool.postRequest(requestModel);
String resp = PddHttpTool.sendJsonPostGD(requestModel);
log.info("resp = {}", resp);
JSONObject respObj = JSON.parseObject(resp);
int count = respObj.getInteger("total_count");
JSONArray list = respObj.getJSONArray("logistics_ticket_list");
if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
JSONObject ticket = list.getJSONObject(i);
GDTicketRepsonse gdTicketRepsonse = ticket.toJavaObject(GDTicketRepsonse.class);
// todo 保存数据
}
}
return respObj;
}
public JSONObject replyTicket() {
Long ticketId = 1L;
String waybill_no = "waybill_no";
GDTicketReplyRequest replyRequest = new GDTicketReplyRequest();
replyRequest.setTicket_id(ticketId);
replyRequest.setWaybill_no(waybill_no);
replyRequest.setHandle_result("无");
replyRequest.setSign_state(1);
replyRequest.setCompensate_state(1);
replyRequest.setDuty(0);
replyRequest.setExpress_dealer("XXX");
replyRequest.setExpress_dealer_contact("18599877823");
replyRequest.setReply_type(1);
JYBaseRequestModel requestModel = new JYBaseRequestModel();
requestModel.setRequest(JSON.toJSONString(replyRequest));
requestModel.setRequest_id("" + new Date().getTime());
requestModel.setType("pdd.logistics.ticket.get");
requestModel.setTarget_client_id(CLIENT_ID);
requestModel.setClient_id(CLIENT_ID);
long time = new Date().getTime() / 1000;
requestModel.setTimestamp(time);
requestModel.setSign(PddSignTool.generateSign(requestModel, CLIENT_SECRET));
log.info("requestModel:{}", JSON.toJSONString(requestModel));
// String resp = PddHttpTool.postRequest(requestModel);
String resp = PddHttpTool.sendJsonPostGD(requestModel);
log.info("resp = {}", resp);
JSONObject respObj = JSON.parseObject(resp);
JSONObject respObject = respObj.getJSONObject("logistics_ticket_notify_response");
GDTicketReplyRepsonse replyRepsonse = respObject.toJavaObject(GDTicketReplyRepsonse.class);
log.info("replyRepsonse is_success:{}", replyRepsonse.getIs_success());
return respObj;
}
@Resource
GDTicketImpl gdTicketImpl;
......@@ -154,13 +81,13 @@ public class PddGDController {
/*上传图片*/
@PostMapping("/uploadImage")
public JSONObject uploadImage(HttpServletRequest request, @RequestBody GDUploadRequest gdUploadRequest) throws IOException {
gdUploadRequest.setClient_id(CLIENT_ID);
gdUploadRequest.setClient_id(PddAPIConfig.CLIENT_ID);
gdUploadRequest.setType("pdd.logistics.ticket.image.upload");
long time = new Date().getTime() / 1000;
gdUploadRequest.setTimestamp(time);
gdUploadRequest.setImage(new ImageUtils().downloadCompressToBase64(gdUploadRequest.getImage()));
gdUploadRequest.setSign(PddSignTool.generateSign(gdUploadRequest, CLIENT_SECRET));
gdUploadRequest.setSign(PddSignTool.generateSign(gdUploadRequest, PddAPIConfig.CLIENT_SECRET));
String resp = PddHttpTool.sendJsonPostGD(gdUploadRequest);
JSONObject jsonObject = JSONObject.parseObject(resp);
......@@ -196,12 +123,12 @@ public class PddGDController {
String attach_path_list = JSONArray.toJSONString(replyRequest.getAttach_path_list());
replyRequest.setAttach_path_list(attach_path_list);
replyRequest.setClient_id(CLIENT_ID);
replyRequest.setClient_id(PddAPIConfig.CLIENT_ID);
replyRequest.setType("pdd.logistics.ticket.notify");
long time = new Date().getTime() / 1000;
replyRequest.setTimestamp(time);
replyRequest.setSign(PddSignTool.generateSign(replyRequest, CLIENT_SECRET));
replyRequest.setSign(PddSignTool.generateSign(replyRequest, PddAPIConfig.CLIENT_SECRET));
String resp = PddHttpTool.sendJsonPostGD(replyRequest);
log.info("resp = {}", resp);
......
......@@ -7,6 +7,7 @@ import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.ta.pddserver.config.PddAPIConfig;
import org.ta.pddserver.entity.*;
import org.ta.pddserver.model.api.response.CollectOrderResponse;
import org.ta.pddserver.model.enums.IdentityErrorType;
......@@ -102,7 +103,7 @@ public class PddOpenController {
log.info("Request:\n{}", body);
try {
if (!PddSignTool.verifySignFromBody(body, "281d79ad5117d20a51efb9e7b0d5f7ee336399b0", pdd_sign)) {
if (!PddSignTool.verifySignFromBody(body, "PddAPIConfig.CLIENT_SECRET", pdd_sign)) {
log.error("验签失败");
}
switch (requestParam.getType()) {
......@@ -294,7 +295,7 @@ public class PddOpenController {
// requestParam.getTarget_client_id(), requestParam.getClient_id(), requestParam.getSign(), requestParam.getTimestamp(), requestParam.getType()
// );
if (!PddSignTool.verifyLGSign(requestParam, "4be28e29e58012b72b080431a8d47ec2ba7cab4d")) {
if (!PddSignTool.verifyLGSign(requestParam, PddAPIConfig.CLIENT_SECRET)) {
log.error("验签失败");
}
String body = getStringFromRequest(request);
......
......@@ -8,6 +8,7 @@ import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import org.ta.pddserver.config.PddAPIConfig;
import org.ta.pddserver.model.pddjy.request.JYBaseRequestModel;
import org.ta.pddserver.model.pddlg.request.LGBaseModel;
......@@ -17,10 +18,7 @@ import java.util.Map;
@Slf4j
public class PddHttpTool {
// private static final String URL = "https://opengw-api.hutaojie.com/ark/router";
// private static final String URL_GD = "https://opengw-api.hutaojie.com/api/router";
private static final String URL = "https://ark-api.pinduoduo.com/ark/router";
private static final String URL_GD = "https://gw-api.pinduoduo.com/api/router";
public static String postRequest(JYBaseRequestModel request) {
......@@ -34,7 +32,7 @@ public class PddHttpTool {
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
// 3. 发送 POST 请求,获取响应
ResponseEntity<String> response = restTemplate.postForEntity(URL, requestEntity, String.class);
ResponseEntity<String> response = restTemplate.postForEntity(PddAPIConfig.URL, requestEntity, String.class);
// 4. 返回响应体(根据实际需求处理响应状态码、响应头)
return response.getBody();
......@@ -50,7 +48,7 @@ public class PddHttpTool {
// 2. 封装请求实体(参数 + 头信息)
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> resp = restTemplate.postForEntity(URL, requestEntity, String.class);
ResponseEntity<String> resp = restTemplate.postForEntity(PddAPIConfig.URL, requestEntity, String.class);
log.info("RESP:{}", resp.getBody());
return resp.getBody();
}
......@@ -65,7 +63,7 @@ public class PddHttpTool {
// 2. 封装请求实体(参数 + 头信息)
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> resp = restTemplate.postForEntity(URL_GD, requestEntity, String.class);
ResponseEntity<String> resp = restTemplate.postForEntity(PddAPIConfig.URL_GD, requestEntity, String.class);
log.info("RESP:{}", resp.getBody());
return resp.getBody();
}
......
......@@ -3,6 +3,7 @@ package org.ta.pddserver;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.ta.pddserver.config.PddAPIConfig;
import org.ta.pddserver.model.pddlg.common.TraceObject;
import org.ta.pddserver.model.pddlg.request.PddLogisticsCoTrackNotifyRequest;
import org.ta.pddserver.model.pddlg.request.PddLogisticsSecondaryCityGetRequest;
......@@ -15,20 +16,17 @@ import java.util.ArrayList;
@Slf4j
public class LGTest2 {
private static final String CLIENT_ID = "8f5f3f9c92e847b2894fc9c0afce3d61";
private static final String CLIENT_SECRET = "281d79ad5117d20a51efb9e7b0d5f7ee336399b0";
@Test
public void test1() {
PddLogisticsCoTrackNotifyRequest request = new PddLogisticsCoTrackNotifyRequest();
request.setClient_id(CLIENT_ID);
request.setShip_id("567");
request.setTarget_client_id(CLIENT_ID);
request.setClient_id(PddAPIConfig.CLIENT_ID);
request.setShip_id(PddAPIConfig.SHIP_ID);
request.setTarget_client_id(PddAPIConfig.CLIENT_ID);
request.setTimestamp(System.currentTimeMillis() / 1000);
PddLogisticsCoTrackNotifyRequest.DataObject dataObject = getDataObject();
request.setDataObject(dataObject);
request.encodeData();
request.setSign(PddSignTool.generateSign(request, CLIENT_SECRET));
request.setSign(PddSignTool.generateSign(request, PddAPIConfig.CLIENT_SECRET));
log.info("requestModel:{}", JSON.toJSONString(request));
String resp = PddHttpTool.sendJsonPost(request);
log.info("resp = {}", resp);
......@@ -39,11 +37,11 @@ public class LGTest2 {
@Test
public void test2() {
PddLogisticsSecondaryCityGetRequest request = new PddLogisticsSecondaryCityGetRequest();
request.setClient_id(CLIENT_ID);
request.setShip_id("567");
request.setTarget_client_id(CLIENT_ID);
request.setClient_id(PddAPIConfig.CLIENT_ID);
request.setShip_id(PddAPIConfig.SHIP_ID);
request.setTarget_client_id(PddAPIConfig.CLIENT_ID);
request.setTimestamp(System.currentTimeMillis() / 1000);
request.setSign(PddSignTool.generateSign(request, CLIENT_SECRET));
request.setSign(PddSignTool.generateSign(request, PddAPIConfig.CLIENT_SECRET));
log.info("requestModel:{}", JSON.toJSONString(request));
String resp = PddHttpTool.sendJsonPost(request);
log.info("resp = {}", resp);
......
{
"logistics_ticket_image_upload_response": {
"image_url": "https://img-test.pddpic.com/open-gw/2066d9194a/de1e9e6a5adaee930456e4e521a6dcb2.jpg",
"request_id": "17617922025930615"
}
}
"client_id": "8f5f3f9c92e847b2894fc9c0afce3d61",
"request": "{\"executeTime\":\"2025-11-08 14:05:00\",\"logisticsOrderCode\":\"PC25110715653142530023271\",\"packageInfo\":{\"actualWeight\":1000,\"expressCode\":\"SF\",\"goodsType\":\"NORMAL\",\"height\":30,\"length\":30,\"mailNo\":\"SF3270717746148\",\"weight\":1000,\"width\":30},\"packageQuantity\":0,\"providerCode\":\"HAIJI_KR\",\"result\":{\"code\":0},\"status\":\"INBOUND\",\"timeZone\":\"UTC+8\"}",
"request_id": "1762581900446",
"sign": "07404C9CEE97F481CE968AA9299509C7",
"target_client_id": "8f5f3f9c92e847b2894fc9c0afce3d61",
"timestamp": 1762581900,
"type": "pdd.service.conso.inbound"
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment