puzhibing
2023-06-01 aad87bdfab3ef685a27b3540b1114b36059c8cc7
提交数据库
9个文件已修改
1个文件已添加
8380 ■■■■ 已修改文件
super_save_driving.sql 8184 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/RechargeRecordMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/RechargeRecord.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/MallBook/config/ChannelConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/MallBook/model/QueryOrder.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user/guns-admin/src/main/resources/application.yml 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
super_save_driving.sql
Diff too large
user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java
@@ -22,10 +22,7 @@
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
@@ -314,25 +311,16 @@
    @ResponseBody
    @PostMapping("/base/appUser/rechargeBalanceCallback")
//    @ServiceLog(name = "余额充值回调", url = "/base/appUser/rechargeBalanceCallback")
    public void rechargeBalanceCallback(HttpServletRequest request, HttpServletResponse response){
    public void rechargeBalanceCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response){
        try {
            String code = request.getParameter("code");
            String version = request.getParameter("version");
            String msg = request.getParameter("msg");
            String date = request.getParameter("date");
            String result = request.getParameter("result");
            String sign = request.getParameter("sign");
            InterfaceResponse interfaceResponse = new InterfaceResponse();
            interfaceResponse.setCode(code);
            interfaceResponse.setVersion(version);
            interfaceResponse.setMsg(msg);
            interfaceResponse.setDate(date);
            interfaceResponse.setResult(result);
            interfaceResponse.setSign(sign);
            // 验签
            boolean verify = RSASignature.validate(interfaceResponse.content(), interfaceResponse.getSign());
            if (verify) {//验签成功业务处理逻辑
                JSONObject jsonObject = JSON.parseObject(result);
                if(!"0000".equals(interfaceResponse.getCode())){
                    System.err.println("充值回调异常:" + interfaceResponse.getMsg());
                    return;
                }
                JSONObject jsonObject = JSON.parseObject(interfaceResponse.getResult());
                String merOrderId = jsonObject.getString("merOrderId");
                String orderId = jsonObject.getString("parameter1");
                appUserService.rechargeBalanceCallback(orderId, merOrderId);
user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java
@@ -454,7 +454,7 @@
                        receive.setSplitList(splitList);
                        TrhRequest<Receive> request1 = new TrhRequest();
                        InterfaceResponse execute = request1.execute(receive, Receive.SERVICE_CODE);
                        if(!"0000".equals(execute.getResult())){
                        if(!"0000".equals(execute.getCode())){
                            System.err.println("确认收货" + execute.getMsg());
                        }
                        JSONObject jsonObject = JSON.parseObject(execute.getResult());
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/RechargeRecordMapper.xml
@@ -15,5 +15,6 @@
        <result column="orderNumber" property="orderNumber" />
        <result column="createTime" property="createTime" />
        <result column="agentId" property="agentId" />
        <result column="surplusDividedAmount" property="surplusDividedAmount"/>
    </resultMap>
</mapper>
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/RechargeRecord.java
@@ -76,4 +76,9 @@
     */
    @TableField("agentId")
    private Integer agentId;
    /**
     * 剩余待分账金额
     */
    @TableField("surplusDividedAmount")
    private Double surplusDividedAmount;
}
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java
@@ -16,6 +16,7 @@
import com.supersavedriving.user.modular.system.util.MallBook.model.InterfaceResponse;
import com.supersavedriving.user.modular.system.util.MallBook.model.PaymentOrder;
import com.supersavedriving.user.modular.system.util.MallBook.model.PaymentOrderGood;
import com.supersavedriving.user.modular.system.util.MallBook.model.QueryOrder;
import com.supersavedriving.user.modular.system.util.MallBook.util.TrhRequest;
import com.supersavedriving.user.modular.system.util.PayMoneyUtil;
import com.supersavedriving.user.modular.system.util.RedisUtil;
@@ -322,7 +323,7 @@
        PaymentOrder paymentOrder = new PaymentOrder();
        paymentOrder.setBizOrderId(out_trade_no);
        paymentOrder.setAmount(String.valueOf(amount * 100));
        paymentOrder.setOrderName("余额充值");
        paymentOrder.setOrderName("账户充值");
        paymentOrder.setPayType("WX_MINI");
        paymentOrder.setTransferType("0");
        paymentOrder.setAsynSplitFlag("1");
@@ -331,7 +332,7 @@
        paymentOrder.setTerminalIp(InetAddress.getLocalHost().getHostAddress());
        List<PaymentOrderGood> goodsDetail = new ArrayList<>();
        PaymentOrderGood paymentOrderGood = new PaymentOrderGood();
        paymentOrderGood.setGoodsName("余额充值");
        paymentOrderGood.setGoodsName("账户充值");
        goodsDetail.add(paymentOrderGood);
        paymentOrder.setGoodsDetail(goodsDetail);
        paymentOrder.setFrontUrl("");
@@ -340,7 +341,7 @@
        TrhRequest<PaymentOrder> request = new TrhRequest();
        InterfaceResponse execute = request.execute(paymentOrder, PaymentOrder.SERVICE_CODE);
        if(!"0000".equals(execute.getResult())){
        if(!"0000".equals(execute.getCode())){
            return ResultUtil.error(execute.getMsg());
        }
        JSONObject jsonObject = JSON.parseObject(execute.getResult());
@@ -348,10 +349,72 @@
        if("2".equals(status)){
            return ResultUtil.error("失败");
        }
        if("0".equals(status)){
            return ResultUtil.error("处理中");
        }
        String payCode = jsonObject.getString("payCode");
        if(ToolUtil.isNotEmpty(payCode)){
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        int num = 1;
                        int wait = 0;
                        while (num <= 10){
                            int min = 5000;
                            wait += (min * num);
                            RechargeRecord rechargeRecord1 = rechargeRecordService.selectOne(new EntityWrapper<RechargeRecord>().eq("code", out_trade_no));
                            if(rechargeRecord1.getPayStatus() != 1){
                                return;
                            }
                            QueryOrder queryOrder = new QueryOrder();
                            queryOrder.setOriginalMerOrderId(out_trade_no);
                            queryOrder.setQueryType("1");
                            TrhRequest<QueryOrder> request = new TrhRequest();
                            InterfaceResponse execute1 = request.execute(queryOrder, QueryOrder.SERVICE_CODE);
                            if("0000".equals(execute1.getCode())){
                                JSONObject jsonObject1 = JSON.parseObject(execute1.getResult());
                                String status1 = jsonObject1.getString("status");
                                if("0".equals(status1)){//待处理
                                    Thread.sleep(wait);
                                    num++;
                                }
                                if("1".equals(status1)){//成功
                                    String merOrderId = jsonObject1.getString("merOrderId");
                                    AppUser appUser1 = AppUserServiceImpl.this.selectById(rechargeRecord1.getUserId());
                                    AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
                                    accountChangeDetail.setUserType(1);
                                    accountChangeDetail.setUserId(appUser1.getId());
                                    accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
                                    accountChangeDetail.setChangeType(3);
                                    accountChangeDetail.setType(1);
                                    accountChangeDetail.setCreateTime(new Date());
                                    accountChangeDetail.setExplain("账户充值");
                                    accountChangeDetail.setOldData(appUser1.getAccountBalance());
                                    appUser1.setAccountBalance(appUser1.getAccountBalance() + rechargeRecord1.getAmount());
                                    accountChangeDetail.setNewData(appUser1.getAccountBalance());
                                    AppUserServiceImpl.this.updateById(appUser1);
                                    accountChangeDetailService.saveData(accountChangeDetail);
                                    rechargeRecord1.setPayTime(new Date());
                                    rechargeRecord1.setPayStatus(2);
                                    rechargeRecord1.setOrderNumber(merOrderId);
                                    rechargeRecord1.setSurplusDividedAmount(rechargeRecord1.getAmount());
                                    rechargeRecordService.updateById(rechargeRecord1);
                                    break;
                                }
                                if("2".equals(status1) || 10 == num){//失败
                                    rechargeRecordService.deleteById(rechargeRecord1.getId());
                                    break;
                                }
                            }else{
                                Thread.sleep(wait);
                                num++;
                            }
                        }
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
            }).start();
        }
        return ResultUtil.success(payCode);
    }
@@ -387,6 +450,7 @@
        rechargeRecord1.setPayTime(new Date());
        rechargeRecord1.setPayStatus(2);
        rechargeRecord1.setOrderNumber(transaction_id);
        rechargeRecord1.setSurplusDividedAmount(rechargeRecord1.getAmount());
        rechargeRecordService.updateById(rechargeRecord1);
    }
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java
@@ -104,6 +104,9 @@
    @Autowired
    private IDivisionRecordService divisionRecordService;
    @Value("${wx.appletsAppid}")
    private String appletsAppid;
    @Value("${callbackPath}")
    private String callbackPath;//支付回调网关地址
@@ -886,10 +889,6 @@
        order.setPayMoney(payMoney);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        String out_trade_no = sdf.format(new Date()) + order.getId();
//        ResultUtil weixinpay = payMoneyUtil.weixinpay("代驾服务费", "", out_trade_no, payMoney.toString(), "/base/order/orderPayCallback", "JSAPI", appUser.getOpenid());
//        this.updateById(order);
        PaymentOrder paymentOrder = new PaymentOrder();
        paymentOrder.setBizOrderId(out_trade_no);
@@ -898,7 +897,7 @@
        paymentOrder.setPayType("WX_MINI");
        paymentOrder.setTransferType("0");
        paymentOrder.setAsynSplitFlag("1");
        paymentOrder.setAppid("");
        paymentOrder.setAppid(appletsAppid);
        paymentOrder.setOpenid(appUser.getOpenid());
        paymentOrder.setTerminalIp(InetAddress.getLocalHost().getHostAddress());
        List<PaymentOrderGood> goodsDetail = new ArrayList<>();
@@ -912,7 +911,7 @@
        TrhRequest<PaymentOrder> request = new TrhRequest();
        InterfaceResponse execute = request.execute(paymentOrder, PaymentOrder.SERVICE_CODE);
        if(!"0000".equals(execute.getResult())){
        if(!"0000".equals(execute.getCode())){
            return ResultUtil.error(execute.getMsg());
        }
        JSONObject jsonObject = JSON.parseObject(execute.getResult());
@@ -925,6 +924,24 @@
        }
        String payCode = jsonObject.getString("payCode");
        this.updateById(order);
        new Thread(new Runnable() {
            @Override
            public void run() {
                QueryOrder queryOrder = new QueryOrder();
                /**
                 * 原请求订单号(必填)  字段长度最长:32位
                 */
                queryOrder.setOriginalMerOrderId("202108310351001");
                /**
                 * 1:支付查询 2:退款查询 3:确认收货查询 4:结算查询 5:充值查询 6:转账查询 7:异步分账查询(必填)  字段长度最长:1位
                 */
                queryOrder.setQueryType("1");
                TrhRequest<QueryOrder> request = new TrhRequest();
                request.execute(queryOrder, QueryOrder.SERVICE_CODE);
            }
        }).start();
        return ResultUtil.success(payCode);
    }
@@ -1055,7 +1072,7 @@
            PaymentOrder paymentOrder = new PaymentOrder();
            paymentOrder.setBizOrderId(out_trade_no);
            paymentOrder.setAmount(String.valueOf(payMoney * 100));
            paymentOrder.setAmount(String.valueOf(Double.valueOf(payMoney * 100).intValue()));
            paymentOrder.setOrderName("代驾服务费");
            paymentOrder.setPayType("WX_MINI");
            paymentOrder.setTransferType("0");
@@ -1074,7 +1091,7 @@
            TrhRequest<PaymentOrder> request = new TrhRequest();
            InterfaceResponse execute = request.execute(paymentOrder, PaymentOrder.SERVICE_CODE);
            if(!"0000".equals(execute.getResult())){
            if(!"0000".equals(execute.getCode())){
                return ResultUtil.error(execute.getMsg());
            }
            JSONObject jsonObject = JSON.parseObject(execute.getResult());
@@ -1256,7 +1273,7 @@
        complete.setSplitList(splitList);
        TrhRequest<Complete> request = new TrhRequest();
        InterfaceResponse execute = request.execute(complete, Complete.SERVICE_CODE);
        if(!"0000".equals(execute.getResult())){
        if(!"0000".equals(execute.getCode())){
            return ResultUtil.error(execute.getMsg());
        }
        JSONObject jsonObject = JSON.parseObject(execute.getResult());
@@ -1315,7 +1332,7 @@
                TrhRequest<Transfer> request1 = new TrhRequest();
                InterfaceResponse execute1 = request1.execute(transfer, Transfer.SERVICE_CODE);
                if(!"0000".equals(execute1.getResult())){
                if(!"0000".equals(execute1.getCode())){
                    return ResultUtil.error(execute1.getMsg());
                }
                JSONObject jsonObject1 = JSON.parseObject(execute1.getResult());
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/MallBook/config/ChannelConfig.java
@@ -39,7 +39,7 @@
    static {
        YamlPropertiesFactoryBean yamlProFb = new YamlPropertiesFactoryBean();
        yamlProFb.setResources(new ClassPathResource("application.yaml"));
        yamlProFb.setResources(new ClassPathResource("application.yml"));
        Properties properties = yamlProFb.getObject();
        System.out.println("mallbook 参数配置初始化");
        System.out.println("--------------------------------");
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/MallBook/model/QueryOrder.java
New file
@@ -0,0 +1,31 @@
package com.supersavedriving.user.modular.system.util.MallBook.model;
public class QueryOrder {
    /**业务类型编号,必须和接口文档一致*/
    public static String SERVICE_CODE = "queryOrder";
    /**
     * 原请求订单号
     */
    private String originalMerOrderId;
    /**
     * 查询类型
     */
    private String queryType;
    public String getOriginalMerOrderId() {
        return originalMerOrderId;
    }
    public void setOriginalMerOrderId(String originalMerOrderId) {
        this.originalMerOrderId = originalMerOrderId;
    }
    public String getQueryType() {
        return queryType;
    }
    public void setQueryType(String queryType) {
        this.queryType = queryType;
    }
}
user/guns-admin/src/main/resources/application.yml
@@ -92,10 +92,10 @@
---
alipay:
  appid: 2021001161600393  #应用程序唯一标识
  appPrivateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCEbTcG2wz+kaYDo2YxflpHE59MvKc3rbl6RlBgO6i5GzgphzeRTv5kRWUpSVkKCsbxFvAYLcgFPmm5nY2fz5hCTKiRcYfpUjH/OougUbzYU3ilUc9JqMbmvy7KN+Kv7+kQYCGLvMqlyYPiJ7LrmJLpE/FUcNLDwo6xUmwJSxaF7M4TbD3ZQZdddki1iJp9GihlqehZCMWOBeotEXvPKDEzSEkYlnvHPQaaspVgeesGmlHDuOiZUokENutxpjo7klWe97NA49hXEtI+xlczNGJKdBr0keBX/kSMsnx8kMxYDjh4QTySBaR6zlO4RYPFekWv9QZ2CrfiKCS7AHUpZYZ5AgMBAAECggEAXjCoUPIBHhhOcowIJe/vGlr0lUohzdJ8+GGGzcvhSDf6DF+mwG3lN0C8oU8QS7o6okRkZW46tLAd1u4fS6oGbDHGPBz6RJQ4B4eGxHMe1OcaCsxTmdq4DmuxRhfV3rnPldwqQA/6O01HxtXhxvzwkWOj5SGSZ7a8c5diTIHh9ULd6neUI/rIFC97mH1TeW0uDIxAtyvswz0pIfDhAR+lsOyTg/8qzsIXjpBFG4gAVxhUeUqQA5HzbsFglC08V7ViDk1OEoWi3yIj1CmNdtntJI4cxqLgTK7MNB9udhbN2I9YasuIpZvlAcvPi5R9cYT8vvFBCFGM+i22wtcsQmxdAQKBgQDaD9y6WNmsp+IaAUG3FqbJC8SqwreGIiEflWwVjrd+LuN6yhyr45CobOmhbTz0de8gRJEZKgJZEJcywL1ScrPIC4n1JaG688lk5aR+0Lik5fy1+L6G/CydJoJqlh6KKdwPJmDGpVu/geLJcLkWcYOwL56IL7GK2JI1p607R0x6iQKBgQCbd0n4xG9GkpvW4LDAJiMEhwPu9QcCKIT0mXVXCgMFdWel9bY3+8RSZoziWutaofm9tRHFAqwjbRyOZ+EdckkNsWVkkTnkKGtAhYKgM0GaOwdMFxmvME5WYJ74a5t1jiezDmR3obUBtS2nyQ8CFPUnlimoTR9F6APrth3h8uvwcQKBgFWaCn1AqdrEYNbyjViRVNHxg7fBDohiV3xtjOt9hfzL7VLjipPTlpL3hlNvbZFNxpx1LjyhqCBMif5LeUanbnnmRbbtmeqpDvNDzupVh1Z8TlMlHa4hymW6m1G6MqzsN83es/jnKvgnxd5sGMx9rUN5vhMaHekykVrswu1VVOl5AoGAMDljh7gfMEv/7TqLeT8bM6dR8AivoNrCy0Di5hnj8AiIGzHJ0TnWnxzSbNB5GwcNeew109/NV7vb1MyiRskRoh657eUiiQSEqGIBsAHWQqo2zEKKJA6e7ipQhYyTj3aGGAPJ5FYT2LDDtb0nW6T2ms34pA0wOzYKKU63nEQHLfECgYEAgbbpZJRtPxWB1M/Dg7loguT5O/VUsKefS0JrSD+tJIqYkumH5mejvYW5YEeDdelkvBhAEFUW9JOkzL+1w1g3wz2QQ2aPV/r55cJE3EfOzbwgw6GsO+8UuyiavbFhS3pFZNI0pR5M3u1+SIcLqQCnYLbO11vnEXglB6wjw9/oxPE= #开发者应用私钥
  alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhG03BtsM/pGmA6NmMX5aRxOfTLynN625ekZQYDuouRs4KYc3kU7+ZEVlKUlZCgrG8RbwGC3IBT5puZ2Nn8+YQkyokXGH6VIx/zqLoFG82FN4pVHPSajG5r8uyjfir+/pEGAhi7zKpcmD4iey65iS6RPxVHDSw8KOsVJsCUsWhezOE2w92UGXXXZItYiafRooZanoWQjFjgXqLRF7zygxM0hJGJZ7xz0GmrKVYHnrBppRw7jomVKJBDbrcaY6O5JVnvezQOPYVxLSPsZXMzRiSnQa9JHgV/5EjLJ8fJDMWA44eEE8kgWkes5TuEWDxXpFr/UGdgq34igkuwB1KWWGeQIDAQAB #应用公钥
  alipay_public_key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzmDrvcNvhexu3KkxVS9bemdSn6pyQUFmpyOGMDOirGR+RbmldpH2N9bPegzZynb5+bmRHii4ib31XeoXc7M7r6UsPhmPeLoSBNwpC+Uig0VxPa0hmvHjAl6StArhB3eMib6Zo40nM6eCYZLLZ1kKpI5Ad/APov9uLrbSnoeZsgeRibQix07arvTEsZq6pJavNlA+UBjp65o6Bv0+kfQ65pMTpbu+jRtTzkTj1hoW9PjwlWrY21F1FvN67zDWkTB2LjGFsqan0Qoe4/X8nK3VsDvkjIm/ZQsnQr8ZzfcuTzQPrcZpo3h9DPZoHeiToEfXtyk7E0bQHEmYVpmrvk/IJwIDAQAB #支付宝公钥
  appid: 111  #应用程序唯一标识
  appPrivateKey: 111 #开发者应用私钥
  alipayPublicKey: 111 #应用公钥
  alipay_public_key: 111 #支付宝公钥
---
@@ -136,16 +136,16 @@
#  mallbook 调起接口参数配置
mallbook:
  # pay_url:mallbook接口地址    测试环境: http://ld.mallbook.cn:12000/api   生产环境:https://cloudpay.mallbook.cn/api
  pay_url: http://ld.mallbook.cn:12000/api
  # pay_url:mallbook接口地址    测试环境: https://uat.mallbook.cn/api   生产环境:https://cloudpay.mallbook.cn/api
  pay_url: https://uat.mallbook.cn/api
  # merchant_no 业务系统商户平台编号,需替换为mallbook工作人员提供的商户编号
  merchant_no:  需要替换内容
  merchant_no: HF2023041901
  # version 接口版本号
  version: 1.0.0
  # channel_type 渠道类型 HF:汇付
  channel_type: HF
  # merchant_private_key 商户平台私钥,需要替换成商户平台自己生成的私钥
  merchant_private_key: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIoGARvX6k6rVwuUW6HjAPkzXVntCtDI8q/niGZbeILc5T/noer+UNDECSy9f8T6ENw7tEKWaHOFcicrqgRv+wXeo2hPiJI2iYsUNs6I8ckd8i4uy/PBEDMW78GlnQLAatk0NC44HKjn8cuIHaETKNG2Vk3rwGBzNgDZ/God1L6JAgMBAAECgYBhCsOwzehBk5pJ2+9pLO+8Rm72EQGvtflb0BBI1zst1x2gBr4DOPedMJe6yymQVrmP/rJItvONdV/DRqHtKMZ2Wa4ul/U1mDnAtS/FkpRYBA5FaXV2hNEW11xBLhL5iGk35P23Bzaa0MJw9Vsd0vjeykridIw/PweDyTdeRBwC2QJBANS+iOaKRuf6BRwCKDmBSHOiZmc/kKnpx2f5BD3h+LWEX3JsNxObMbW1SxQIf2/qwqzIoEm/WbWaOyuwtRZkXQ8CQQCmFjTm5l+Ws2LoQgM+5+eLmPyMyRFOu4G8yqsUkhKuANHK/qrsS1GTbv6SN341NijjNYl05e0h6Jq1T9UZmtrnAkEAwTfzmn7H+3RmI5QJ+IBkzzEWFHv05X0/8DyID7QmcKWzEncaZqIzObdYYu983qa2/LqSaahyz68uQnYRYi7xHQJATr3SgPIRuaH8r360iTtrRHzYp2qgYQJ25On1KECEyKgszp/kqzieSVbjLLFQjavKwMXeEGT+AwiDaJibwJLxWwJAXZApORsqGqdxc9FTxt5iiqG2ZP5DTXxc6E+ihmlmoVl9KncgTf9ez0Q0Qz/4KUTPTHNVgzt1nyBxiLtnyzFavA==
  merchant_private_key: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIDGadl1oxP7EJg+/o32vpAMa8cwFevD6xu3FjIh04TOuVTpC9hbAwiyX/9OKQi3nHEISyrtnF6Y49tkmb7X8nDwOahvsyOjgNYp+NtSLAdgPAbd6lv2DPC1lVYYu5IkMz7PRifntROFH6OvE5fpj6GinaFY3TYBjyDcC2VVbq/LAgMBAAECgYATdmlvDWF9Vpe2eubcK+u3N7leXH0jqfOxt6UqJISkcN3/4E0DARZfTR5HJtf60k1ZpAhAT7MvdOoTMYwvFNI2WEFRwND5wBl+OdEN/lyWeISjjg1EnnTLj/azGLgE8Z2q/FodGikqrGrc2tSNIy75afeW2gUTF3DHiwcG76SYeQJBAPOyIzpT3yMfM7iVhjaPfmyxvDXq0cLwiAF0eUbrebPO0EevI+PKYhmN2oRMis6wSJbv+sbkElOXQzDefjw0ieUCQQCHRuFlX9JQYUOoyyirKxpu30uys+ygZqmo4PiKgIaaJJPm2p2o7vzZJANGmkmdwFf2LLzij70InKGvqGTEnvfvAkEAnJOMRuG0sOBPXv3TaiLwW+4mu43QkKvy9txbP9H0NC9ha22AZc+XEEwwZmi3lu109mXifv/zNnot1axe91facQJALExcwQqo32OKeXrVvX+m70m2CzX6NeiIhGHvYcOG0HFL8ZwDZu+j4yN04yjhFISJCXdK/1Icj/ZiyBf3r59zBwJACl7Sya9BcqRo5XJ/A7+T2E3VQT2nIopy0hPRLKWFaOzrCIsn3gcC58KSACXl2QMiG5kp1192QOC26b3o57ZecA==
  # mall_book_public_key mallbook测试环境公钥 不需要替换
  mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD0L2DaHOO8ekhktB6RoHxIcki/0v7OUeOn9tX9VBE+jv6PRjqlZRWL3Qezxz5ADtHEyLv+RFFaceXSep6rWyoQ6DRlvLv5CySUAxAM42LLVe4DI3l/0ccEAIuU5NCpwAAj1zkm2X01DwUCZwymLjlqbDlBvQhpq+1fddtTtA/QLQIDAQAB
  # mall_book_public_key mallbook生产环境公钥  不需要替换