Преглед изворни кода

Merge remote-tracking branch 'origin/master' into matser

吴树波 пре 2 дана
родитељ
комит
974ffd069c

+ 2 - 2
fs-admin/src/main/java/com/fs/his/controller/FsStoreOrderController.java

@@ -401,7 +401,7 @@ public class FsStoreOrderController extends BaseController
      */
     @GetMapping(value = "/{orderId}")
     public R getInfo(@PathVariable("orderId") Long orderId) throws ParseException {
-        FsStoreOrderVO order = fsStoreOrderService.selectFsStoreOrderByOrderIdVO(orderId);
+        FsStoreOrderVO order = fsStoreOrderService.selectFsStoreOrderDetailByOrderId(orderId);
         if (order.getPhone() != null && order.getPhone().length() > 11) {
             order.setPhone(decryptPhoneMk(order.getPhone()));
         } else {
@@ -461,7 +461,7 @@ public class FsStoreOrderController extends BaseController
     @GetMapping("/payment/{orderId}")
     public AjaxResult getPayInfo(@PathVariable("orderId") Long orderId)
     {
-        return AjaxResult.success(fsStoreOrderScrmService.selectFsStorePaymentByOrderId(orderId));
+        return AjaxResult.success(fsStoreOrderService.selectFsStorePaymentByOrderId(orderId));
     }
     /**
      * 获取处方详细信息

+ 7 - 1
fs-admin/src/main/java/com/fs/his/task/Task.java

@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.service.impl.SmsServiceImpl;
+import com.fs.common.utils.CloudHostUtils;
 import com.fs.common.utils.DateUtils;
 import com.fs.common.utils.SecurityUtils;
 import com.fs.company.domain.CompanyMoneyLogs;
@@ -672,7 +673,12 @@ public class Task {
     }
 
     public void addPrescribeImg() throws Exception {
-        List<Long> ids = fsPrescribeService.selectFsPrescribeByPrescribeIdByOrderType();
+        List<Long> ids;
+        if(CloudHostUtils.hasCloudHostName("鸿森堂")){
+            ids = fsPrescribeService.selectFsPrescribeByOrderStatus();
+        } else {
+            ids = fsPrescribeService.selectFsPrescribeByPrescribeIdByOrderType();
+        }
         for (Long id : ids) {
             System.out.println(id);
             fsPrescribeService.PrescribeStoreImg(id);

+ 7 - 0
fs-company/src/main/java/com/fs/user/FsUserAdminController.java

@@ -8,6 +8,7 @@ import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.CloudHostUtils;
 import com.fs.common.utils.ServletUtils;
 import com.fs.company.cache.ICompanyUserCacheService;
 import com.fs.course.domain.FsUserCompanyUser;
@@ -174,6 +175,12 @@ public class FsUserAdminController extends BaseController {
     @PutMapping("/member")
     public AjaxResult editMemberUser(@RequestBody FsUserCompanyUser fsUser)
     {
+        if(CloudHostUtils.hasCloudHostName("叮当国医")){
+            FsUser user = new FsUser();
+            user.setUserId(fsUser.getUserId());
+            user.setPhone(fsUser.getPhone());
+            fsUserService.updateFsUser(user);
+        }
         return toAjax(fsUserCompanyUserService.updateFsUserCompanyUser(fsUser));
     }
 

+ 20 - 0
fs-redis/src/main/java/com/fs/framework/config/RedisConfig.java

@@ -16,6 +16,8 @@ import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSeriali
 import org.springframework.data.redis.serializer.GenericToStringSerializer;
 import org.springframework.data.redis.serializer.StringRedisSerializer;
 
+import java.math.BigDecimal;
+
 /**
  * redis配置
  *
@@ -110,6 +112,24 @@ public class RedisConfig extends CachingConfigurerSupport
         template.afterPropertiesSet();
         return template;
     }
+    @Bean
+    public RedisTemplate<String, BigDecimal> redisTemplateForBigDecimal(RedisConnectionFactory connectionFactory) {
+        RedisTemplate<String, BigDecimal> template = new RedisTemplate<>();
+        template.setConnectionFactory(connectionFactory);
+
+        // 使用StringRedisSerializer来序列化和反序列化redis的key值
+        template.setKeySerializer(new StringRedisSerializer());
+
+        // 使用GenericToStringSerializer保证BigDecimal精度不丢失
+        template.setValueSerializer(new GenericToStringSerializer<>(BigDecimal.class));
+
+        // Hash的key也采用StringRedisSerializer的序列化方式
+        template.setHashKeySerializer(new StringRedisSerializer());
+        template.setHashValueSerializer(new GenericToStringSerializer<>(BigDecimal.class));
+
+        template.afterPropertiesSet();
+        return template;
+    }
 
     @Bean
     public DefaultRedisScript<Long> limitScript()

+ 4 - 0
fs-service/src/main/java/com/fs/course/domain/FsUserCompanyUser.java

@@ -71,5 +71,9 @@ public class FsUserCompanyUser {
      */
     private LocalDateTime createTime;
 
+    /**
+     * 电话号码
+     */
+    private String phone;
 
 }

+ 13 - 0
fs-service/src/main/java/com/fs/his/mapper/FsStoreOrderMapper.java

@@ -378,6 +378,19 @@ public interface FsStoreOrderMapper
             "LEFT JOIN fs_patient pat ON pat.patient_id=p.patient_id  WHERE so.is_del=0  and so.id= #{orderId}")
     FsStoreOrderVO selectFsStoreOrderByOrderIdVO(@Param("orderId") Long orderId);
 
+    @Select("select so.*,st.store_name,us.nick_name,us.phone,p.patient_age,p.patient_gender,p.patient_descs,p.patient_name," +
+            "d.doctor_name,fp.prescribe_code,fd.doctor_name follow_doctor_name,c.company_name,cu.user_name company_user_name,pat.relation  " +
+            "FROM fs_store_order so LEFT JOIN fs_store st ON so.store_id =st.store_id " +
+            "LEFT JOIN fs_user us ON us.user_id=so.user_id " +
+            "LEFT JOIN fs_prescribe p ON p.prescribe_id =so.prescribe_id " +
+            "LEFT JOIN fs_doctor d ON p.doctor_id= d.doctor_id " +
+            "LEFT JOIN fs_prescribe fp on fp.prescribe_id=so.prescribe_id " +
+            "LEFT JOIN company c on c.company_id =so.company_id " +
+            "LEFT JOIN company_user cu on cu.user_id=so.company_user_id " +
+            "LEFT JOIN fs_doctor fd on so.follow_doctor_id =fd.doctor_id " +
+            "LEFT JOIN fs_patient pat ON pat.patient_id=p.patient_id  WHERE so.is_del=0  and so.order_id= #{orderId}")
+    FsStoreOrderVO selectFsStoreOrderDetailByOrderId(@Param("orderId") Long orderId);
+
     @Update("update fs_store_order set status=-3 where order_id=#{orderId}")
     int cancelOrder(Long orderId);
 

+ 5 - 0
fs-service/src/main/java/com/fs/his/service/IFsStoreOrderService.java

@@ -114,6 +114,11 @@ public interface IFsStoreOrderService
 
     FsStoreOrderVO selectFsStoreOrderByOrderIdVO(Long orderId);
 
+    /**
+     * 互医订单详情(之前的的方法被改成了查询商城订单详情了,所以我再加了一个)
+     */
+    FsStoreOrderVO selectFsStoreOrderDetailByOrderId(Long orderId);
+
     List<FsStorePayment> selectFsStorePaymentByOrderId(Long orderId);
 
     int tuiOrder(Long orderId);

+ 5 - 1
fs-service/src/main/java/com/fs/his/service/impl/FsIntegralOrderServiceImpl.java

@@ -70,6 +70,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.sql.Timestamp;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -901,8 +902,11 @@ public class FsIntegralOrderServiceImpl implements IFsIntegralOrderService
             List<FsStorePayment> payments = storePaymentMapper.selectFsStorePaymentByPay(6,fsIntegralOrder.getOrderId());
             if(payments!=null&&payments.size()==1){
                 FsStorePayment payment=payments.get(0);
+
                 V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
-                request.setOrdAmt(payment.getPayMoney().toString());
+                //整数退不了款..要有2位小数
+                request.setOrdAmt(payment.getPayMoney().setScale(2, RoundingMode.DOWN).toString());
+//                request.setOrdAmt(payment.getPayMoney().toString());
                 request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
                 request.setReqSeqId("refund-"+payment.getPayCode());
                 Map<String, Object> extendInfoMap = new HashMap<>();

+ 1 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsPrescribeServiceImpl.java

@@ -789,6 +789,7 @@ public class FsPrescribeServiceImpl implements IFsPrescribeService
 
             FsPrescribe fsPrescribe = new FsPrescribe();
             fsPrescribe.setPrescribeImgStoreUrl(s);
+            fsPrescribe.setPrescribeImgUrl(s);
             fsPrescribe.setPrescribeId(f.getPrescribeId());
             fsPrescribeMapper.updateFsPrescribe(fsPrescribe);
 

+ 5 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java

@@ -1273,6 +1273,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
         return fsStoreOrderMapper.selectFsStoreOrderByOrderIdVO(orderId);
     }
 
+    @Override
+    public FsStoreOrderVO selectFsStoreOrderDetailByOrderId(Long orderId) {
+        return fsStoreOrderMapper.selectFsStoreOrderDetailByOrderId(orderId);
+    }
+
     @Override
     public List<FsStorePayment> selectFsStorePaymentByOrderId(Long orderId) {
         FsStoreOrder fsStoreOrder = fsStoreOrderMapper.selectFsStoreOrderByOrderId(orderId);

+ 30 - 16
fs-service/src/main/java/com/fs/his/service/impl/FsStorePaymentServiceImpl.java

@@ -46,6 +46,7 @@ import com.fs.course.service.IFsCourseRedPacketLogService;
 import com.fs.course.service.IFsUserCourseOrderService;
 import com.fs.course.service.IFsUserVipOrderService;
 import com.fs.his.domain.*;
+import com.fs.his.dto.PayConfigDTO;
 import com.fs.his.enums.PaymentMethodEnum;
 import com.fs.his.mapper.*;
 import com.fs.his.param.*;
@@ -1267,22 +1268,35 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService {
             throw new CustomException("用户不存在");
         }
 
-        if (StringUtils.isBlank(payOrderParam.getAppId())) {
-            throw new IllegalArgumentException("appId不能为空");
-        }
-        FsCoursePlaySourceConfig fsCoursePlaySourceConfig = fsCoursePlaySourceConfigMapper.selectCoursePlaySourceConfigByAppId(payOrderParam.getAppId());
-        if (fsCoursePlaySourceConfig == null) {
-            throw new CustomException("未找到appId对应的小程序配置: " + payOrderParam.getAppId());
-        }
-        Long merchantConfigId = fsCoursePlaySourceConfig.getMerchantConfigId();
-        if (merchantConfigId == null || merchantConfigId <= 0) {
-            throw new CustomException("小程序没有配置商户信息");
-        }
-        MerchantAppConfig merchantAppConfig = merchantAppConfigMapper.selectMerchantAppConfigById(fsCoursePlaySourceConfig.getMerchantConfigId());
-        FsPayConfig payConfig =JSON.parseObject(merchantAppConfig.getDataJson(), FsPayConfig.class);
-        payConfig.setType(merchantAppConfig.getMerchantType());
-        payConfig.setAppId(fsCoursePlaySourceConfig.getAppid());
-        logger.debug("支付配置 his.pay: {}", payConfig);
+        FsPayConfig payConfig=new FsPayConfig();
+        //支付宝可以不需要appid(在没有appid的情况下)【ps:小程序的支付宝没传appid 就G】
+       if (PaymentMethodEnum.ALIPAY==payOrderParam.getPaymentMethod() && StringUtils.isBlank(payOrderParam.getAppId())){
+           String json = configService.selectConfigByKey("his.pay");
+           PayConfigDTO payConfigDTO = JSONUtil.toBean(json, PayConfigDTO.class);
+           payConfig.setType(payConfigDTO.getType());
+       }else {
+           if (StringUtils.isBlank(payOrderParam.getAppId())) {
+               throw new IllegalArgumentException("appId不能为空");
+           }
+           FsCoursePlaySourceConfig fsCoursePlaySourceConfig = fsCoursePlaySourceConfigMapper.selectCoursePlaySourceConfigByAppId(payOrderParam.getAppId());
+           if (fsCoursePlaySourceConfig == null) {
+               throw new CustomException("未找到appId对应的小程序配置: " + payOrderParam.getAppId());
+           }
+           Long merchantConfigId = fsCoursePlaySourceConfig.getMerchantConfigId();
+           if (merchantConfigId == null || merchantConfigId <= 0) {
+               throw new CustomException("小程序没有配置商户信息");
+           }
+
+           MerchantAppConfig merchantAppConfig = merchantAppConfigMapper.selectMerchantAppConfigById(fsCoursePlaySourceConfig.getMerchantConfigId());
+           payConfig =JSON.parseObject(merchantAppConfig.getDataJson(), FsPayConfig.class);
+           payConfig.setType(merchantAppConfig.getMerchantType());
+           payConfig.setAppId(fsCoursePlaySourceConfig.getAppid());
+
+           logger.debug("支付配置 his.pay: {}", payConfig);
+       }
+
+
+
 //        FsPayConfig payConfig = JSONUtil.toBean(json, FsPayConfig.class);
 
         if (isWechatPayment(payOrderParam.getPaymentMethod())) {

+ 6 - 1
fs-service/src/main/java/com/fs/his/service/impl/FsUserServiceImpl.java

@@ -54,6 +54,7 @@ import com.fs.his.param.FsUserParam;
 import com.fs.his.service.IFsUserIntegralLogsService;
 import com.fs.his.service.IFsUserProjectTagService;
 import com.fs.his.service.IFsUserWxService;
+import com.fs.his.utils.PhoneUtil;
 import com.fs.his.vo.FsUserVO;
 import com.fs.his.vo.FsUserExportListVO;
 import com.fs.his.vo.FsUserFollowDoctorVO;
@@ -1240,7 +1241,11 @@ public class FsUserServiceImpl implements IFsUserService {
         item.setStatus(userCompanyUser.getStatus()); // 取项目会员的状态
         Map<Long, CompanyTag> tagMap = companyTagCacheService.queryAllTagMap();
         if (item.getPhone() != null) {
-            item.setPhone(ParseUtils.parsePhone(item.getPhone()));
+            if (item.getPhone().trim().length() == 11){
+                item.setPhone(ParseUtils.parsePhone(item.getPhone()));
+            } else {
+                item.setPhone(PhoneUtil.decryptPhoneMk(item.getPhone()));
+            }
         }
         String userTagByUserId = null;
         if (item.getUserId() != null && item.getCompanyUserId() != null) {

+ 7 - 22
fs-service/src/main/java/com/fs/huifuPay/service/impl/HuiFuServiceImpl.java

@@ -2,6 +2,7 @@ package com.fs.huifuPay.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.fs.common.exception.CustomException;
 import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.spring.SpringUtils;
@@ -158,7 +159,11 @@ public class HuiFuServiceImpl implements HuiFuService {
     public HuiFuRefundResult refund(V2TradePaymentScanpayRefundRequest request) {
         HuiFuRefundResult huiFuRefundResult=null;
         try {
-            doInit(getMerConfig(request.getAppId()));
+            if(ObjectUtils.isNotNull(request.getAppId())){
+                doInit(getMerConfig(request.getAppId()));
+            } else {
+                doInit(getMerConfig());
+            }
             request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
             Map<String, Object> response = doExecute(request);
             String jsonString = JSONObject.toJSONString(response);
@@ -319,27 +324,7 @@ public class HuiFuServiceImpl implements HuiFuService {
         SysConfig sysConfig = sysConfigMapper.selectConfigByConfigKey("his.pay");
         FsPayConfig fsPayConfig = new Gson().fromJson(sysConfig.getConfigValue(), FsPayConfig.class);
 
-//        FsPayConfig fsPayConfig = new FsPayConfig();
-//        fsPayConfig.setAppId("wxc3f0a952b7bc2b94");
-//        fsPayConfig.setHfProductId("KAZX");
-//        fsPayConfig.setHfSysId("6666000149635112");
-//        fsPayConfig.setHuifuId("6666000149635112");
-//        fsPayConfig.setHfRsaPrivateKey("MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCijLcYLMJEe16TS6BtEG9hUezZyYvp2qgpPVGWaaBbb6lud89ILMUC7jyTWufCo2fUQ0nJzYhVlNeMzmGFtg/zFwhkjJIkuCOW+/Koy1ow66Rom8/sNQLb82szHoeklbv17AnD7WJis7cGyy1+3E6jzfaPOB7PTzidK6KyfCWDByOt0JcGe3+6+9+loQFbFRXJ2RpWPQeN72n9FVtSKSvgkGtJNUzh/qBwMPN6ol6xcU/Z2o1sYrRfKC4tcMqccRi/DvvZFJPVlN+YqkJ6lhgAmJg7eZ2fhIgrmzqc96UKp2YUNm+1v8XHCflD9Wv94E6D2JgL4VbF4Zyf+fKYuR7pAgMBAAECggEAfy5UL6ENmuFgHSVF7y+1xdKA2+IbC60ed63XgTVB12jli15Im3MT7ngSg0TUIvERUv4W5MNgkX10rWHo4eKSViPGWE24JuzAQ+j7cuAwwCgPKh4HMAxGIWwyivuvK7JQL1kwRtEccpekc7dS8HhVO0rySBqj2JZmeGrk0HvcKciSWuMjhjT4dJUwSntD07REV6rVjrpQXuvmY40vH88uvHLdH1IcjmJs2yJRNawUNtd+8FvpOCjami7zpB+er+AQ6S2fvpljNqfE5Kadm3MvzBngDdMS3xRvMHfjCifVwFpLP0rLDP6cSn6PJWbkNYQVZi12w8+wb5f7AVlaKXnfdQKBgQDh7VC5+MOqfcUr9h/n2vhFFhQOaGAZCOBc65n8VBj9aRht8ViXFvRrIRmM+QvUbV9/7taFbtAnZXIzu+12T4vnlZv9DTsy6kKloV5923xZ4CpzIVG8crlwJz1wdALeO6M485RtRLjz6nlNKn2m2VJ1d5XFBDhIz5rWUzagPwwpwwKBgQC4L8Eyu6Yn/zQmv8l6rfAsEfUJzfYtojf1PerPYilARtgFuD20cppcOP5oAk2TTX3qaz0Y9atCfL2z2qxtrgKtw2etfhDBmT6l6+pg04SLuyTrVeZ5dxXHt+LRLJnvBbGgnvAM6rSRKdHXT0gfqiRIMw2qIUtndgRr4RK5hqcd4wKBgBYBFh620t/VFhIdC6h6VDnuV4+7rLhje+6w57OCwVhVFxMGMZmtm6qfc6yeSP+sk2OTcINYcp+TqtbNE+i1AKxSjvnLgxuHY2xcViat7OOYCKpj8WEIT3VT7RD5y5m3d0NBvhASZG0lRiE05T4N5pEYT5b7vTuiNLNxMV3UJiwfAoGBAIb2/1QEqwmN+RIX4TSTNnWkpvELSkRAJU8Akwpp/J5MC0mNqzGJ9NB1Nv7SCTRSSV04PaoHgvoSXBPpvgYUx4O6t0MrKG4ktAJzL+jJtcuKU9Bavqrs9znE5mCulRHQE0wGixJ7/dqNUWW7g7coPrPlLTMoeI+UrEK8x7LJF7ZPAoGALHvtu6zzWVeCdELIPUTersVQrH1R3yZuf6rgubg4XFw3meFcd4W8BvXm4EKGRZxdiyZvCtKlkV9u110Rx3RNSbZCOb3MClmkcow8vPIhmyGWIGymAIxr9JcD0p6HogzPvbjRsLh1nFg/+95OL2E353Bp4/oPIgYIfnYNUfD+0gA=");
-//        fsPayConfig.setHfRsaPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjbkiiy2ewzuPsM5uZbAFMJOBWCRRQ2RtH7Dbr9Evbow6IEyvGoen8XKpiuXzapeps3b2eogETHVFQtLooqRHpVRppFKtU1AHZXA7C6wPocfMldJbTykDCowyJwOSYEaFPBjr9cw6dQcBJMIEHj0YWjBPR1dPVzf+y4sUohbrkS/FANBpp24j+Mu0qEqh8TuVuKlvig7jbmXJiJkAmUJ+Tb3Caj20fFTen6juPd3zR/KM3twki06wZZbb4KyCiM/NwozEqJ9PkWSs6rG7aW+BEfzlo3m1a7MlL0vpKNR3f0lbywq09rFAwtA7R2lssWwLMma4LOqtMMqo3yZdv4vObQIDAQAB");
-//        fsPayConfig.setHfRsaPrivateKey("MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCijLcYLMJEe16TS6BtEG9hUezZyYvp2qgpPVGWaaBbb6lud89ILMUC7jyTWufCo2fUQ0nJzYhVlNeMzmGFtg/zFwhkjJIkuCOW+/Koy1ow66Rom8/sNQLb82szHoeklbv17AnD7WJis7cGyy1+3E6jzfaPOB7PTzidK6KyfCWDByOt0JcGe3+6+9+loQFbFRXJ2RpWPQeN72n9FVtSKSvgkGtJNUzh/qBwMPN6ol6xcU/Z2o1sYrRfKC4tcMqccRi/DvvZFJPVlN+YqkJ6lhgAmJg7eZ2fhIgrmzqc96UKp2YUNm+1v8XHCflD9Wv94E6D2JgL4VbF4Zyf+fKYuR7pAgMBAAECggEAfy5UL6ENmuFgHSVF7y+1xdKA2+IbC60ed63XgTVB12jli15Im3MT7ngSg0TUIvERUv4W5MNgkX10rWHo4eKSViPGWE24JuzAQ+j7cuAwwCgPKh4HMAxGIWwyivuvK7JQL1kwRtEccpekc7dS8HhVO0rySBqj2JZmeGrk0HvcKciSWuMjhjT4dJUwSntD07REV6rVjrpQXuvmY40vH88uvHLdH1IcjmJs2yJRNawUNtd+8FvpOCjami7zpB+er+AQ6S2fvpljNqfE5Kadm3MvzBngDdMS3xRvMHfjCifVwFpLP0rLDP6cSn6PJWbkNYQVZi12w8+wb5f7AVlaKXnfdQKBgQDh7VC5+MOqfcUr9h/n2vhFFhQOaGAZCOBc65n8VBj9aRht8ViXFvRrIRmM+QvUbV9/7taFbtAnZXIzu+12T4vnlZv9DTsy6kKloV5923xZ4CpzIVG8crlwJz1wdALeO6M485RtRLjz6nlNKn2m2VJ1d5XFBDhIz5rWUzagPwwpwwKBgQC4L8Eyu6Yn/zQmv8l6rfAsEfUJzfYtojf1PerPYilARtgFuD20cppcOP5oAk2TTX3qaz0Y9atCfL2z2qxtrgKtw2etfhDBmT6l6+pg04SLuyTrVeZ5dxXHt+LRLJnvBbGgnvAM6rSRKdHXT0gfqiRIMw2qIUtndgRr4RK5hqcd4wKBgBYBFh620t/VFhIdC6h6VDnuV4+7rLhje+6w57OCwVhVFxMGMZmtm6qfc6yeSP+sk2OTcINYcp+TqtbNE+i1AKxSjvnLgxuHY2xcViat7OOYCKpj8WEIT3VT7RD5y5m3d0NBvhASZG0lRiE05T4N5pEYT5b7vTuiNLNxMV3UJiwfAoGBAIb2/1QEqwmN+RIX4TSTNnWkpvELSkRAJU8Akwpp/J5MC0mNqzGJ9NB1Nv7SCTRSSV04PaoHgvoSXBPpvgYUx4O6t0MrKG4ktAJzL+jJtcuKU9Bavqrs9znE5mCulRHQE0wGixJ7/dqNUWW7g7coPrPlLTMoeI+UrEK8x7LJF7ZPAoGALHvtu6zzWVeCdELIPUTersVQrH1R3yZuf6rgubg4XFw3meFcd4W8BvXm4EKGRZxdiyZvCtKlkV9u110Rx3RNSbZCOb3MClmkcow8vPIhmyGWIGymAIxr9JcD0p6HogzPvbjRsLh1nFg/+95OL2E353Bp4/oPIgYIfnYNUfD+0gA=");
-//        fsPayConfig.setHfRsaPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjbkiiy2ewzuPsM5uZbAFMJOBWCRRQ2RtH7Dbr9Evbow6IEyvGoen8XKpiuXzapeps3b2eogETHVFQtLooqRHpVRppFKtU1AHZXA7C6wPocfMldJbTykDCowyJwOSYEaFPBjr9cw6dQcBJMIEHj0YWjBPR1dPVzf+y4sUohbrkS/FANBpp24j+Mu0qEqh8TuVuKlvig7jbmXJiJkAmUJ+Tb3Caj20fFTen6juPd3zR/KM3twki06wZZbb4KyCiM/NwozEqJ9PkWSs6rG7aW+BEfzlo3m1a7MlL0vpKNR3f0lbywq09rFAwtA7R2lssWwLMma4LOqtMMqo3yZdv4vObQIDAQAB");
-//        fsPayConfig.setHfPayOnlineNotifyUrl("https://userapp.his.cdwjyyh.com//app/hfPay/payNotifyUrl");
-
-//        FsPayConfig fsPayConfig = new FsPayConfig();
-//        fsPayConfig.setAppId("wxb48fe0acfdc70a92");
-//        fsPayConfig.setHfProductId("KAZX");
-//        fsPayConfig.setHfSysId("6666000173104153");
-//        fsPayConfig.setHuifuId("6666000173104153");
-//        fsPayConfig.setHfRsaPrivateKey("MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCYzLmE2qBlRQbAosIjPxTZwRItgMgOTT99bRYxa3xQhiq2+YPj2R5lOKu5Y74Po43cg5UG8+7z7r4hV2q+sS3DwvnifHrkytXrnwDuW4ijagiMhr0Am9cEP6WqmuCyy8cMS+MtZ8eBCFefXjDsO4zXDk9/jxpywZ59i85q5Ka03S6lJOW+cq7RToEGJoxF1E98UtewbcPL2FxU5eQnte51RiGGly3drAQh+Tbdt8brjycnfR1SAhEFe/cFAOG6zC1XyJwkCfFynpvihA7SGSrTozBvIxg5ylGTx+HiRPDlYBABzWZkZgtvSGF0V7DQy5Tia/kuksOuePXb59MrUyIBAgMBAAECggEALWH44/2vUAS9aa+tq5xLzBUtGfi68ox9A/rHcaw0AxKmUywuwRi2j2fSkUCPrcNtGga215bR7P+G1w5ItRSYvCEH6P4B3jxkZxQVybXEEo0mtt45+plOtoNU6CQSAujFWOCdO9osBiX9KGdobnGNdj5Y3FEbkOPy9+TzTQpWfTcSWXi3qwsWz05jb04NpqV+xAPDIotAGvDIKJ99kH7/ewlyADvI7axj4JJaHnQOU/UcNHX8gtFgPTxf4e+UGLoPz3TRqFkVM9UIgejFilUUbIcwoCl1sLo3tjdoomYzEYxHPVrtk/8YRRUnzcvThSgydDhO+0GLa8qMCYk+XYrPAQKBgQDaTg+AQqRVQHH2KxYwUmfZXj+RfgBbR1L/v0j5NuxKSdxytBZA6K4I4fX8D/o2PXpkKiGaqyLnf5/wQsmj3fxIzXKyZWcU3lgHE7L18NWl6wPqpz5zJwgKstFcZqJ4HXZgSZw9/iNktIS5K6PZUgsGy+QJ0e4SFqKUED/zRoVKUQKBgQCzLxMsA2rl1n9q93PGOLE9bS0uahtpTePKVLn+ceQ/acDdokCf0MtM3uWJd5ti8BWTMECg4JVXIBUrYeLHwVlZMKvijGZRDYGJUF8hfjWU2pTDI6b2+vSQSVWLkyOdznvzUxrhKDbj21lQNPrKqL/nDfWKH/5QfScfjHviEQ7AsQKBgFXQTaObjsG8XY/pDAXevtfhhpeIslcvSF8kMGlWv7fMJQ4p4H2PeaogOPPmy/K6Y/wv25nTIBtkPdjSSDVUM7HioO2jksvPQ0c05Spsi293XMjHCXN2qmCaPlZWOhOBcWEUTojH993EYE/x6ayp5Y+8Yl3B2hXeM/aEFL9qv0ahAoGADaa7fjHwdfxGjt61aletYTGtLIkW94ngneygkvsYWaBz+i6/X62nn36n3DZJl1sVObaGZftWRWIDWt/FSFS5uurTXZo2vVwbD1wZM1MLQAD7LnbL5Ksv8MI1i0G1h/NQTDR7qsXGkMuIXWz74m7C2BafK1vOo1E1ptisI4gLKLECgYBdCCxkf/jCXcsQEs+hmYWm4gvHahvPIDVI5s2qX/hrJsFx6LaorC1iSmwwJQ7zM/AFqwc/NlCGo2NE44MKFPqIp/08fM4Tx2i8BFQQF3G1Y8oAr/xusqJVSI3CHvw2yD6DDgwTOeQ2TD1v3lnOEB6g0JaamTQQ6NQ0iUNRsDXAPQ==");
-//        fsPayConfig.setHfRsaPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuziAvRIul3mwBlEDSMMvi3v83HEebLpEWoBhcqL/Vlg90tjT51lEO4OksGDU08ypESMaby+Rpvw9rRTFBbdm9oZiiKyKrYChoW9s/Tu5gDIt6k1+YP3204/lOz4Pat9hlRetIhDcgbAiChwDWS/+shfdi6vMX31fO5m5oyo1XlwL477pZYykwxalxgXjWHUkyDRvYGDFquLTELSEq+vpQthYwZ0ghamIkxQV7syjNp06bCMzLmnB9jVEilQuDGqRrlDJpLjKqZkkTwp5JJJRJPLIJag0iLZMJjfdHKmTojcd+y9KRUU+KW0OMUeC2T8SBKpz918ioBKJtuzmUD6YNwIDAQAB");
-//        //fsPayConfig.setHfRsaPrivateKey("MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCijLcYLMJEe16TS6BtEG9hUezZyYvp2qgpPVGWaaBbb6lud89ILMUC7jyTWufCo2fUQ0nJzYhVlNeMzmGFtg/zFwhkjJIkuCOW+/Koy1ow66Rom8/sNQLb82szHoeklbv17AnD7WJis7cGyy1+3E6jzfaPOB7PTzidK6KyfCWDByOt0JcGe3+6+9+loQFbFRXJ2RpWPQeN72n9FVtSKSvgkGtJNUzh/qBwMPN6ol6xcU/Z2o1sYrRfKC4tcMqccRi/DvvZFJPVlN+YqkJ6lhgAmJg7eZ2fhIgrmzqc96UKp2YUNm+1v8XHCflD9Wv94E6D2JgL4VbF4Zyf+fKYuR7pAgMBAAECggEAfy5UL6ENmuFgHSVF7y+1xdKA2+IbC60ed63XgTVB12jli15Im3MT7ngSg0TUIvERUv4W5MNgkX10rWHo4eKSViPGWE24JuzAQ+j7cuAwwCgPKh4HMAxGIWwyivuvK7JQL1kwRtEccpekc7dS8HhVO0rySBqj2JZmeGrk0HvcKciSWuMjhjT4dJUwSntD07REV6rVjrpQXuvmY40vH88uvHLdH1IcjmJs2yJRNawUNtd+8FvpOCjami7zpB+er+AQ6S2fvpljNqfE5Kadm3MvzBngDdMS3xRvMHfjCifVwFpLP0rLDP6cSn6PJWbkNYQVZi12w8+wb5f7AVlaKXnfdQKBgQDh7VC5+MOqfcUr9h/n2vhFFhQOaGAZCOBc65n8VBj9aRht8ViXFvRrIRmM+QvUbV9/7taFbtAnZXIzu+12T4vnlZv9DTsy6kKloV5923xZ4CpzIVG8crlwJz1wdALeO6M485RtRLjz6nlNKn2m2VJ1d5XFBDhIz5rWUzagPwwpwwKBgQC4L8Eyu6Yn/zQmv8l6rfAsEfUJzfYtojf1PerPYilARtgFuD20cppcOP5oAk2TTX3qaz0Y9atCfL2z2qxtrgKtw2etfhDBmT6l6+pg04SLuyTrVeZ5dxXHt+LRLJnvBbGgnvAM6rSRKdHXT0gfqiRIMw2qIUtndgRr4RK5hqcd4wKBgBYBFh620t/VFhIdC6h6VDnuV4+7rLhje+6w57OCwVhVFxMGMZmtm6qfc6yeSP+sk2OTcINYcp+TqtbNE+i1AKxSjvnLgxuHY2xcViat7OOYCKpj8WEIT3VT7RD5y5m3d0NBvhASZG0lRiE05T4N5pEYT5b7vTuiNLNxMV3UJiwfAoGBAIb2/1QEqwmN+RIX4TSTNnWkpvELSkRAJU8Akwpp/J5MC0mNqzGJ9NB1Nv7SCTRSSV04PaoHgvoSXBPpvgYUx4O6t0MrKG4ktAJzL+jJtcuKU9Bavqrs9znE5mCulRHQE0wGixJ7/dqNUWW7g7coPrPlLTMoeI+UrEK8x7LJF7ZPAoGALHvtu6zzWVeCdELIPUTersVQrH1R3yZuf6rgubg4XFw3meFcd4W8BvXm4EKGRZxdiyZvCtKlkV9u110Rx3RNSbZCOb3MClmkcow8vPIhmyGWIGymAIxr9JcD0p6HogzPvbjRsLh1nFg/+95OL2E353Bp4/oPIgYIfnYNUfD+0gA=");
-//        //fsPayConfig.setHfRsaPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjbkiiy2ewzuPsM5uZbAFMJOBWCRRQ2RtH7Dbr9Evbow6IEyvGoen8XKpiuXzapeps3b2eogETHVFQtLooqRHpVRppFKtU1AHZXA7C6wPocfMldJbTykDCowyJwOSYEaFPBjr9cw6dQcBJMIEHj0YWjBPR1dPVzf+y4sUohbrkS/FANBpp24j+Mu0qEqh8TuVuKlvig7jbmXJiJkAmUJ+Tb3Caj20fFTen6juPd3zR/KM3twki06wZZbb4KyCiM/NwozEqJ9PkWSs6rG7aW+BEfzlo3m1a7MlL0vpKNR3f0lbywq09rFAwtA7R2lssWwLMma4LOqtMMqo3yZdv4vObQIDAQAB");
-//        fsPayConfig.setHfPayNotifyUrl("https://userapp.baohetangjinyue.cn//app/hfPay/payNotifyUrl");
+
 
         config=fsPayConfig;
         MerConfig merConfig = new MerConfig();