1
0
Kaynağa Gözat

Merge branch 'master' of zx/cuspay into master

project 7 yıl önce
ebeveyn
işleme
3b5fb1fbe3

+ 2 - 1
src/main/java/com/emato/cuspay/notify/CusMerchantNotice.java

@@ -84,7 +84,7 @@ public class CusMerchantNotice implements MerchantNotice{
                     noti.setNotiStatue(MerchNoticeDict.NoticeStatus.i_2.getItem()); //通知发送成功
                     noti.setIsStoped(MerchNoticeDict.IsStopStatus.i_1.getItem());//停止通知
                     noticeList.add(noti);
-                    return;
+                    break;
                 }catch (IOException e) {
                     logger.error("商户回调通知异常"+e.getMessage());
                 }
@@ -102,6 +102,7 @@ public class CusMerchantNotice implements MerchantNotice{
             }
         } catch (Exception e) {
             logger.error("更新商户通知数据失败", e);
+            throw new RuntimeException("更新商户通知数据失败",e);
         }
     }
 

+ 8 - 0
src/main/java/com/emato/cuspay/wx/common/MerchNotiBuilder.java

@@ -6,12 +6,18 @@ import com.emato.cuspay.dto.merch.MerchNoti;
 import com.emato.cuspay.dto.merch.MerchPayCfg;
 import com.emato.cuspay.wx.dao.entity.WxCbPayDoc;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
 /**
  * @author zx
  * @version 1.0
  * 2018-05-19 09:02
  */
 public class MerchNotiBuilder {
+
+    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
     /**
      * 默认通知次数
      */
@@ -39,6 +45,8 @@ public class MerchNotiBuilder {
         this.merchNoti.setAllOrderNo(wxCbPay.getOutTradeNo());
         this.merchNoti.setAllPayNo(wxCbPay.getTransactionId());
         this.merchNoti.setAllSubOrderNo(wxCbPay.getSubOrderNo());
+        this.merchNoti.setCreaterSn("1");
+        this.merchNoti.setCreateTime(sdf.format(new Date()));
         return this;
     }
 

+ 2 - 2
src/main/java/com/emato/cuspay/wx/common/WxDict.java

@@ -206,8 +206,8 @@ public abstract class WxDict {
     public enum MerchNoticeStatus {
         i_10("10", "等待海关处理"),
         i_11("11", "海关申报中"),
-        i_12("12", "海关申报失败"),
-        i_13("13", "海关申报成功");
+        i_12("12", "海关申报成功"),
+        i_13("13", "海关申报失败");
 
         private String item;
         private String itemName;

+ 6 - 13
src/main/java/com/emato/cuspay/wx/declare/AbstractCusDeclare.java

@@ -12,8 +12,10 @@ import com.emato.cuspay.dto.merch.MerchNoti;
 import com.emato.cuspay.dto.merch.MerchPayCfg;
 import com.google.common.collect.Maps;
 import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.config.BeanPostProcessor;
 
+import javax.annotation.PostConstruct;
 import java.util.List;
 import java.util.Map;
 
@@ -24,28 +26,19 @@ import java.util.Map;
  * @version 1.0
  * 2018-05-18 14:21
  */
-public abstract class AbstractCusDeclare implements BeanPostProcessor, CusDeclare{
+public abstract class AbstractCusDeclare implements CusDeclare{
 
+    @Autowired
     private MerchPaymentService paymentService;
 
     //商户支付信息缓存
     private Map<String, MerchPayCfg> payCaches = Maps.newHashMap();
 
-    //初始化商户支付配置信息
-    public Object postProcessAfterInitialization(Object bean, String beanName)
-            throws BeansException {
-        if (bean instanceof MerchPaymentService) {
-            this.setPaymentService((MerchPaymentService)bean);
-            this.reloadPayCaches();
-        }
-        return bean;
-    }
 
-    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
-        return bean;
-    }
+
 
     //重新加载缓存
+    @PostConstruct
     private void reloadPayCaches() {
         if (this.paymentService == null)
             throw new NullPointerException("paymentService is null");

+ 17 - 13
src/main/java/com/emato/cuspay/wx/declare/WxCusDeclare.java

@@ -73,9 +73,6 @@ public class WxCusDeclare extends AbstractCusDeclare implements CusDeclare{
     @Autowired
     private MerchNotiService merchNotiService;
 
-    @Autowired
-    private MerchCusService merchCusService;
-
     /**
      * 海关报关接口
      */
@@ -184,7 +181,7 @@ public class WxCusDeclare extends AbstractCusDeclare implements CusDeclare{
                     //通知商户
                     MerchNoti merchNoti = builder.code(WxContants.ERROR_FAIL)
                                     .msg(wxResponseMsgDto.getReturnMsg())
-                                    .cusDeclStatus(WxDict.MerchNoticeStatus.i_12.getItem())
+                                    .cusDeclStatus(WxDict.MerchNoticeStatus.i_13.getItem())
                                     .build();
                     merchNotis.add(merchNoti);
                 }
@@ -212,7 +209,7 @@ public class WxCusDeclare extends AbstractCusDeclare implements CusDeclare{
 
                         MerchNoti merchNoti = builder.code(WxContants.ERROR_FAIL)
                                         .msg("未申报")
-                                        .cusDeclStatus(WxDict.MerchNoticeStatus.i_12.getItem())
+                                        .cusDeclStatus(WxDict.MerchNoticeStatus.i_10.getItem())
                                         .build();
                         merchNotis.add(merchNoti);
                     }
@@ -245,7 +242,7 @@ public class WxCusDeclare extends AbstractCusDeclare implements CusDeclare{
 
                         MerchNoti merchNoti = builder.code(wxResponseMsgDto.getErrCode())
                                 .msg(wxResponseMsgDto.getErrCodeDes())
-                                .cusDeclStatus(WxDict.MerchNoticeStatus.i_13.getItem())
+                                .cusDeclStatus(WxDict.MerchNoticeStatus.i_12.getItem())
                                 .build();
                         merchNotis.add(merchNoti);
                     }
@@ -255,7 +252,7 @@ public class WxCusDeclare extends AbstractCusDeclare implements CusDeclare{
 
                         MerchNoti merchNoti = builder.code(WxContants.ERROR_FAIL)
                                     .msg("海关申报失败")
-                                    .cusDeclStatus(WxDict.MerchNoticeStatus.i_12.getItem())
+                                    .cusDeclStatus(WxDict.MerchNoticeStatus.i_13.getItem())
                                 .build();
                         merchNotis.add(merchNoti);
                     }
@@ -265,7 +262,7 @@ public class WxCusDeclare extends AbstractCusDeclare implements CusDeclare{
 
                         MerchNoti merchNoti = builder.code(WxContants.ERROR_EXCEPT)
                                     .msg("海关接口异常")
-                                    .cusDeclStatus(WxDict.MerchNoticeStatus.i_12.getItem())
+                                    .cusDeclStatus(WxDict.MerchNoticeStatus.i_13.getItem())
                                     .build();
                         merchNotis.add(merchNoti);
                     }
@@ -282,12 +279,12 @@ public class WxCusDeclare extends AbstractCusDeclare implements CusDeclare{
 
                     MerchNoti merchNoti = builder.code(wxResponseMsgDto.getErrCode())
                                 .msg(wxResponseMsgDto.getErrCodeDes())
-                                .cusDeclStatus(WxDict.MerchNoticeStatus.i_12.getItem())
+                                .cusDeclStatus(WxDict.MerchNoticeStatus.i_13.getItem())
                                 .build();
                     merchNotis.add(merchNoti);
                 }
 
-            } catch (IOException e) {
+            } catch (Exception e) {
                 logger.error("数据请求异常的支付单请求数据为xml:"+xml, e);
                 WxPayError wxPayError = createWxPayError(wxCbPayDoc);
                 errors.add(wxPayError);
@@ -316,7 +313,7 @@ public class WxCusDeclare extends AbstractCusDeclare implements CusDeclare{
             }
         } catch (Exception e) {
             logger.error("持久化支付申报异常信息数据失败data:" + errors, e);
-            return;
+            throw new RuntimeException("持久化支付申报异常信息数据失败data:",e);
         }
     }
 
@@ -407,11 +404,13 @@ public class WxCusDeclare extends AbstractCusDeclare implements CusDeclare{
     }
 
     public static void main(String[] args) {
+
+        String queryURL = "https://api.mch.weixin.qq.com/cgi-bin/mch/customs/customdeclarequery";
         WxCbPayDoc wxCbPayDoc = new WxCbPayDoc();
         wxCbPayDoc.setAppid("wx24013b34e349db3c");
         wxCbPayDoc.setMchId("1501125641");
-        wxCbPayDoc.setOutTradeNo("669918012250");
-        wxCbPayDoc.setTransactionId("4200000120201805021020091366");
+        wxCbPayDoc.setOutTradeNo("670219011050");
+        wxCbPayDoc.setTransactionId("4200000137201805171532382342");
         wxCbPayDoc.setCustoms("SHENZHEN");
         wxCbPayDoc.setMchCustomsNo("4403160Z3Y");//中网科技(深圳)有限公司
 
@@ -423,6 +422,11 @@ public class WxCusDeclare extends AbstractCusDeclare implements CusDeclare{
         sorted.put("transaction_id", wxCbPayDoc.getTransactionId());
         sorted.put("customs", wxCbPayDoc.getCustoms());
         sorted.put("mch_customs_no", wxCbPayDoc.getMchCustomsNo());
+        //sorted.put("action_type", "MODIFY ");
+        sorted.put("cert_type", "IDCARD");
+        sorted.put("cert_id", "440301198012261939");
+        sorted.put("name", "司晓峰");
+
 
         //2.生成签名
         StringBuilder sb = new StringBuilder();

+ 6 - 1
src/main/java/com/emato/cuspay/wx/service/impl/WxCbPayDocServiceImpl.java

@@ -77,7 +77,12 @@ public class WxCbPayDocServiceImpl implements WxCbPayDocService {
     }
 
     public int updateWxCbPay(WxCbPayDoc wxCbPayDoc) {
-        return wxCbPayDocMapper.updateByPrimaryKeySelective(wxCbPayDoc);
+        try {
+            return wxCbPayDocMapper.updateByPrimaryKeySelective(wxCbPayDoc);
+        } catch (Exception e) {
+            logger.error("更新支付单数据失败");
+            throw new RuntimeException("更新支付单数据失败");
+        }
     }
 
     public int updateBatch(List<WxCbPayDoc> wxCbPayDocs) {