Browse Source

短信验证码调整,解决property文件中中文属性的乱码问题

houweiyu 4 years ago
parent
commit
bd7ffe7067

+ 6 - 3
dinner-application/src/main/resources/application-dev.properties

@@ -45,9 +45,9 @@ wx.paySignKey=CsArBv2NKBoLx27R5TujbmClo5BwIjlr
 wx.tradeType=JSAPI
 #证书名称,对应不同的商户号
 #wx.certName=/cert/apiclient_cert.p12
-wx.certName=/root/user/java/apache-tomcat-8.0.51-platform/apiclient_cert.p12
+wx.certName=/root/user/java/tomcat_dinner_reservation/apiclient_cert.p12
 #支付回调地址
-wx.notifyUrl=https://testshop.4dkankan.com/platform-framework/api/pay/notify
+wx.notifyUrl=https://testshop.4dkankan.com/app/pay/notify
 #获取code的请求地址
 wx.getCode=https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=STAT#wechat_redirect
 #获取Web_access_tokenhttps的请求地址
@@ -61,4 +61,7 @@ wx.refundUrl=https://api.mch.weixin.qq.com/secapi/pay/refund
 #退款查询地址
 wx.refundqueryUrl=https://api.mch.weixin.qq.com/pay/refundquery
 #微信查询订单状态
-wx.orderquery=https://api.mch.weixin.qq.com/pay/orderquery
+wx.orderquery=https://api.mch.weixin.qq.com/pay/orderquery
+
+sms.template.id=SMS_211484043
+sms.common.sign=看店4DKanKan

+ 6 - 3
dinner-application/src/main/resources/application-prod.properties

@@ -41,9 +41,9 @@ wx.paySignKey=CsArBv2NKBoLx27R5TujbmClo5BwIjlr
 wx.tradeType=JSAPI
 #证书名称,对应不同的商户号
 #wx.certName=/cert/apiclient_cert.p12
-wx.certName=/root/user/java/apache-tomcat-8.0.51-platform/apiclient_cert.p12
+wx.certName=/root/user/java/tomcat_dinner_reservation/apiclient_cert.p12
 #支付回调地址
-wx.notifyUrl=https://testshop.4dkankan.com/platform-framework/api/pay/notify
+wx.notifyUrl=https://testshop.4dkankan.com/app/pay/notify
 #获取code的请求地址
 wx.getCode=https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=STAT#wechat_redirect
 #获取Web_access_tokenhttps的请求地址
@@ -57,4 +57,7 @@ wx.refundUrl=https://api.mch.weixin.qq.com/secapi/pay/refund
 #退款查询地址
 wx.refundqueryUrl=https://api.mch.weixin.qq.com/pay/refundquery
 #微信查询订单状态
-wx.orderquery=https://api.mch.weixin.qq.com/pay/orderquery
+wx.orderquery=https://api.mch.weixin.qq.com/pay/orderquery
+
+sms.template.id=SMS_211484043
+sms.common.sign=看店4DKanKan

+ 6 - 3
dinner-application/src/main/resources/application-test.properties

@@ -45,9 +45,9 @@ wx.paySignKey=CsArBv2NKBoLx27R5TujbmClo5BwIjlr
 wx.tradeType=JSAPI
 #证书名称,对应不同的商户号
 #wx.certName=/cert/apiclient_cert.p12
-wx.certName=/root/user/java/apache-tomcat-8.0.51-platform/apiclient_cert.p12
+wx.certName=/root/user/java/tomcat_dinner_reservation/apiclient_cert.p12
 #支付回调地址
-wx.notifyUrl=https://testshop.4dkankan.com/platform-framework/api/pay/notify
+wx.notifyUrl=https://testshop.4dkankan.com/app/pay/notify
 #获取code的请求地址
 wx.getCode=https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=STAT#wechat_redirect
 #获取Web_access_tokenhttps的请求地址
@@ -61,4 +61,7 @@ wx.refundUrl=https://api.mch.weixin.qq.com/secapi/pay/refund
 #退款查询地址
 wx.refundqueryUrl=https://api.mch.weixin.qq.com/pay/refundquery
 #微信查询订单状态
-wx.orderquery=https://api.mch.weixin.qq.com/pay/orderquery
+wx.orderquery=https://api.mch.weixin.qq.com/pay/orderquery
+
+sms.template.id=SMS_211484043
+sms.common.sign=看店4DKanKan

+ 6 - 3
dinner-application/src/main/resources/application-uat.properties

@@ -41,9 +41,9 @@ wx.paySignKey=CsArBv2NKBoLx27R5TujbmClo5BwIjlr
 wx.tradeType=JSAPI
 #证书名称,对应不同的商户号
 #wx.certName=/cert/apiclient_cert.p12
-wx.certName=/root/user/java/apache-tomcat-8.0.51-platform/apiclient_cert.p12
+wx.certName=/root/user/java/tomcat_dinner_reservation/apiclient_cert.p12
 #支付回调地址
-wx.notifyUrl=https://testshop.4dkankan.com/platform-framework/api/pay/notify
+wx.notifyUrl=https://testshop.4dkankan.com/app/pay/notify
 #获取code的请求地址
 wx.getCode=https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=STAT#wechat_redirect
 #获取Web_access_tokenhttps的请求地址
@@ -57,4 +57,7 @@ wx.refundUrl=https://api.mch.weixin.qq.com/secapi/pay/refund
 #退款查询地址
 wx.refundqueryUrl=https://api.mch.weixin.qq.com/pay/refundquery
 #微信查询订单状态
-wx.orderquery=https://api.mch.weixin.qq.com/pay/orderquery
+wx.orderquery=https://api.mch.weixin.qq.com/pay/orderquery
+
+sms.template.id=SMS_211484043
+sms.common.sign=看店4DKanKan

+ 1 - 2
dinner-application/src/main/resources/application.properties

@@ -9,6 +9,7 @@ spring.profiles.active=dev
 #应用名
 spring.application.name=dinner-reservation
 
+spring.http.encoding.enabled=true
 
 mybatis-plus.global-config.db-config.logic-delete-value=1
 mybatis-plus.global-config.db-config.logic-not-delete-value=0
@@ -19,5 +20,3 @@ spring.servlet.multipart.max-file-size= 50MB
 spring.servlet.multipart.max-request-size= 50MB
 
 
-sms.template.id=
-sms.common.sign=

+ 2 - 2
dinner-core/src/main/java/com/fdage/base/entity/TmOrder.java

@@ -43,7 +43,7 @@ public class TmOrder implements Serializable {
     @ApiModelProperty(value = "预订人的名称")
     private String reserveUserName;
 
-    @ApiModelProperty(value = "订单状态: 0->待支付;1->预定成功;2->取消成功;3->取消退款成功;-1->预定失败")
+    @ApiModelProperty(value = "订单状态:0->预定中; 1->预定审核;2->预定成功;3->预定失败;4->取消预定")
     private Integer status;
 
     @TableField(fill = FieldFill.INSERT)
@@ -91,7 +91,7 @@ public class TmOrder implements Serializable {
     private LocalDateTime payTime;
 
 
-    @ApiModelProperty(value = "支付状态:0->未付款;1->付款中;2->已付款;3->退款中;4->退款成功")
+    @ApiModelProperty(value = "支付状态:0->未付款;1->付款中;2->已付款;3->付款失败;4->退款中;5->退款成功;6->退款失败")
     private Integer payStatus;
 
 

+ 33 - 0
dinner-core/src/main/java/com/fdage/base/enums/OrderPayStatusEnum.java

@@ -0,0 +1,33 @@
+package com.fdage.base.enums;
+
+/**
+ * 2 * @Author: Abner
+ * 3 * @Date: 2021/2/20 16:41
+ * 4
+ */
+public enum OrderPayStatusEnum {
+    UNPAID(0 , "未付款"),
+    PAYING(1 , "付款中"),
+    PAY_SUCCESS(2 , "已付款"),
+    PAY_FAIL(3 , "付款失败"),
+    REFUND_ING(4 , "退款中"),
+    REFUND_SUCCESS(5 , "退款成功"),
+    REFUND_FAIL(6 , "退款失败"),
+    ;
+
+    private Integer status;
+    private String desc;
+
+    OrderPayStatusEnum(Integer status, String desc) {
+        this.status = status;
+        this.desc = desc;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+}

+ 32 - 0
dinner-core/src/main/java/com/fdage/base/enums/OrderStatusEnum.java

@@ -0,0 +1,32 @@
+package com.fdage.base.enums;
+
+/**
+ * 2 * @Author: Abner
+ * 3 * @Date: 2021/2/20 16:38
+ * 4
+ */
+public enum  OrderStatusEnum {
+
+    ORDER_ING(0 , "预定中"),
+    ORDER_AUDITED(1 , "预定审核"),
+    ORDER_SUCCESS(2 , "预定成功"),
+    ORDER_FAIL(3 , "预定失败"),
+    ORDER_CANCEL(4 , "预定取消"),
+    ;
+
+    private Integer status;
+    private String desc;
+
+    OrderStatusEnum(Integer status, String desc) {
+        this.status = status;
+        this.desc = desc;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+}

+ 3 - 7
dinner-core/src/main/java/com/fdage/controller/app/AppOrderController.java

@@ -11,6 +11,7 @@ import fdage.back.sdk.base.entity.Result;
 import fdage.back.sdk.base.enums.ResultCodeEnum;
 import fdage.back.sdk.base.exception.CommonBaseException;
 import fdage.back.sdk.core.alibabaUtils.AlibabaSmsService;
+import fdage.back.sdk.utils.ResourceUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -19,7 +20,6 @@ import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.concurrent.TimeUnit;
@@ -42,11 +42,6 @@ public class AppOrderController extends BaseController {
     @Autowired
     private TmOrderServiceImpl tmOrderService;
 
-    @Value("${sms.template.id}")
-    private String smsTemplateId;
-
-    @Value("${sms.common.sign}")
-    private String smsCommonSign;
 
     @GetMapping("/listByUser")
     @ApiOperation(value = "拉取用户所有订单列表")
@@ -135,7 +130,8 @@ public class AppOrderController extends BaseController {
         }
         String code = String.valueOf((int)((Math.random()*9+1)*100000));
         String param = "{\"code\":\"" + code + "\"}";
-        boolean smsResult = AlibabaSmsService.sendSmsWithSignName(phoneNum , param , smsTemplateId , smsCommonSign);
+        boolean smsResult = false;
+        smsResult = AlibabaSmsService.sendSmsWithSignName(phoneNum , param , ResourceUtil.getConfigByName("sms.template.id") , ResourceUtil.getConfigByName("sms.common.sign"));
         if(smsResult){
             log.info("给用户[{}]发送验证码[{}]的短信成功" , phoneNum , code);
             String redisKey = MSG_AUTH_CODE_REDIS_kEY + phoneNum;

+ 12 - 12
dinner-core/src/main/java/com/fdage/controller/app/AppPayController.java

@@ -2,6 +2,8 @@ package com.fdage.controller.app;
 
 import com.fdage.base.dto.WechatRefundApiResult;
 import com.fdage.base.entity.TmOrder;
+import com.fdage.base.enums.OrderPayStatusEnum;
+import com.fdage.base.enums.OrderStatusEnum;
 import com.fdage.base.service.impl.TmOrderServiceImpl;
 import com.fdage.base.utils.DataUtils;
 import com.fdage.base.utils.MapUtils;
@@ -26,6 +28,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.TreeMap;
@@ -58,23 +61,17 @@ public class AppPayController extends BaseController {
         if(null == orderId){
             return Result.failure("缺失订单id");
         }
-
-        //
         TmOrder orderInfo = tmOrderService.getById(orderId);
-
         if (null == orderInfo) {
             return Result.failure("订单不存在");
         }
-
-        if (orderInfo.getPayStatus() != 0 && orderInfo.getPayStatus() != 1) {
-            return Result.failure("订单已支付,请不要重复操作");
+        if(OrderPayStatusEnum.PAY_SUCCESS.getStatus().compareTo(orderInfo.getPayStatus()) == 0){
+            return Result.failure("订单已经支付过了,无需重复支付");
         }
-
         String nonceStr = DataUtils.getRandomString(32);
 
         //https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7&index=3
         Map<Object, Object> resultObj = new TreeMap();
-
         try {
             Map<Object, Object> parame = new TreeMap<Object, Object>();
             parame.put("appid", ResourceUtil.getConfigByName("wx.appId"));
@@ -86,7 +83,7 @@ public class AppPayController extends BaseController {
             // 商户订单编号
             parame.put("out_trade_no", orderInfo.getOrderNo());
             log.info("out_trade_no:" + orderInfo.getOrderNo());
-            Map orderGoodsParam = new HashMap();
+            Map<String , Object> orderGoodsParam = new HashMap();
             orderGoodsParam.put("order_id", orderId);
             // 商品描述
             parame.put("body", "电商-支付");
@@ -120,8 +117,10 @@ public class AppPayController extends BaseController {
                 if (result_code.equalsIgnoreCase("FAIL")) {
                     String err_code = MapUtils.getString("err_code", resultUn);
                     if(StringUtils.equals(err_code , "ORDERPAID")){
-                        //已经支付成功,则
-                        orderInfo.setPayStatus(2);
+                        //之前已经支付成功,但是这次支付失败,则更新订单的支付状态
+                        orderInfo.setPayStatus(OrderPayStatusEnum.PAY_SUCCESS.getStatus());
+                        orderInfo.setUpdateTime(LocalDateTime.now());
+                        orderInfo.setPayTime(LocalDateTime.now());
                         tmOrderService.updateById(orderInfo);
                     }
                     return Result.failure("支付失败," + err_code_des);
@@ -138,7 +137,8 @@ public class AppPayController extends BaseController {
                     // 业务处理
                     orderInfo.setPayId(prepay_id);
                     // 付款中
-                    orderInfo.setPayStatus(0);
+                    orderInfo.setPayStatus(OrderPayStatusEnum.PAYING.getStatus());
+                    orderInfo.setUpdateTime(LocalDateTime.now());
                     tmOrderService.updateById(orderInfo);
                     return Result.success(resultObj);
                 }

+ 1 - 1
pom.xml

@@ -38,7 +38,7 @@
         <dependency>
             <groupId>org.4dage</groupId>
             <artifactId>4dage-back-sdk</artifactId>
-            <version>1.0.2.19-RELEASE</version>
+            <version>1.0.2.20-RELEASE</version>
             <exclusions>
                 <exclusion>
                     <groupId>io.lettuce</groupId>