Kaynağa Gözat

优化代码

Binary Wang 7 yıl önce
ebeveyn
işleme
5231f8c969

+ 17 - 11
weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceAbstractImpl.java

@@ -213,14 +213,13 @@ public abstract class WxPayServiceAbstractImpl implements WxPayService {
 
     String timestamp = String.valueOf(System.currentTimeMillis() / 1000);
     String nonceStr = String.valueOf(System.currentTimeMillis());
-    Object payResult = null;
     switch (request.getTradeType()) {
       case TradeType.NATIVE: {
-        payResult = WxPayNativeOrderResult.builder()
+        return (T) WxPayNativeOrderResult.builder()
           .codeUrl(unifiedOrderResult.getCodeURL())
           .build();
-        break;
       }
+
       case TradeType.APP: {
         // APP支付绑定的是微信开放平台上的账号,APPID为开放平台上绑定APP后发放的参数
         String appId = this.getConfig().getAppId();
@@ -235,7 +234,7 @@ public abstract class WxPayServiceAbstractImpl implements WxPayService {
         configMap.put("noncestr", nonceStr);
         configMap.put("appid", appId);
 
-        payResult = WxPayAppOrderResult.builder()
+        return (T) WxPayAppOrderResult.builder()
           .sign(SignUtils.createSign(configMap, null, this.getConfig().getMchKey(), false))
           .prepayId(prepayId)
           .partnerId(partnerId)
@@ -244,26 +243,33 @@ public abstract class WxPayServiceAbstractImpl implements WxPayService {
           .timeStamp(timestamp)
           .nonceStr(nonceStr)
           .build();
-        break;
       }
+
       case TradeType.JSAPI: {
-        payResult = WxPayMpOrderResult.builder()
+        String signType = SignType.MD5;
+        WxPayMpOrderResult payResult = WxPayMpOrderResult.builder()
           .appId(unifiedOrderResult.getAppid())
           .timeStamp(timestamp)
           .nonceStr(nonceStr)
           .packageValue("prepay_id=" + prepayId)
-          .signType(SignType.MD5)
+          .signType(signType)
           .build();
-        ((WxPayMpOrderResult) payResult)
-          .setPaySign(SignUtils.createSign(payResult, null, this.getConfig().getMchKey(), false));
-        break;
+
+        payResult.setPaySign(
+          SignUtils.createSign(
+            payResult,
+            signType,
+            this.getConfig().getMchKey(),
+            false)
+        );
+        return (T) payResult;
       }
+
       default: {
         throw new WxPayException("该交易类型暂不支持");
       }
     }
 
-    return (T) payResult;
   }
 
   @Override