Merge branch 'master' into cc_20250520_ghostwriting
# Conflicts: # coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java
This commit is contained in:
@@ -258,6 +258,7 @@ public enum ErrorCodeEnum {
|
||||
BANK_EXIST(151007,"当前银行已存在,请直接选择!",null),
|
||||
EXPORT_LIMIT_5000(151008,"导出数据不能超过5000条,请增加筛选条件,减少导出数量",null),
|
||||
REGION_INTERSECTION_IS_NULL(151011,"所选所属大区/分公司,不在所选集团下",null),
|
||||
CHECK_PAYER_ERROR(151012,"缴费人必须是签约人,请重新填写!",null),
|
||||
;
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.cool.store.enums;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/5/13 9:57
|
||||
* @Version 1.0
|
||||
*/
|
||||
public enum ExtendFieldTypeEnum {
|
||||
|
||||
TEST_STORE_MANAGER_MOBILE("extend_field_1746670633436","店长手机号"),
|
||||
TEST_SIGNATORY_NAME_1("extend_field_1746670645231","签约人1名称"),
|
||||
TEST_SIGNATORY_MOBILE_1("extend_field_1746670652805","签约人2手机号"),
|
||||
TEST_SIGNATORY_NAME_2("extend_field_1746670671614","签约人2名称"),
|
||||
TEST_SIGNATORY_MOBILE_2("extend_field_1746670686307","签约人2手机号"),
|
||||
TEST_ORDER_NAME("extend_field_1747103227333","订单小程序名称"),
|
||||
ONLINE_STORE_MANAGER_MOBILE("extend_field_1746598536903","店长手机号"),
|
||||
ONLINE_SIGNATORY_NAME_1("extend_field_1746598562255","签约人1名称"),
|
||||
ONLINE_SIGNATORY_MOBILE_1("extend_field_1746598570479","签约人2手机号"),
|
||||
ONLINE_SIGNATORY_NAME_2("extend_field_1746598584139","签约人2名称"),
|
||||
ONLINE_SIGNATORY_MOBILE_2("extend_field_1746598594140","签约人2手机号"),
|
||||
ONLINE_ORDER_NAME("extend_field_1746599049206","订单小程序名称"),;
|
||||
|
||||
private String key;
|
||||
|
||||
private String msg;
|
||||
|
||||
ExtendFieldTypeEnum(String key,String msg){
|
||||
this.key = key;
|
||||
this.msg = msg;
|
||||
}
|
||||
|
||||
public static Map<String, ExtendFieldTypeEnum> configMap(){
|
||||
return Arrays.stream(ExtendFieldTypeEnum.values())
|
||||
.collect(Collectors.toMap(
|
||||
ExtendFieldTypeEnum::getKey,
|
||||
e -> e
|
||||
));
|
||||
}
|
||||
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public void setKey(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public String getMsg() {
|
||||
return msg;
|
||||
}
|
||||
|
||||
public void setMsg(String msg) {
|
||||
this.msg = msg;
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,17 @@
|
||||
package com.cool.store.utils;
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.gson.JsonObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import okhttp3.internal.http.HttpMethod;
|
||||
|
||||
import javax.crypto.Mac;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.*;
|
||||
import java.security.spec.InvalidKeySpecException;
|
||||
import java.security.spec.PKCS8EncodedKeySpec;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
@@ -18,6 +21,9 @@ import java.util.*;
|
||||
*/
|
||||
@Slf4j
|
||||
public class SignatureUtils {
|
||||
|
||||
|
||||
private static final String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCML5dEU4e6BAopiSjxeA2ZNs3VeIXoWe8HpHHGhZP1xE+4vbPv3L4Z7XexeoPMiBcluyGKSRl5jwuvYvcF9A2nGPhxVugYOxpC+TuGVu3TE7a2E/+1iMFfdNCYgqMxfnTe2Svo+X5anc5AcpKar2+AYcdZ4emMQLwrJkEB9endpWPruqC7dCUmAwxByMi525fdipFEDsAIf9ozkBuqwyQa0/RwQ+fyOT87pJ58z7gLXcZxW8YaXNAS5hmdA6/0GqZQQyDTXxZ/nDPpeIIk8PC8VNrgllCxwDtyDMWfUg8+yTlHAjsCX7MGRM3Gd3QcfqrvlIK/Lvn/9qAWcY3KOU1JAgMBAAECggEADwvnokmN6qEW3yTt7FcMrJqFhslgJBONFKapoJuDSVCIFwXji5YHoHxMydOi1F/yDhZzD+bvMU0xfaJzbaPnmD0Vo4KmuD0VwUUDhtSLQ8ncpVfprRgv2zlMT2ZMMlqGnEm2jRPEZGEGO4QgqLI2V1MHZOYa3XcwSzhYp2d38dZvPxWnF9mDt26BbM5Eb3D4oAb+J8rOVsbXEbVTdVTsJmhLOUEK84r2fUCLqHALAOc/za28ToupYD/QRWT6K5nWKDclDWn2tnz3MQJrEYMVvGDVCryqltljd2XB4MXnBZxEYDZyonxxI5M1Avb9mHUyy2wMYSeTUocSnVjgCZPnFQKBgQC34xs/Q0lDTpRdS0a8odzey4jew/nfo8TqzAa2/vomRHkOAoXyqci71tCos5836hxprkhvj1KMauB/rFzCZYfr5a2UMM70p/vuYv5JhTMDStTVx9OPcydZDeK77OY39qPhkW4Tm10BBUodzVV0YhxbCfRmSRSF2FuZCSLdd5bmpQKBgQDDKTUYuA+s/cFt0QsKkRRBm/ONQnETCCXo87NP9RzspcydkULnmuRMLWP4zqHN5TccL0MyI7hyHZ7AwU3qoi4JXFo8k5rRcSdwaBy99B+ZKF159l7chVHE8p4tYSmxwoIOIbpfXA2nfp+zaknt6lb8DSeCw8lewsEZUwmU++bu1QKBgB5M5t16yeS0WxAwajyE828m3KvQYSkvxC/oZKbcxv1tRQFA+y9sOK5zDDjwOCkvg3UKidcQJ8sJhWqkTTifIFGHrB2CGWgJEiNK3pngv/In74A2iC7YC8DJ3/WVaK4KDyEJJLlIXX/gjkDw58bgr8l0j3gXTLFtYFKMRdl2bkAdAoGAHwhNZhnWfEZ5XHHyFIMPOoOGzb5z5nfUN1+Q8rTiHYsbpy5y+gr6JFbPX7/ToL7C7ZtiTvW5HYQyOypBrn6NXXWu75T0+DrK76fOcjIAWEU/3+XaHayhXPTLTCH4FEj+jyqzzPgBP9H1qPzMtqUdocShtLxXJ9dGBzXZ/zOy++UCgYAHgaZC5Jz8+p5Ka7YtPZXpDXt1gUh2bmzIcAOBlizE+ElWZN/skybumos3lP8JOXdB65jEuXI9V0rc6n/KpOLY2Xfy6CX78RpWVXPc30D10DxUVI9hyEU+Xg4t9rwOAVhZaOwjhaEqpdvDrjMmX0bBVwCI2QXt7GnjUPqibNyEbQ==";
|
||||
|
||||
/**
|
||||
* 生成 HmacSHA256 签名
|
||||
@@ -37,6 +43,47 @@ public class SignatureUtils {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 正新菜品市场系统 验签
|
||||
* @param httpMethod
|
||||
* @param uri
|
||||
* @param requestBody
|
||||
* @param timeStamp
|
||||
* @param random
|
||||
* @return
|
||||
*/
|
||||
public static String sign(String httpMethod, String uri, String requestBody, String timeStamp, String random) throws Exception {
|
||||
log.info("timeStamp+random:{}",timeStamp + "/" + random);
|
||||
String plainText = new StringJoiner("&")
|
||||
.add("CRM")
|
||||
.add(httpMethod.toUpperCase())
|
||||
.add(uri)
|
||||
.add(requestBody)
|
||||
.add(timeStamp)
|
||||
.add(random)
|
||||
.toString();
|
||||
// 签名算法
|
||||
Signature signature = Signature.getInstance("SHA256WithRSA");
|
||||
|
||||
PrivateKey privateKey = readPrivateKey(SignatureUtils.privateKey);
|
||||
// 签名
|
||||
signature.initSign(privateKey);
|
||||
signature.update(plainText.getBytes(StandardCharsets.UTF_8));
|
||||
return Base64.getEncoder().encodeToString(signature.sign());
|
||||
}
|
||||
|
||||
|
||||
private static PrivateKey readPrivateKey(String key) throws Exception {
|
||||
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
|
||||
byte[] keys = Base64.getDecoder().decode(key);
|
||||
try {
|
||||
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keys);
|
||||
return keyFactory.generatePrivate(keySpec);
|
||||
} catch (InvalidKeySpecException e) {
|
||||
throw new IllegalStateException("私钥⽆效:", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成待签名字符串(参数按字母排序 + appkey + timestamp)
|
||||
* @param params 请求参数Map(需提前过滤空值)
|
||||
|
||||
Reference in New Issue
Block a user