订单平台佣金bug修复,价格计算相关优化

This commit is contained in:
Chopper 2021-08-02 18:44:05 +08:00
parent 083b90a04a
commit 644de06172
20 changed files with 110 additions and 321 deletions

View File

@ -86,7 +86,7 @@ Lilishop 基于SpringBoot研发的B2B2C多用户商城系统前端使用 Vue
PS:单独部署的话,商城数据库文件访问这里:https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql
PS:单独部署的话,点击跳转 https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql 这里有与tag版本一致的sql根据tag获取sql如果使用master代码则需要在lilishop项目根目录的update-sql目录中获取对应的升级sql。
##### 商城部署后 API/UI 地址

View File

@ -58,6 +58,14 @@ public interface GoodsService extends IService<Goods> {
*/
GoodsVO getGoodsVO(String goodsId);
/**
* 数据库查询商品VO
*
* @param goodsId 商品id
* @return 商品VO
*/
GoodsVO getGoodsVOFromDB(String goodsId);
/**
* 商品查询
*

View File

@ -224,6 +224,11 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
return goodsVO;
}
@Override
public GoodsVO getGoodsVOFromDB(String goodsId) {
return getGoodsVO(goodsId);
}
@Override
public IPage<Goods> queryByParams(GoodsSearchParams goodsSearchParams) {
return this.page(PageUtil.initPage(goodsSearchParams), goodsSearchParams.queryWrapper());

View File

@ -73,6 +73,8 @@ public class CartPriceRender implements CartRenderStep {
if (cart.getStoreId().equals(sku.getStoreId()) && !cart.getSkuList().contains(sku)) {
cart.getSkuList().add(sku);
}
//写入初始价格
sku.getPriceDetailDTO().setGoodsPrice(CurrencyUtil.mul(sku.getPurchasePrice(), sku.getNum()));
}
}
}
@ -105,55 +107,40 @@ public class CartPriceRender implements CartRenderStep {
//计算购物车价格
for (CartVO cart : cartVOS) {
List<CartSkuVO> cartSkuVOS = map.get(cart.getStoreId());
//累加价格
List<PriceDetailDTO> priceDetailDTOS = new ArrayList<>();
//购物车选中
if (Boolean.TRUE.equals(cart.getChecked())) {
//累加价格
for (CartSkuVO cartSkuVO : cartSkuVOS) {
//sku选中
if (Boolean.TRUE.equals(cartSkuVO.getChecked())) {
PriceDetailDTO priceDetailDTO = cartSkuVO.getPriceDetailDTO();
//流水金额(入账 出帐金额) = goodsPrice + freight - discountPrice + couponPrice
double flowPrice = CurrencyUtil.sub(
CurrencyUtil.add(priceDetailDTO.getGoodsPrice(), priceDetailDTO.getFreightPrice()),
CurrencyUtil.add(priceDetailDTO.getDiscountPrice(),
priceDetailDTO.getCouponPrice() != null ? priceDetailDTO.getCouponPrice() : 0));
priceDetailDTO.setFlowPrice(flowPrice);
//平台佣金根据分类计算
String categoryId = cartSkuVO.getGoodsSku().getCategoryPath()
.substring(cartSkuVO.getGoodsSku().getCategoryPath().lastIndexOf(",") + 1);
if (StrUtil.isNotEmpty(categoryId)) {
Double commissionRate = categoryService.getById(categoryId).getCommissionRate();
priceDetailDTO.setCommission(commissionRate);
}
//如果积分订单 计算金额
//如果积分订单 积分订单单独操作订单结算金额和商家结算字段
if (tradeDTO.getCartTypeEnum().equals(CartTypeEnum.POINTS)) {
PointsGoodsVO pointsGoodsVO = pointsGoodsService.getPointsGoodsVOByMongo(cartSkuVO.getGoodsSku().getId());
priceDetailDTO.setBillPrice(pointsGoodsVO.getSettlementPrice());
priceDetailDTO.setSettlementPrice(pointsGoodsVO.getSettlementPrice());
}
//如果砍价订单 计算金额
//如果砍价订单 计算金额单独操作订单结算金额和商家结算字段
else if (tradeDTO.getCartTypeEnum().equals(CartTypeEnum.KANJIA)) {
KanjiaActivityGoodsDTO kanjiaActivityGoodsDTO = kanjiaActivityGoodsService.getKanJiaGoodsBySku(cartSkuVO.getGoodsSku().getId());
priceDetailDTO.setBillPrice(kanjiaActivityGoodsDTO.getSettlementPrice());
priceDetailDTO.setSettlementPrice(kanjiaActivityGoodsDTO.getSettlementPrice());
}
//兜底普通计算
else {
//如果是普通订单最终结算金额 = flowPrice - platFormCommission - distributionCommission
double billPrice = CurrencyUtil.sub(
CurrencyUtil.sub(
flowPrice, priceDetailDTO.getPlatFormCommission()), priceDetailDTO.getDistributionCommission());
priceDetailDTO.setBillPrice(billPrice);
}
//平台佣金
String categoryId = cartSkuVO.getGoodsSku().getCategoryPath().substring(
cartSkuVO.getGoodsSku().getCategoryPath().lastIndexOf(",") + 1
);
//平台佣金=订单金额 * 分类佣金百分比
if (StrUtil.isNotEmpty(categoryId)) {
Double platFormCommission = CurrencyUtil.div(CurrencyUtil.mul(flowPrice, categoryService.getById(categoryId).getCommissionRate()), 100);
priceDetailDTO.setPlatFormCommission(platFormCommission);
}
priceDetailDTOS.add(priceDetailDTO);
}
}
cart.setPriceDetailDTO(PriceDetailDTO.accumulationPriceDTO(priceDetailDTOS, cart.getPriceDetailDTO()));
cart.getPriceDetailDTO().accumulationPriceDTO(priceDetailDTOS);
}
}
}
@ -172,7 +159,7 @@ public class CartPriceRender implements CartRenderStep {
for (CartVO cart : cartVOS) {
priceDetailDTOS.add(cart.getPriceDetailDTO());
}
tradeDTO.setPriceDetailDTO(PriceDetailDTO.accumulationPriceDTO(priceDetailDTOS, tradeDTO.getPriceDetailDTO()));
tradeDTO.getPriceDetailDTO().accumulationPriceDTO(priceDetailDTOS);
}
}

View File

@ -5,7 +5,6 @@ import cn.lili.common.enums.PromotionTypeEnum;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.utils.CurrencyUtil;
import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
@ -109,8 +108,6 @@ public class CheckDataRender implements CartRenderStep {
//设置失效消息
cartSkuVO.setErrorMessage("商品库存不足,现有库存数量[" + dataSku.getQuantity() + "]");
}
//写入初始价格
cartSkuVO.getPriceDetailDTO().setGoodsPrice(CurrencyUtil.mul(cartSkuVO.getPurchasePrice(), cartSkuVO.getNum()));
}
}

View File

@ -94,6 +94,13 @@ public class PriceDetailDTO implements Serializable {
private List<BasePromotion> joinPromotion;
public Double getOriginalPrice() {
if (originalPrice == null) {
return flowPrice;
}
return originalPrice;
}
public PriceDetailDTO() {
goodsPrice = 0d;
freightPrice = 0d;
@ -116,13 +123,50 @@ public class PriceDetailDTO implements Serializable {
joinPromotion = new ArrayList<>();
}
/**
* 写入修改金额自动计算订单各个金额
*
* @param updatePrice 修改后的订单金额
*/
public void setUpdatePrice(Double updatePrice) {
this.updatePrice = updatePrice;
}
/**
* 写入佣金比例计算结算金额
*
* @param commission 佣金比例
*/
public void setCommission(Double commission) {
//流水金额(入账 出帐金额) = goodsPrice + freight - discountPrice + couponPrice
this.flowPrice = CurrencyUtil.sub(
CurrencyUtil.add(goodsPrice, freightPrice),
CurrencyUtil.add(discountPrice,
couponPrice != null ? couponPrice : 0));
//计算平台佣金 流水金额*平台佣金比例
if (commission != null && commission > 0) {
platFormCommission = CurrencyUtil.div(CurrencyUtil.mul(flowPrice, commission), 100);
}
countBill();
}
public void countBill() {
//如果是普通订单最终结算金额 = flowPrice - platFormCommission - distributionCommission
billPrice = CurrencyUtil.sub(CurrencyUtil.sub(flowPrice, platFormCommission), distributionCommission);
}
/**
* 累加
*
* @param priceDetailDTOS
* @return
*/
public static PriceDetailDTO accumulationPriceDTO(List<PriceDetailDTO> priceDetailDTOS, PriceDetailDTO originPriceDetail) {
public void accumulationPriceDTO(List<PriceDetailDTO> priceDetailDTOS) {
double goodsPrice = 0d;
@ -164,23 +208,21 @@ public class PriceDetailDTO implements Serializable {
billPrice = CurrencyUtil.add(billPrice, price.getBillPrice());
}
originPriceDetail.setGoodsPrice(goodsPrice);
originPriceDetail.setFreightPrice(freightPrice);
originPriceDetail.setPayPoint(payPoint);
originPriceDetail.setUpdatePrice(updatePrice);
originPriceDetail.setDiscountPrice(discountPrice);
this.setGoodsPrice(goodsPrice);
this.setFreightPrice(freightPrice);
this.setPayPoint(payPoint);
this.setUpdatePrice(updatePrice);
this.setDiscountPrice(discountPrice);
originPriceDetail.setDistributionCommission(distributionCommission);
originPriceDetail.setPlatFormCommission(platFormCommission);
this.setDistributionCommission(distributionCommission);
this.setPlatFormCommission(platFormCommission);
originPriceDetail.setSiteCouponPrice(siteCouponPrice);
originPriceDetail.setSiteCouponPoint(siteCouponPoint);
originPriceDetail.setSiteCouponCommission(siteCouponCommission);
this.setSiteCouponPrice(siteCouponPrice);
this.setSiteCouponPoint(siteCouponPoint);
this.setSiteCouponCommission(siteCouponCommission);
originPriceDetail.setFlowPrice(flowPrice);
originPriceDetail.setBillPrice(billPrice);
return originPriceDetail;
this.setFlowPrice(flowPrice);
this.setBillPrice(billPrice);
}
/**
@ -203,11 +245,4 @@ public class PriceDetailDTO implements Serializable {
return goodsPrice;
}
/**
* 自身计价
*/
public void count() {
this.flowPrice = CurrencyUtil.sub(CurrencyUtil.add(goodsPrice, freightPrice), discountPrice);
//this.billPrice = CurrencyUtil.sub(CurrencyUtil.sub(CurrencyUtil.sub(flowPrice, platFormCommission)), distributionCommission);
}
}

View File

@ -1,11 +1,9 @@
package cn.lili.modules.order.order.serviceimpl;
import cn.hutool.json.JSONUtil;
import cn.lili.modules.system.aspect.annotation.SystemLogPoint;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.utils.CurrencyUtil;
import cn.lili.modules.system.utils.OperationalJudgment;
import cn.lili.modules.goods.service.CategoryService;
import cn.lili.modules.order.order.aop.OrderLogPoint;
import cn.lili.modules.order.order.entity.dos.Order;
@ -20,6 +18,8 @@ import cn.lili.modules.order.order.service.OrderPriceService;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
import cn.lili.modules.payment.kit.plugin.bank.BankTransferPlugin;
import cn.lili.modules.system.aspect.annotation.SystemLogPoint;
import cn.lili.modules.system.utils.OperationalJudgment;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -27,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
* 订单价格业务层实现
@ -122,16 +123,21 @@ public class OrderPriceServiceImpl implements OrderPriceService {
//获取订单价格信息
PriceDetailDTO orderPriceDetailDTO = order.getPriceDetailDTO();
//如果未修改过金额则记录订单原始价格
if (orderPriceDetailDTO.getOriginalPrice() == null) {
orderPriceDetailDTO.setOriginalPrice(order.getFlowPrice());
}
//修改订单价格
order.setFlowPrice(orderPrice);
//订单修改金额=使用订单原始金额-修改后金额
orderPriceDetailDTO.setUpdatePrice(CurrencyUtil.sub(orderPriceDetailDTO.getOriginalPrice(), orderPrice));
orderPriceDetailDTO.setFlowPrice(orderPrice);
List<OrderItem> orderItems = updateOrderItemPrice(order);
//这里如果直接赋予订单金额则累加可能会出现小数点最后无法累加回去所以用一个零时变量累加后将平台佣金赋予对象
PriceDetailDTO tempPriceDetail = new PriceDetailDTO();
tempPriceDetail.accumulationPriceDTO(orderItems.stream().map(OrderItem::getPriceDetailDTO).collect(Collectors.toList()));
orderPriceDetailDTO.setPlatFormCommission(tempPriceDetail.getPlatFormCommission());
orderPriceDetailDTO.countBill();
//修改订单
order.setPriceDetail(JSONUtil.toJsonStr(orderPriceDetailDTO));
orderService.updateById(order);
@ -148,19 +154,14 @@ public class OrderPriceServiceImpl implements OrderPriceService {
*
* @param order 订单
*/
private void updateOrderItemPrice(Order order) {
private List<OrderItem> updateOrderItemPrice(Order order) {
List<OrderItem> orderItems = orderItemService.getByOrderSn(order.getSn());
for (OrderItem orderItem : orderItems) {
//获取订单货物价格信息
PriceDetailDTO priceDetailDTO = orderItem.getPriceDetailDTO();
//如果未修改过金额则记录订单原始价格
if (priceDetailDTO.getOriginalPrice() == null) {
priceDetailDTO.setOriginalPrice(orderItem.getFlowPrice());
}
//获取订单货物占订单金额的百分比
//SKU占总订单 金额的百分比
Double priceFluctuationRatio = CurrencyUtil.div(priceDetailDTO.getOriginalPrice(), order.getPriceDetailDTO().getOriginalPrice());
//计算修改后的订单货物金额
@ -168,22 +169,22 @@ public class OrderPriceServiceImpl implements OrderPriceService {
//记录修改金额
priceDetailDTO.setUpdatePrice(CurrencyUtil.sub(priceDetailDTO.getOriginalPrice(), flowPrice));
priceDetailDTO.setFlowPrice(flowPrice);
//计算平台佣金=交易金额*分类佣金比例/100
Double platFormCommission = CurrencyUtil.div(CurrencyUtil.mul(flowPrice, categoryService.getById(orderItem.getCategoryId()).getCommissionRate()), 100);
priceDetailDTO.setPlatFormCommission(platFormCommission);
//最终结算金额 = 流水金额-平台佣金-分销提佣
double billPrice = CurrencyUtil.sub(CurrencyUtil.sub(priceDetailDTO.getFlowPrice(), priceDetailDTO.getPlatFormCommission()),
priceDetailDTO.getDistributionCommission());
priceDetailDTO.setBillPrice(billPrice);
//修改订单货物金额
orderItem.setFlowPrice(flowPrice);
priceDetailDTO.countBill();
orderItem.setPriceDetail(JSONUtil.toJsonStr(priceDetailDTO));
orderItemService.update(orderItem, new LambdaUpdateWrapper<OrderItem>().eq(OrderItem::getId, orderItem.getId()));
}
return orderItems;
}
}

View File

@ -17,7 +17,6 @@ import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
import cn.lili.modules.goods.service.GoodsSkuService;
import cn.lili.modules.order.cart.entity.vo.CartSkuVO;
import cn.lili.modules.order.cart.entity.vo.FullDiscountVO;
import cn.lili.modules.promotion.entity.dos.PointsGoods;
import cn.lili.modules.promotion.entity.dos.PromotionGoods;
import cn.lili.modules.promotion.entity.dos.SeckillApply;
import cn.lili.modules.promotion.entity.dto.BasePromotion;

View File

@ -1,18 +0,0 @@
-----BEGIN CERTIFICATE REQUEST-----
MIIC2DCCAcACAQAwgZIxDzANBgNVBAYMBuS4reWbvTEPMA0GA1UECAwG5YyX5Lqs
MQ8wDQYDVQQHDAbmtbfmt4AxLTArBgNVBAoMJOWMl+S6rOWuj+S4muaxh+aIkOen
keaKgOaciemZkOWFrOWPuDEPMA0GA1UECwwG5oqA5pyvMR0wGwYDVQQDExR6MTcx
bDkxNjA2LjUxbXlwYy5jbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AIfj8IYemfNMBLuN6o+rXTHYoCpKadfaYFDaKTCPdqZVnf0l6dBie9xqx7dxc+40
T8NlylJdbnVzerKGjtOcRQ3xDZp/bcciL3T0MvZ0e/zP5/Zx4U9biuOtBaZbu4yx
i8pDFZAn4/rIgwf/tChPg2y1hs+JpDxQWvhA/1TxNTBH0k3fN7HBsDDmdabPdVVW
d245vR08vhOZYv3d/SWCymHvJW+20W3cZDYUBfuNyswQ5T6sWL3eopOwPOWkOfIF
U7eEVuVHUeVKAggdYTV5lSUQbVjKrHVh/AndaslAgNLX2Vl5RHmvI9+aOtXX+edz
zs8mLVRMHSV3Opd4aJCzzf8CAwEAAaAAMA0GCSqGSIb3DQEBBAUAA4IBAQASJKf5
xBRd63zynwTWebIHKvJumWMI4jhS7Sk3SnRICc+ZihlM0K0R/kR00MpRkiLDu7j6
uPWD/lcQwDDRzDsuN9iRHjpUiexSkgrtgX8BYHJkLTUOD2fuBpf8C0yonepeGM3B
jRsCS1O2BT1/pHVJTbCdqx95/U9Vwjaiddckh8LpFLUUB09i3XYsnbNzTCaIHp2K
/NqgkEptZswQfT2Vfiz1xrrtLZpaesnUaDryqUbg13QmB+cvkHxbJnyVkeFEDSTW
oAfmttYSDQ+Ihz5SjB2POSXNB95QkfzK+vkalEIO7kYBQ3YAojTBv2ORsy1trpgu
1erWy6VN36go9zfK
-----END CERTIFICATE REQUEST-----

View File

@ -1 +0,0 @@
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAh+Pwhh6Z80wEu43qj6tdMdigKkpp19pgUNopMI92plWd/SXp0GJ73GrHt3Fz7jRPw2XKUl1udXN6soaO05xFDfENmn9txyIvdPQy9nR7/M/n9nHhT1uK460Fplu7jLGLykMVkCfj+siDB/+0KE+DbLWGz4mkPFBa+ED/VPE1MEfSTd83scGwMOZ1ps91VVZ3bjm9HTy+E5li/d39JYLKYe8lb7bRbdxkNhQF+43KzBDlPqxYvd6ik7A85aQ58gVTt4RW5UdR5UoCCB1hNXmVJRBtWMqsdWH8Cd1qyUCA0tfZWXlEea8j35o61df553POzyYtVEwdJXc6l3hokLPN/wIDAQAB

View File

@ -1 +0,0 @@
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCH4/CGHpnzTAS7jeqPq10x2KAqSmnX2mBQ2ikwj3amVZ39JenQYnvcase3cXPuNE/DZcpSXW51c3qyho7TnEUN8Q2af23HIi909DL2dHv8z+f2ceFPW4rjrQWmW7uMsYvKQxWQJ+P6yIMH/7QoT4NstYbPiaQ8UFr4QP9U8TUwR9JN3zexwbAw5nWmz3VVVnduOb0dPL4TmWL93f0lgsph7yVvttFt3GQ2FAX7jcrMEOU+rFi93qKTsDzlpDnyBVO3hFblR1HlSgIIHWE1eZUlEG1Yyqx1YfwJ3WrJQIDS19lZeUR5ryPfmjrV1/nnc87PJi1UTB0ldzqXeGiQs83/AgMBAAECggEAd//IeZdyWY/qqfkThlVMUeU64r2do/h6j0tnjjNSEmaOwmqFg/hD6ov82zh7qIFXYnRz6rIJBfy5AAek/qcDr+ELI0CeH3hHsh6nFk4c405xR4ae8WYkSxOSZqqg/wgWKsF8vDUNtHr2gszCOcqlgwz2BDVG6+AFxS4Yi9kJIB0khnu8ClE+z35mplDvuDdAYH3/SrJMEdOcMEyE7+7PV1nuXSpyYWqa8UQL1pFvy2mD/mXnBXV3vQi8Qdcc3E2MTsZUg3k+2FYQANdsrYLofpZw28Go4hpWZpdw7BA8fYh/8Gl0is9omTgonj7EZF2MpIEikOhoGPT/Dfnxlgw6gQKBgQD6W6Qsi5pz851kuzQhgMWOAOyA9iKrrV9yfIID2jxrBLFk2rzQm2cRhid9+UgvWDAWJA3pwC448L7T6U9ku48kfI60oQh/P/YaTP3CKwPlzJdNk4FNHWhESjZ95qe4deJCOgKzN9qSKWJQFQNDN362/gWxuK/XMlimC6q3YEY8vwKBgQCK8+oynpgwMyi9GeDPsifsHzrlbEYK02YyQZ0ikUlSXyssx6Fzm4lULI9Yh2m5LLdeOLreyLGUXpf/PWdOf47OqzPUxBE7qTrLyKlyGl9vUESTXBXL2AMX44t79djatDHfFHycLpWBmmZ2KW1CR0oPJqxseHPnkHZR5c24eqZ+wQKBgQD3LQMp96rGT/9VNH6DlV92k/LsYBZa6RETN1ol85EzF68Mo+lHDCb2Zj0XYsah96+CLJaP8e2wyf+duPtpuMPagh9itpptB/kyflELIuz2NMgtDzTZre8DfUHPi6qLs9dvC1cfGkXxiGpIJnbSJjg08xcsH+t7y3k6dspVwfeWgQKBgAmnzVxbHOQsieYqCC8miBOmT+dlULCr4+wWFx8xzVCGAHAKJzPrWO2acxOJxVTywIMxmfqlI4HV2OYJlEYmIvxFdUKRpUjqB4XlmbCuGHeZskozGeiiSAS+8RBaEwmPf++qcsY/jnAFFJ2dX1Q9s+29mDmpXRR4O2CRgWwSScOBAoGAWkovHm4T7KvujeN2ZzQ9b1u2BosBMW14J8C0RgW6hR1Twjk61pv7tjcSfZdQmD1ss8aqR2byFGJq86vRjE4tsFbPCSitF01xRbvSExGAb8ZI5fJoNiQPTuIvkW7chvrzj2KWuffkjcivhQJ6ExlWco3ncqRQ6QMPoaE0xNPqGuE=

View File

@ -1,19 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDsjCCApqgAwIBAgIQICASFdUt4pOdF6AF49Xo2TANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE
BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0
aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs
YXNzIDIgUjEwHhcNMjAxMjE1MTAzMDUwWhcNMjIxMjE1MTAzMDUwWjCBkjELMAkGA1UEBhMCQ04x
LTArBgNVBAoMJOWMl+S6rOWuj+S4muaxh+aIkOenkeaKgOaciemZkOWFrOWPuDEPMA0GA1UECwwG
QWxpcGF5MUMwQQYDVQQDDDrmlK/ku5jlrp0o5Lit5Zu9Kee9kee7nOaKgOacr+aciemZkOWFrOWP
uC0yMDg4NzMxNDAxODM4MzQ2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjTjdq5cN
F/7o1pFf8woNQkWget8kmJb/pKwbZWUWrH8lv+BUzCJIrZDC/QnlPGEmC6D8zHVs8CTm73XuRzmu
y6zapUYAhY4Zwd9NC1izZxSkuS7KHfKltaCcRCfEbIQpILL7rTIazBDlgBYRFFaeWF1g1uXrgzt/
axTg8D/sQN2QwkpdAue1WyXo8OTIxULdkNSISw6BRrTisncrD6TwXtth+okVDEaU5JUrtTBzapdM
WCGqM4dIT9nSAZ7ibRNAbtC41rCHYBGELtDcSkrrLpWyiGRTnyJ9HgdiQlhY5SG1nKmPvrRuTpgR
LZqGAC2rmXv/ymDtYa6Ldw9zB64yDwIDAQABoxIwEDAOBgNVHQ8BAf8EBAMCA/gwDQYJKoZIhvcN
AQELBQADggEBAGJzZpqeMk0/TbgEaAqXe33w7hhYRDt3K70r7R4J4U5DXm3gbXX6Mw/wOq2/ZR4/
BswxkwbOsAxkAG2Be3ShjW4FD1r54bWZJNYpXKRUEoCEZvIeLH+bRTCnr9y5NFxTTXXiT2NS6Oox
JaSDymQHX0DrgiA+9L/8xMuibe16/zHcSTMUSrCk1CHhw8QDFHtxUa4pe6DwRsqVoQbfp+Rw9wM8
7FdHpAXT5Mnchl5d0jywTAa1EAFfZ6hty9/XiFI9ferUdqMUdI8SnTe6tx67+QIY8lOyUh3ZmITM
GnoWdjLdHlSHHCrTA7SauhylhwhsjPaLCdTq8q2jwQhmmhwNVnM=
-----END CERTIFICATE-----

View File

@ -1,88 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIBszCCAVegAwIBAgIIaeL+wBcKxnswDAYIKoEcz1UBg3UFADAuMQswCQYDVQQG
EwJDTjEOMAwGA1UECgwFTlJDQUMxDzANBgNVBAMMBlJPT1RDQTAeFw0xMjA3MTQw
MzExNTlaFw00MjA3MDcwMzExNTlaMC4xCzAJBgNVBAYTAkNOMQ4wDAYDVQQKDAVO
UkNBQzEPMA0GA1UEAwwGUk9PVENBMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE
MPCca6pmgcchsTf2UnBeL9rtp4nw+itk1Kzrmbnqo05lUwkwlWK+4OIrtFdAqnRT
V7Q9v1htkv42TsIutzd126NdMFswHwYDVR0jBBgwFoAUTDKxl9kzG8SmBcHG5Yti
W/CXdlgwDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFEwysZfZ
MxvEpgXBxuWLYlvwl3ZYMAwGCCqBHM9VAYN1BQADSAAwRQIgG1bSLeOXp3oB8H7b
53W+CKOPl2PknmWEq/lMhtn25HkCIQDaHDgWxWFtnCrBjH16/W3Ezn7/U/Vjo5xI
pDoiVhsLwg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIF0zCCA7ugAwIBAgIIH8+hjWpIDREwDQYJKoZIhvcNAQELBQAwejELMAkGA1UE
BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmlj
YXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5jaWFsIENlcnRpZmlj
YXRpb24gQXV0aG9yaXR5IFIxMB4XDTE4MDMyMTEzNDg0MFoXDTM4MDIyODEzNDg0
MFowejELMAkGA1UEBhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNV
BAsMF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5j
aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFIxMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEAtytTRcBNuur5h8xuxnlKJetT65cHGemGi8oD+beHFPTk
rUTlFt9Xn7fAVGo6QSsPb9uGLpUFGEdGmbsQ2q9cV4P89qkH04VzIPwT7AywJdt2
xAvMs+MgHFJzOYfL1QkdOOVO7NwKxH8IvlQgFabWomWk2Ei9WfUyxFjVO1LVh0Bp
dRBeWLMkdudx0tl3+21t1apnReFNQ5nfX29xeSxIhesaMHDZFViO/DXDNW2BcTs6
vSWKyJ4YIIIzStumD8K1xMsoaZBMDxg4itjWFaKRgNuPiIn4kjDY3kC66Sl/6yTl
YUz8AybbEsICZzssdZh7jcNb1VRfk79lgAprm/Ktl+mgrU1gaMGP1OE25JCbqli1
Pbw/BpPynyP9+XulE+2mxFwTYhKAwpDIDKuYsFUXuo8t261pCovI1CXFzAQM2w7H
DtA2nOXSW6q0jGDJ5+WauH+K8ZSvA6x4sFo4u0KNCx0ROTBpLif6GTngqo3sj+98
SZiMNLFMQoQkjkdN5Q5g9N6CFZPVZ6QpO0JcIc7S1le/g9z5iBKnifrKxy0TQjtG
PsDwc8ubPnRm/F82RReCoyNyx63indpgFfhN7+KxUIQ9cOwwTvemmor0A+ZQamRe
9LMuiEfEaWUDK+6O0Gl8lO571uI5onYdN1VIgOmwFbe+D8TcuzVjIZ/zvHrAGUcC
AwEAAaNdMFswCwYDVR0PBAQDAgEGMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFF90
tATATwda6uWx2yKjh0GynOEBMB8GA1UdIwQYMBaAFF90tATATwda6uWx2yKjh0Gy
nOEBMA0GCSqGSIb3DQEBCwUAA4ICAQCVYaOtqOLIpsrEikE5lb+UARNSFJg6tpkf
tJ2U8QF/DejemEHx5IClQu6ajxjtu0Aie4/3UnIXop8nH/Q57l+Wyt9T7N2WPiNq
JSlYKYbJpPF8LXbuKYG3BTFTdOVFIeRe2NUyYh/xs6bXGr4WKTXb3qBmzR02FSy3
IODQw5Q6zpXj8prYqFHYsOvGCEc1CwJaSaYwRhTkFedJUxiyhyB5GQwoFfExCVHW
05ZFCAVYFldCJvUzfzrWubN6wX0DD2dwultgmldOn/W/n8at52mpPNvIdbZb2F41
T0YZeoWnCJrYXjq/32oc1cmifIHqySnyMnavi75DxPCdZsCOpSAT4j4lAQRGsfgI
kkLPGQieMfNNkMCKh7qjwdXAVtdqhf0RVtFILH3OyEodlk1HYXqX5iE5wlaKzDop
PKwf2Q3BErq1xChYGGVS+dEvyXc/2nIBlt7uLWKp4XFjqekKbaGaLJdjYP5b2s7N
1dM0MXQ/f8XoXKBkJNzEiM3hfsU6DOREgMc1DIsFKxfuMwX3EkVQM1If8ghb6x5Y
jXayv+NLbidOSzk4vl5QwngO/JYFMkoc6i9LNwEaEtR9PhnrdubxmrtM+RjfBm02
77q3dSWFESFQ4QxYWew4pHE0DpWbWy/iMIKQ6UZ5RLvB8GEcgt8ON7BBJeMc+Dyi
kT9qhqn+lw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICiDCCAgygAwIBAgIIQX76UsB/30owDAYIKoZIzj0EAwMFADB6MQswCQYDVQQG
EwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDEgMB4GA1UECwwXQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkxMTAvBgNVBAMMKEFudCBGaW5hbmNpYWwgQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkgRTEwHhcNMTkwNDI4MTYyMDQ0WhcNNDkwNDIwMTYyMDQ0
WjB6MQswCQYDVQQGEwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDEgMB4GA1UE
CwwXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxMTAvBgNVBAMMKEFudCBGaW5hbmNp
YWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRTEwdjAQBgcqhkjOPQIBBgUrgQQA
IgNiAASCCRa94QI0vR5Up9Yr9HEupz6hSoyjySYqo7v837KnmjveUIUNiuC9pWAU
WP3jwLX3HkzeiNdeg22a0IZPoSUCpasufiLAnfXh6NInLiWBrjLJXDSGaY7vaokt
rpZvAdmjXTBbMAsGA1UdDwQEAwIBBjAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRZ
4ZTgDpksHL2qcpkFkxD2zVd16TAfBgNVHSMEGDAWgBRZ4ZTgDpksHL2qcpkFkxD2
zVd16TAMBggqhkjOPQQDAwUAA2gAMGUCMQD4IoqT2hTUn0jt7oXLdMJ8q4vLp6sg
wHfPiOr9gxreb+e6Oidwd2LDnC4OUqCWiF8CMAzwKs4SnDJYcMLf2vpkbuVE4dTH
Rglz+HGcTLWsFs4KxLsq7MuU+vJTBUeDJeDjdA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDxTCCAq2gAwIBAgIUEMdk6dVgOEIS2cCP0Q43P90Ps5YwDQYJKoZIhvcNAQEF
BQAwajELMAkGA1UEBhMCQ04xEzARBgNVBAoMCmlUcnVzQ2hpbmExHDAaBgNVBAsM
E0NoaW5hIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMMH2lUcnVzQ2hpbmEgQ2xhc3Mg
MiBSb290IENBIC0gRzMwHhcNMTMwNDE4MDkzNjU2WhcNMzMwNDE4MDkzNjU2WjBq
MQswCQYDVQQGEwJDTjETMBEGA1UECgwKaVRydXNDaGluYTEcMBoGA1UECwwTQ2hp
bmEgVHJ1c3QgTmV0d29yazEoMCYGA1UEAwwfaVRydXNDaGluYSBDbGFzcyAyIFJv
b3QgQ0EgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOPPShpV
nJbMqqCw6Bz1kehnoPst9pkr0V9idOwU2oyS47/HjJXk9Rd5a9xfwkPO88trUpz5
4GmmwspDXjVFu9L0eFaRuH3KMha1Ak01citbF7cQLJlS7XI+tpkTGHEY5pt3EsQg
wykfZl/A1jrnSkspMS997r2Gim54cwz+mTMgDRhZsKK/lbOeBPpWtcFizjXYCqhw
WktvQfZBYi6o4sHCshnOswi4yV1p+LuFcQ2ciYdWvULh1eZhLxHbGXyznYHi0dGN
z+I9H8aXxqAQfHVhbdHNzi77hCxFjOy+hHrGsyzjrd2swVQ2iUWP8BfEQqGLqM1g
KgWKYfcTGdbPB1MCAwEAAaNjMGEwHQYDVR0OBBYEFG/oAMxTVe7y0+408CTAK8hA
uTyRMB8GA1UdIwQYMBaAFG/oAMxTVe7y0+408CTAK8hAuTyRMA8GA1UdEwEB/wQF
MAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBLnUTfW7hp
emMbuUGCk7RBswzOT83bDM6824EkUnf+X0iKS95SUNGeeSWK2o/3ALJo5hi7GZr3
U8eLaWAcYizfO99UXMRBPw5PRR+gXGEronGUugLpxsjuynoLQu8GQAeysSXKbN1I
UugDo9u8igJORYA+5ms0s5sCUySqbQ2R5z/GoceyI9LdxIVa1RjVX8pYOj8JFwtn
DJN3ftSFvNMYwRuILKuqUYSHc2GPYiHVflDh5nDymCMOQFcFG3WsEuB+EYQPFgIU
1DHmdZcz7Llx8UOZXX2JupWCYzK1XhJb+r4hK5ncf/w8qGtYlmyJpxk3hr1TfUJX
Yf4Zr0fJsGuv
-----END CERTIFICATE-----

View File

@ -1,24 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIEsTCCA5mgAwIBAgIQICASFoAHYjkCdKIRVlK0fjANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE
BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0
aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs
YXNzIDEgUjEwHhcNMjAxMjE2MTEyNTUyWhcNMjIxMjE2MTEyNTUyWjB5MQswCQYDVQQGEwJDTjEt
MCsGA1UECgwk5YyX5Lqs5a6P5Lia5rGH5oiQ56eR5oqA5pyJ6ZmQ5YWs5Y+4MQ8wDQYDVQQLDAZB
bGlwYXkxKjAoBgNVBAMMITIwODg3MzE0MDE4MzgzNDYtMjAyMTAwMjEwNzY0OTc3MzCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAIfj8IYemfNMBLuN6o+rXTHYoCpKadfaYFDaKTCPdqZV
nf0l6dBie9xqx7dxc+40T8NlylJdbnVzerKGjtOcRQ3xDZp/bcciL3T0MvZ0e/zP5/Zx4U9biuOt
BaZbu4yxi8pDFZAn4/rIgwf/tChPg2y1hs+JpDxQWvhA/1TxNTBH0k3fN7HBsDDmdabPdVVWd245
vR08vhOZYv3d/SWCymHvJW+20W3cZDYUBfuNyswQ5T6sWL3eopOwPOWkOfIFU7eEVuVHUeVKAggd
YTV5lSUQbVjKrHVh/AndaslAgNLX2Vl5RHmvI9+aOtXX+edzzs8mLVRMHSV3Opd4aJCzzf8CAwEA
AaOCASkwggElMB8GA1UdIwQYMBaAFHEH4gRhFuTl8mXrMQ/J4PQ8mtWRMB0GA1UdDgQWBBS9rOZn
eNQ2jrdlC4nkw8nw+Rn3xDBABgNVHSAEOTA3MDUGB2CBHAFuAQEwKjAoBggrBgEFBQcCARYcaHR0
cDovL2NhLmFsaXBheS5jb20vY3BzLnBkZjAOBgNVHQ8BAf8EBAMCBsAwLwYDVR0fBCgwJjAkoCKg
IIYeaHR0cDovL2NhLmFsaXBheS5jb20vY3JsNDguY3JsMGAGCCsGAQUFBwEBBFQwUjAoBggrBgEF
BQcwAoYcaHR0cDovL2NhLmFsaXBheS5jb20vY2E2LmNlcjAmBggrBgEFBQcwAYYaaHR0cDovL2Nh
LmFsaXBheS5jb206ODM0MC8wDQYJKoZIhvcNAQELBQADggEBAEkTDAVJ15SzJbSq85qASGxHPOl6
XUrgZQRQJX9zkgkXd98O5PQmoEgLx9EssAUaUuEsEUkIueDsp8uMiw6Ndj73pNJs6uoYiTVc9Bbk
fE4Cl+zxHqJRat0/ifSnEKnn668d2Mwcrlm6ygbsPi4dm9cVTy+a/09LQH+LD3jyL0/SetBYvNes
b//0xCTNNqRkedsJjjs01oR1P6RWfkoeF6yICGblsHkKUgekKzCEAo2B1tePi1zY2hF+51GPLTDk
sH+8gqJRtJqqQA2YoghxXen61Tw4DFx6t+z1YmAOJXnTfjnv7W+9fmBA4acHqrU6nq/rxoSl5uuK
b2OxNEwyTfs=
-----END CERTIFICATE-----

View File

@ -1,24 +0,0 @@
-----BEGIN CERTIFICATE-----
MIID8DCCAtigAwIBAgIUMHAf6+fRKNPVyiRvVOwGwAiFCfIwDQYJKoZIhvcNAQEL
BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT
FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg
Q0EwHhcNMjAwMTEzMDMyMDQwWhcNMjUwMTExMDMyMDQwWjCBgTETMBEGA1UEAwwK
MTU3NDE4MTIxMTEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMS0wKwYDVQQL
DCTljJfkuqzlro/kuJrmsYfmiJDnp5HmioDmnInpmZDlhazlj7gxCzAJBgNVBAYM
AkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBAPUtUG5V+OoOxXsoYALT6xY4xJqhy2zlGwQZ238cl4e4lM2SWFxx+8AW
7Vu1cPx+c1xqkWQqCxhD+UYT7Tap9o5TlCTaQ5ZCkU3X1o8rtpJTR83eHHJUELqu
+SB0v+8Fhbe8ekb+4b3mf31aqzla3bglfpxsj8WofmF3ZM2CPw1L7zrt+F9GbdjA
ObipcLLeq0OoJg9r5oJPEPZPQ3/vkAoDf+8Cyat9sUoyNeui+8aO7qliBV6Q7SiY
NfsGg3xe8THtNTxJtMj/NAe7blGciNvIPLV/9ipS0lOCI0tv/8kCcXaWxjLX8XUB
Ei2bkKSSzVpNZh7OH9RzLlXGzXpQrhMCAwEAAaOBgTB/MAkGA1UdEwQCMAAwCwYD
VR0PBAQDAgTwMGUGA1UdHwReMFwwWqBYoFaGVGh0dHA6Ly9ldmNhLml0cnVzLmNv
bS5jbi9wdWJsaWMvaXRydXNjcmw/Q0E9MUJENDIyMEU1MERCQzA0QjA2QUQzOTc1
NDk4NDZDMDFDM0U4RUJEMjANBgkqhkiG9w0BAQsFAAOCAQEAu38/E6xw/cr+SDQA
KFFVByBtMIBcISHKAuMdyM1LXefvpTqDivtcn/ZiEI96y47h48P+QkLseoFw/k+q
r8/+02pBZHMlnRpXeE0DexoB2pNR+lGAmhDll0qHL9ycSj1tS4/auFlDrljY/ike
5t40x67hfcKfFKUhv1zhekoX38ri4UTR0T/OqzPii2Zr7CTbGEoSDXy7Xjolp6BL
vrbNkwzchJbLRQRmyXILJ1MWzAGJNafLUKChBa/pxnxp+KEvExQ/LN0/5T/DfYev
XFjRlGGfIzVUEopo2O56/phO4y+VMspsuos2TeFunZInCQDoUo0AynUhi4Ipqjwe
M8Pjow==
-----END CERTIFICATE-----

View File

@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQD1LVBuVfjqDsV7
KGAC0+sWOMSaocts5RsEGdt/HJeHuJTNklhccfvAFu1btXD8fnNcapFkKgsYQ/lG
E+02qfaOU5Qk2kOWQpFN19aPK7aSU0fN3hxyVBC6rvkgdL/vBYW3vHpG/uG95n99
Wqs5Wt24JX6cbI/FqH5hd2TNgj8NS+867fhfRm3YwDm4qXCy3qtDqCYPa+aCTxD2
T0N/75AKA3/vAsmrfbFKMjXrovvGju6pYgVekO0omDX7BoN8XvEx7TU8SbTI/zQH
u25RnIjbyDy1f/YqUtJTgiNLb//JAnF2lsYy1/F1ARItm5Ckks1aTWYezh/Ucy5V
xs16UK4TAgMBAAECggEBAMdEUherFkidQtHrKcWCmZIRB3GqSFy0BHYb0fMIuPud
AIvoApr4JSWlPLsJx8/fskENeCeRqDzLmkDjlyuTjgl1UnV1U/M/HTvITeFFJPje
aQCgIjylqIciCObhHNHWiiygKj2jkLO4MCwg0gMmoAe3qaTW8y8x1629zRbeYgKZ
+pIt4ZK/Ditj1P+fn9YfP+5poYsYoEm2G5MgxJZ9Z8Y4X0HFNw5RZVUeAVHskmke
dPsZlR9JdncCaXwh1nd7guWpARjqykKoPBcZzzJ2/PpkEZvlp36mMRRhisUANit+
Irjnh0sA7Di8R0+IqPiuSegN3n8dRfuxfq+A2lGeLZkCgYEA+4e9h7fgpyTiAs/s
8La+NE+dXK4RamrHH/zZun72SR3VLMWrgEQ13p1jVJ4tGOvGdNbWMiYSGGwYubrL
sL+W1pzKpFL+dV7SEZ84nB13WiE7bjhXtTcoOKT2P57JszqZe1tKTBWaLycWPy8e
mo72NQJg2QLahi36KuHCkpAa5NcCgYEA+Yir+VLW/Y2bL5oA7/qrjfsw5RbPI1DV
O4k6mARaPXEb5U+upitZtBr7nRu8i2/Yw3H/VJV3vjyGZ2J/ApTI8DN2+k+LpQKN
nBCd0heCXy69GU+zB5ZAHmkluCWxWjZF8VHLaBzTrmOoboR4M2PfuYTKZCV5Qkxs
F7w1DUwg3SUCgYEAsb23Abu/JX2btE8H6QXJnJ+R3JcouWFg+sqrdO0YzowlQrEg
QtBwnLHtKjNoPM8HezMBQ4jBir6ALmbAX1LTnS5IyBvZskjh+w/fafosh+Up4PYx
jF3Ar15qoIRtlZhYMuJMuz0cqitdviJm5uMVOlpG47LvhpfgywKjgvwP9RsCgYEA
s7sBQ1+rgo1QTYT7T96ZWnamzRsUrzc1nuBE1+Gqrb6efRhbj0yCG/ujZ5Hmx/gT
hRLC+cV+rgMiO6zyFoXcBUbMV5ab2opwPQyq3/wW5z/e7DA/nyNVo5HQnUZo67VT
w3FKtP6uaVlWo+O+QCWbqyA+NsvW/y3UXXQuMhm3QhECgYEAhy6hubIfUw05Msv0
CK5VTxU/B+uE+WZo1PoYUeYfU1KUYsELyb/XbtiAYuI5z3lw75vLAuiYEUtc28Kb
ZSUv1z36DNGuRuj5wOAr1cfpMmqKA6IZpyAEdRZC8XXvl1+U3NZ3C2qeyGMJ06/N
YtbBEJ3p2CaDuUr3AFEDDNg1WKw=
-----END PRIVATE KEY-----

View File

@ -1,23 +0,0 @@
-----BEGIN CERTIFICATE-----
MIID3DCCAsSgAwIBAgIUV+as/5BHXy5fyCESrE6g2onbgtAwDQYJKoZIhvcNAQEL
BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT
FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg
Q0EwHhcNMjAwMTEzMDMyMDQwWhcNMjUwMTExMDMyMDQwWjBuMRgwFgYDVQQDDA9U
ZW5wYXkuY29tIHNpZ24xEzARBgNVBAoMClRlbnBheS5jb20xHTAbBgNVBAsMFFRl
bnBheS5jb20gQ0EgQ2VudGVyMQswCQYDVQQGDAJDTjERMA8GA1UEBwwIU2hlblpo
ZW4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1cnBvpt8zKcj9LNen
u/fmqC9FYDmC7EJ8OWpEdUFIdI5jmzwj8enLqVUIcboObA+1B9tqQBhQEIi+mBdd
sIRk9+YXFhmNbOPZiRiFnIC5B2tCq84ieDr7WZZAzRwUH1585Tiv3CsOTBib2xQs
hSMwglvnHsXCjlqUybejOk5FMahgm0ejgs8omRm3nBfcMfilOxXH4UUP56cfeDYO
YdaAQhuJ5bDILnQYm2SD0d+aN8VV5d0WjXW01NFLzxpyMUYHEXNcDC7pLjgNVgKl
0sk5TJlIUgxEIRli8RdfE1qrcnBqYKDgym4LfHCY6T2cBc0PQY4Q7cww8G7jHn4I
snjDAgMBAAGjgYEwfzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE8DBlBgNVHR8EXjBc
MFqgWKBWhlRodHRwOi8vZXZjYS5pdHJ1cy5jb20uY24vcHVibGljL2l0cnVzY3Js
P0NBPTFCRDQyMjBFNTBEQkMwNEIwNkFEMzk3NTQ5ODQ2QzAxQzNFOEVCRDIwDQYJ
KoZIhvcNAQELBQADggEBAJLIwFYvFLaT3BECVuapQu1t3Od+Oy6EY/PjLOhYlo5k
ALXWPJ5v8EsisFQhSRsZMWd+ynr3/tnLXcfU+fQMjU8lvYN3mXSp2fnSlzzublZB
fL06nt5PWBnUgAASDfC0MCEBLrIrRX/yiNrzS6tkjc6NYQJ1i7jovaC++6TjdyNp
DO2aasitXV5TUF1a2TKsoqcWlFO9X6cP5Dwqc81aeFU3ncQNzDcpauXU/5pmF5Jd
2nNaJnuo0uIY43szcpzUHvCNHX7lQZUQulOThW8EspLJZWaPbawvn/tCOL7Vnkko
APr31mGbXOZV5lNNSLuoTn5/bueLP/TkrcpmM9Xw+9Y=
-----END CERTIFICATE-----

View File

@ -1,18 +0,0 @@
欢迎使用微信支付!
附件中的三份文件证书pkcs12格式、证书pem格式、证书密钥pem格式,为接口中强制要求时需携带的证书文件。
证书属于敏感信息,请妥善保管不要泄露和被他人复制。
不同开发语言下的证书格式不同,以下为说明指引:
证书pkcs12格式apiclient_cert.p12
包含了私钥信息的证书文件为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份
部分安全性要求较高的API需要使用该证书来确认您的调用身份
windows上可以直接双击导入系统导入过程中会提示输入证书密码证书密码默认为您的商户号1900006031
证书pem格式apiclient_cert.pem
从apiclient_cert.p12中导出证书部分的文件为pem格式请妥善保管不要泄漏和被他人复制
部分开发语言和环境不能直接使用p12文件而需要使用pem所以为了方便您使用已为您直接提供
您也可以使用openssl命令来自己导出openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem
证书密钥pem格式apiclient_key.pem
从apiclient_cert.p12中导出密钥部分的文件为pem格式
部分开发语言和环境不能直接使用p12文件而需要使用pem所以为了方便您使用已为您直接提供
您也可以使用openssl命令来自己导出openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem
备注说明:
由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件rootca.pem下载

View File

@ -94,7 +94,8 @@ public class GoodsStoreController {
@GetMapping(value = "/get/{id}")
public ResultMessage<GoodsVO> get(@PathVariable String id) {
AuthUser tokenUser = UserContext.getCurrentUser();
GoodsVO goods = goodsService.getGoodsVO(id);
GoodsVO goods = goodsService.getGoodsVOFromDB(id);
assert tokenUser != null;
if (tokenUser.getStoreId().equals(goods.getStoreId())) {
return ResultUtil.data(goods);
}