|
@@ -0,0 +1,524 @@
|
|
|
+package com.iamberry.wechat.handles.polyapi;
|
|
|
+
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.iamberry.app.tool.des.MD5;
|
|
|
+import com.iamberry.wechat.core.entity.coupon.CouponItem;
|
|
|
+import com.iamberry.wechat.core.entity.coupon.CouponType;
|
|
|
+import com.iamberry.wechat.core.entity.order.Order;
|
|
|
+import com.iamberry.wechat.core.entity.order.OrderItem;
|
|
|
+import com.iamberry.wechat.face.cart.CartService;
|
|
|
+import com.iamberry.wechat.face.order.AdminOrderService;
|
|
|
+import com.iamberry.wechat.filters.WechatFilter;
|
|
|
+import com.iamberry.wechat.tools.NameUtils;
|
|
|
+import com.iamberry.wechat.tools.SendMessageUtil;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Controller;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+
|
|
|
+ * 对接菠萝派接口,用与回调订单
|
|
|
+ */
|
|
|
+@Controller
|
|
|
+public class ExternalDockPolyApi {
|
|
|
+
|
|
|
+ private static Logger logger = LoggerFactory.getLogger(ExternalDockPolyApi.class);
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private AdminOrderService adminOrderService;
|
|
|
+
|
|
|
+
|
|
|
+ * DES对称加密
|
|
|
+ */
|
|
|
+ private static MD5 md5 = new MD5();
|
|
|
+
|
|
|
+
|
|
|
+ private final static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+
|
|
|
+
|
|
|
+ * 请求示例:
|
|
|
+ * appkey=438b2f6ff103422a98a9349507293bb2
|
|
|
+ * &method=Differ.JH.Business.GetOrder&token=95a8d1a00b6dfbadc3da07805131931e
|
|
|
+ * &bizcontent={"OrderStatus":"JH_01","PlatOrderNo":"20182270207","StartTime":"2016-07-26 10:59:10","EndTime":"2016-08-02 10:59:10","TimeType":"JH_02","PageIndex":"1","PageSize":"20"}
|
|
|
+ * &token=9415c33b04d24c7dae320b0185f42fb0
|
|
|
+ * &sign=347e07a557e2720256e64e1e828eff1b
|
|
|
+ */
|
|
|
+
|
|
|
+
|
|
|
+ * 请求响应
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ @ResponseBody
|
|
|
+ @RequestMapping("/select_order")
|
|
|
+ public Map<String,Object> getOrder(HttpServletRequest request) throws Exception {
|
|
|
+
|
|
|
+ Map<String,Object> map = new HashMap<String,Object>();
|
|
|
+ Map<String,Object> requstMap = new HashMap<String,Object>();
|
|
|
+ try{
|
|
|
+ requstMap = verification(request);
|
|
|
+ }catch (Exception e){
|
|
|
+ map.put("code","40000");
|
|
|
+ map.put("message","请求未能识别");
|
|
|
+ map.put("submessage","参数不对");
|
|
|
+ map.put("numtotalorder","0");
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ String method = request.getParameter("method");
|
|
|
+ switch (method){
|
|
|
+ case "Differ.JH.Business.GetOrder" :
|
|
|
+ map = getSalesOrder(requstMap);
|
|
|
+ break;
|
|
|
+ case "Differ.JH.Business.CheckRefundStatus" :
|
|
|
+
|
|
|
+ break;
|
|
|
+ case "Differ.JH.Business.Send" :
|
|
|
+ break;
|
|
|
+ case "Differ.JH.Business.UpdateSellerMemo" :
|
|
|
+ break;
|
|
|
+ case "Differ.JH.Business.DownloadProduct" :
|
|
|
+ break;
|
|
|
+ case "Differ.JH.Business.SyncStock" :
|
|
|
+ break;
|
|
|
+ case "Differ.JH.Business.GetRefund" :
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ map.put("code","40000");
|
|
|
+ map.put("message","请求未能识别");
|
|
|
+ map.put("submessage","参数不对");
|
|
|
+ map.put("numtotalorder","");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 订单查询(订单下载)
|
|
|
+ * @param requstMap
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Map<String,Object> getSalesOrder(Map<String,Object> requstMap){
|
|
|
+ Map<String,Object> map = new HashMap<String,Object>();
|
|
|
+
|
|
|
+
|
|
|
+ String orderStatus = (String) requstMap.get("OrderStatus");
|
|
|
+ String platOrderNo = (String) requstMap.get("PlatOrderNo");
|
|
|
+ String startTime = (String) requstMap.get("StartTime");
|
|
|
+ String endTime = (String) requstMap.get("EndTime");
|
|
|
+ String timeType = (String) requstMap.get("TimeType");
|
|
|
+ Integer pageIndex = Integer.valueOf(requstMap.get("PageIndex").toString());
|
|
|
+ Integer pageSize = Integer.valueOf(requstMap.get("PageSize").toString());
|
|
|
+
|
|
|
+ Order order = new Order();
|
|
|
+ if(platOrderNo != null && !"".equals(platOrderNo)){
|
|
|
+ order.setSalesOrderid(platOrderNo);
|
|
|
+ }
|
|
|
+
|
|
|
+ this.setStatus(order,orderStatus);
|
|
|
+
|
|
|
+ order.getPage().setPageSize(pageSize);
|
|
|
+ order.getPage().setPageNumber(pageIndex);
|
|
|
+ order.getPage().initRecordBegin();
|
|
|
+ try {
|
|
|
+ order.setBeginDate(sdf.parse(startTime));
|
|
|
+ order.setEndDate(sdf.parse(endTime));
|
|
|
+ }catch (ParseException e){
|
|
|
+ map.put("code","40000");
|
|
|
+ map.put("message","时间格式不对");
|
|
|
+ map.put("submessage","时间格式不对");
|
|
|
+ map.put("numtotalorder","");
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Order> orderList = adminOrderService.selectShopOrderByPola(order);
|
|
|
+ List<Map<String,Object>> orders = new ArrayList<>();
|
|
|
+ map.put("code","10000");
|
|
|
+ map.put("message","SUCCESS");
|
|
|
+ for(Order or : orderList){
|
|
|
+ List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderIdToPola(or.getSalesOrderid());
|
|
|
+ or.setOrderItemList(orderItemList);
|
|
|
+ orders.add(getOrderMap(or));
|
|
|
+ }
|
|
|
+ map.put("orders",orders);
|
|
|
+ map.put("numtotalorder",orderList.size());
|
|
|
+ logger.info("------返回订单个数:" + orderList.size() + "---------");
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 订单退款状态查询
|
|
|
+ * @param requstMap
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Map<String,Object> getOrderRefundStatus(Map<String,Object> requstMap){
|
|
|
+ Map<String,Object> map = new HashMap<String,Object>();
|
|
|
+ String orderId = (String) requstMap.get("OrderID");
|
|
|
+
|
|
|
+ Order order = new Order();
|
|
|
+ List<Order> orderList = new ArrayList<>();
|
|
|
+ if(orderId != null && !"".equals(orderId)){
|
|
|
+ order.setSalesOrderid(orderId);
|
|
|
+ orderList = adminOrderService.selectShopOrderByPola(order);
|
|
|
+ if(orderList != null && orderList.size() > 0){
|
|
|
+ order = orderList.get(0);
|
|
|
+ }else{
|
|
|
+ map.put("code","40000");
|
|
|
+ map.put("message","未查询到该订单");
|
|
|
+ map.put("submessage","未查询到该订单");
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ map.put("code","40000");
|
|
|
+ map.put("message","订单号不能为空");
|
|
|
+ map.put("submessage","订单号不能为空");
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+ Map<String,Object> orderMap = new HashMap<String,Object>();
|
|
|
+
|
|
|
+
|
|
|
+ orderMap.put("refundStatus ","");
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 拼接map
|
|
|
+ * @param order
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Map<String,Object> getOrderMap(Order order){
|
|
|
+ String[] addressInfo = order.getSalesAddressInfo().split("-");
|
|
|
+ String town = "";
|
|
|
+
|
|
|
+ if(addressInfo.length > 3){
|
|
|
+ Integer qu = order.getSalesAddressInfo().indexOf(addressInfo[3]);
|
|
|
+ town = order.getSalesAddressInfo().substring(qu,order.getSalesAddressInfo().length());
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String,Object> orderMap = new HashMap<String,Object>();
|
|
|
+ orderMap.put("PlatOrderNo",order.getSalesOrderid());
|
|
|
+ orderMap.put("tradeStatus",this.getStatus(order.getSalesStatus()));
|
|
|
+ orderMap.put("tradeStatusdescription",this.getDescription(order.getSalesStatus()));
|
|
|
+ orderMap.put("tradetime",sdf.format(order.getSalesCreateDate()));
|
|
|
+ orderMap.put("payorderno","");
|
|
|
+ orderMap.put("country","CN");
|
|
|
+ orderMap.put("province",addressInfo[0]);
|
|
|
+ orderMap.put("city",addressInfo[1]);
|
|
|
+ orderMap.put("area",addressInfo[2]);
|
|
|
+ orderMap.put("town",town);
|
|
|
+ orderMap.put("address",order.getSalesAddressInfo());
|
|
|
+ orderMap.put("zip",order.getSalesAddressPostnum());
|
|
|
+ orderMap.put("phone",order.getSalesAddressTel());
|
|
|
+ orderMap.put("mobile","");
|
|
|
+ orderMap.put("email","");
|
|
|
+ orderMap.put("customerremark",order.getSalesUserRemark());
|
|
|
+ orderMap.put("sellerremark","");
|
|
|
+ orderMap.put("postfee",0);
|
|
|
+ orderMap.put("goodsfee",0);
|
|
|
+ double yetAmount = order.getSalesYetAmount().intValue() / 100;
|
|
|
+ double amount = order.getSalesAmount().intValue() / 100;
|
|
|
+ orderMap.put("totalmoney",yetAmount);
|
|
|
+ orderMap.put("favourablemoney",amount-yetAmount);
|
|
|
+ orderMap.put("commissionvalue",0);
|
|
|
+ orderMap.put("taxamount","");
|
|
|
+ orderMap.put("tariffamount","");
|
|
|
+ orderMap.put("addedvalueamount","");
|
|
|
+ orderMap.put("consumptiondutyamount","");
|
|
|
+ orderMap.put("sendstyle",this.getSendstyle(order.getSalesPostFirm()));
|
|
|
+ orderMap.put("qq","");
|
|
|
+
|
|
|
+ if(order.getSalesTransactionDate() != null){
|
|
|
+ orderMap.put("paytime",sdf.format(order.getSalesTransactionDate()));
|
|
|
+ }
|
|
|
+ orderMap.put("invoicetitle","");
|
|
|
+ orderMap.put("codservicefee","");
|
|
|
+ orderMap.put("sellerflag","");
|
|
|
+ orderMap.put("couponprice","");
|
|
|
+ orderMap.put("cardtype","");
|
|
|
+ orderMap.put("idcard","");
|
|
|
+ orderMap.put("idcardtruename","");
|
|
|
+ orderMap.put("receivername","");
|
|
|
+ orderMap.put("nick",order.getUserNickname());
|
|
|
+ orderMap.put("whsecode","");
|
|
|
+ orderMap.put("IsHwgFlag","");
|
|
|
+ orderMap.put("ShouldPayType","多种结算");
|
|
|
+ List<Map<String,Object>> goodinfos = new ArrayList<>();
|
|
|
+ for (OrderItem orderItem: order.getOrderItemList()){
|
|
|
+ Map<String,Object> orderItemMap = new HashMap<String,Object>();
|
|
|
+ orderItemMap.put("ProductId",orderItem.getProduectRemark());
|
|
|
+ orderItemMap.put("suborderno",orderItem.getItemId());
|
|
|
+ orderItemMap.put("tradegoodsno",orderItem.getProduectRemark());
|
|
|
+ orderItemMap.put("tradegoodsname",orderItem.getItemProductName());
|
|
|
+ orderItemMap.put("tradegoodsspec",orderItem.getProductColor());
|
|
|
+ orderItemMap.put("goodscount",orderItem.getItemNum());
|
|
|
+ double money = orderItem.getItemProductDiscount().intValue() / 100;
|
|
|
+ orderItemMap.put("price",money);
|
|
|
+ orderItemMap.put("discountmoney",0);
|
|
|
+ orderItemMap.put("taxamount",0);
|
|
|
+ orderItemMap.put("refundStatus",this.getRefundStatus(order.getSalesStatus()));
|
|
|
+ orderItemMap.put("Status",this.getOrderItemStatus(order.getSalesStatus()));
|
|
|
+ orderItemMap.put("remark","");
|
|
|
+ goodinfos.add(orderItemMap);
|
|
|
+ }
|
|
|
+ orderMap.put("goodinfos",goodinfos);
|
|
|
+ return orderMap;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ * 设置查询的订单状态
|
|
|
+ *
|
|
|
+ * 本系统状态 0:取消订单 1:待支付 2:已支付、待发货 3:退款申请中 4:已退款 5:已发货
|
|
|
+ * 6:申请退货中 7:退货中 8:订单退货,订单关闭 9:换货中 10:换货完成 11申请换货中 12订单完成
|
|
|
+ *
|
|
|
+ * 订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)
|
|
|
+ *
|
|
|
+ * @param order
|
|
|
+ * @param status
|
|
|
+ */
|
|
|
+ private void setStatus(Order order,String status){
|
|
|
+ switch (status){
|
|
|
+ case "JH_01":
|
|
|
+ order.setSalesStatus(1);
|
|
|
+ break;
|
|
|
+ case "JH_02":
|
|
|
+ order.setSalesStatus(2);
|
|
|
+ break;
|
|
|
+ case "JH_03":
|
|
|
+ order.setSalesStatus(12);
|
|
|
+ break;
|
|
|
+ case "JH_04":
|
|
|
+ order.setSalesStatus(12);
|
|
|
+ break;
|
|
|
+ case "JH_05":
|
|
|
+ order.setSalesStatus(8);
|
|
|
+ break;
|
|
|
+ case "JH_99":
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 返回订单状态
|
|
|
+ *
|
|
|
+ * 状态 0:取消订单 1:待支付 2:已支付、待发货 3:退款申请中 4:已退款 5:已发货
|
|
|
+ * 6:申请退货中 7:退货中 8:订单退货,订单关闭 9:换货中 10:换货完成 11申请换货中 12订单完成
|
|
|
+ *
|
|
|
+ * 订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)
|
|
|
+ *
|
|
|
+ * @param status
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private String getStatus(int status){
|
|
|
+ switch (status){
|
|
|
+ case 0:
|
|
|
+ return "JH_05";
|
|
|
+ case 1:
|
|
|
+ return "JH_01";
|
|
|
+ case 2:
|
|
|
+ return "JH_02";
|
|
|
+ case 3:
|
|
|
+ return "JH_03";
|
|
|
+ case 4:
|
|
|
+ return "JH_05";
|
|
|
+ case 5:
|
|
|
+ return "JH_03";
|
|
|
+ case 6:
|
|
|
+ return "JH_03";
|
|
|
+ case 7:
|
|
|
+ return "JH_03";
|
|
|
+ case 8:
|
|
|
+ return "JH_05";
|
|
|
+ case 9:
|
|
|
+ return "JH_03";
|
|
|
+ case 10:
|
|
|
+ return "JH_05";
|
|
|
+ case 11:
|
|
|
+ return "JH_03";
|
|
|
+ case 12:
|
|
|
+ return "JH_04";
|
|
|
+ }
|
|
|
+ return "JH_05";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 返回子订单退款状态(可选值)
|
|
|
+ *
|
|
|
+ * 本系统状态 0:取消订单 1:待支付 2:已支付、待发货 3:退款申请中 4:已退款 5:已发货
|
|
|
+ * 6:申请退货中 7:退货中 8:订单退货,订单关闭 9:换货中 10:换货完成 11申请换货中 12订单完成
|
|
|
+ *
|
|
|
+ * 退款状态(没有退款=JH_07,买家已经申请退款等待卖家同意=JH_01,卖家已经同意退款等待买家退货=JH_02,买家已经退货等待卖家确认收货=JH_03,
|
|
|
+ * 卖家拒绝退款=JH_04,退款关闭=JH_05,退款成功=JH_06,其他=JH_99)
|
|
|
+ *
|
|
|
+ * @param status
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private String getRefundStatus(int status){
|
|
|
+ switch (status){
|
|
|
+ case 0:
|
|
|
+ return "";
|
|
|
+ case 1:
|
|
|
+ return "";
|
|
|
+ case 2:
|
|
|
+ return "";
|
|
|
+ case 3:
|
|
|
+ return "JH_01";
|
|
|
+ case 4:
|
|
|
+ return "JH_06";
|
|
|
+ case 5:
|
|
|
+ return "";
|
|
|
+ case 6:
|
|
|
+ return "";
|
|
|
+ case 7:
|
|
|
+ return "JH_02";
|
|
|
+ case 8:
|
|
|
+ return "JH_06";
|
|
|
+ case 9:
|
|
|
+ return "";
|
|
|
+ case 10:
|
|
|
+ return "";
|
|
|
+ case 11:
|
|
|
+ return "";
|
|
|
+ case 12:
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 返回子订单状态(可选值)
|
|
|
+ *
|
|
|
+ * 本系统状态 0:取消订单 1:待支付 2:已支付、待发货 3:退款申请中 4:已退款 5:已发货
|
|
|
+ * 6:申请退货中 7:退货中 8:订单退货,订单关闭 9:换货中 10:换货完成 11申请换货中 12订单完成
|
|
|
+ *
|
|
|
+ * 订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)
|
|
|
+ *
|
|
|
+ * @param status
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private String getOrderItemStatus(int status){
|
|
|
+ switch (status){
|
|
|
+ case 0:
|
|
|
+ return "";
|
|
|
+ case 1:
|
|
|
+ return "JH_01";
|
|
|
+ case 2:
|
|
|
+ return "JH_02";
|
|
|
+ case 3:
|
|
|
+ return "";
|
|
|
+ case 4:
|
|
|
+ return "JH_05";
|
|
|
+ case 5:
|
|
|
+ return "";
|
|
|
+ case 6:
|
|
|
+ return "";
|
|
|
+ case 7:
|
|
|
+ return "";
|
|
|
+ case 8:
|
|
|
+ return "JH_05";
|
|
|
+ case 9:
|
|
|
+ return "";
|
|
|
+ case 10:
|
|
|
+ return "";
|
|
|
+ case 11:
|
|
|
+ return "";
|
|
|
+ case 12:
|
|
|
+ return "JH_04";
|
|
|
+ }
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 获取订单交易说明
|
|
|
+ * 状态 0:取消订单 1:待支付 2:已支付、待发货 3:退款申请中 4:已退款 5:已发货
|
|
|
+ * 6:申请退货中 7:退货中 8:订单退货,订单关闭 9:换货中 10:换货完成 11申请换货中 12订单完成
|
|
|
+ * @param status
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private String getDescription(int status){
|
|
|
+ switch (status){
|
|
|
+ case 0:
|
|
|
+ return "取消订单";
|
|
|
+ case 1:
|
|
|
+ return "等待买家付款";
|
|
|
+ case 2:
|
|
|
+ return "等待发货";
|
|
|
+ case 3:
|
|
|
+ return "退款申请中";
|
|
|
+ case 4:
|
|
|
+ return "已退款";
|
|
|
+ case 5:
|
|
|
+ return "已发货";
|
|
|
+ case 6:
|
|
|
+ return "申请退货中";
|
|
|
+ case 7:
|
|
|
+ return "退货中";
|
|
|
+ case 8:
|
|
|
+ return "订单已退货";
|
|
|
+ case 9:
|
|
|
+ return "换货中";
|
|
|
+ case 10:
|
|
|
+ return "换货完成";
|
|
|
+ case 11:
|
|
|
+ return "申请换货中";
|
|
|
+ case 12:
|
|
|
+ return "订单完成";
|
|
|
+ }
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 返回配送方式
|
|
|
+ * @param sendsStyle
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private String getSendstyle(String sendsStyle){
|
|
|
+ return SendMessageUtil.hashmap.get(sendsStyle);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ * 校验请求和返回参数
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Map<String,Object> verification(HttpServletRequest request) throws Exception {
|
|
|
+
|
|
|
+ String bizcontent = request.getParameter("bizcontent");
|
|
|
+ String appkey = request.getParameter("appkey");
|
|
|
+ String method = request.getParameter("method");
|
|
|
+ String token = request.getParameter("token");
|
|
|
+ String sign = request.getParameter("sign");
|
|
|
+
|
|
|
+ String polyapiAppKey = NameUtils.getConfig("polyapi_appKey");
|
|
|
+ String polyapiAppSecret = NameUtils.getConfig("polyapi_AppSecret");
|
|
|
+ if(appkey != null && appkey.equals(polyapiAppKey)){
|
|
|
+
|
|
|
+ * 签名验证:
|
|
|
+ * 将除Sign参数外的所有“参数 参数值”进行字典排序生成串,而后将AppSecret加到该串的首尾,将得到的字符串转小写,进行MD5加密,此时的生成的串即为Sign。
|
|
|
+ */
|
|
|
+ String signatureText = polyapiAppSecret + "appkey" + appkey + "bizcontent" + bizcontent + "method" + method + "token" + token + polyapiAppSecret;
|
|
|
+ signatureText = signatureText.toLowerCase();
|
|
|
+ String signaTrue = md5.GetMD5Code(signatureText);
|
|
|
+ if(sign == null || !sign.equals(signaTrue)){
|
|
|
+ logger.info("-----------签名验证失败---------------,签名参数:"+signatureText);
|
|
|
+ throw new Exception("签名验证失败");
|
|
|
+ }
|
|
|
+ logger.info("-----------验证签名通过---------------");
|
|
|
+ }
|
|
|
+ Map requstMap = (Map) JSON.parse(bizcontent);
|
|
|
+ return requstMap;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|