plf il y a 5 ans
Parent
commit
ee93a1b78d

+ 7 - 0
pay/src/main/java/com/caimei/module/pay/service/PayService.java

@@ -17,11 +17,18 @@ import java.io.IOException;
 public interface PayService {
     /**
      * 收银台数据
+     *
+     * @param orderId 订单id
+     * @return
      */
     JsonModel checkoutCounter(Integer orderId);
 
     /**
      * 线上支付
+     *
+     * @param payment 支付参数对象
+     * @param request
+     * @return
      */
     JsonModel pay(Payment payment, HttpServletRequest request);
 

+ 30 - 15
pay/src/main/java/com/caimei/module/pay/service/impl/PayServiceImpl.java

@@ -5,8 +5,8 @@ import com.caimei.module.base.entity.bo.JsonModel;
 import com.caimei.module.base.entity.bo.Payment;
 import com.caimei.module.base.entity.vo.*;
 import com.caimei.module.pay.dao.PayDao;
-import com.caimei.module.pay.util.*;
 import com.caimei.module.pay.service.PayService;
+import com.caimei.module.pay.util.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -32,12 +32,22 @@ public class PayServiceImpl implements PayService {
     private PayDao payDao;
 
 
-    String merAccount = "aa9aee6a148843a6a9e4ea117df4454b"; // 商户标识
-    //私钥
-    String merKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAM0qCTZFdi1I59/Jeis+8KVhzSNhsRrKiOlHazIVyxNLzUQvFpWN5PlfVKlnJToorURTStfjAv01HD0Z4ZvMauuHhDT0bptiDln928Ld6SzX889X2nsCxl0Q+WzrkFsnT6gotvGnTeQGUgbBV3SQD3IUOwRwxoWYbrZqxtqHFxqRAgMBAAECgYEAvsHx9MMbAToDVmEXtXP8/lh0Cwy/RgDA0d30voni2pslTNtXbVCUcIUBy8y6oVvG1nt3YEmTsuiZy/nvehPT6GV1Gqj8T6lqWQ8KQKsDGlubvh23tzNM90me2TLZEPdNqC5CPRrwYrjght4BXgzu7s2+5FpeYCob1gVNi+w0Jz0CQQD0dXb9Oez+Ybnxb3rCghGWM6cxi8fsqk6MuKaleg53qfXrkgAVH78faeWzRaeSbVOh5+Z9kX5HUeynfM7E/f4nAkEA1tmnvJp4JQaouO1Trzbnkhowjea5daK/tDE8K0hIMHUjAw+c1QTteGOVGBFBHWPkUwkSCd2HKmk4URkp/snMhwJAO32+qF+Jclq8EqqLmHxo5UHKxX7793d2yD5Dp++tR6fgBiUwyfNA4tc1pEwmPLdIbBVwfUyEC70/N39jHoOlbwI/dX6SPJI9IgKCQp+HJEriWQP5iaCjy7E1JVXHkeP1lop4mzPukJAhTbUn1AGbmncGZmKPetWrFYZ1ReR9EtlJAkEA2kBmARWyOTt8fbikImuHr65M+BDgD+2fkuDb5+tqJljNmSqAIRRwcXj1Je6vkzlDJuSw3wlG6iliFtwe0cq7+w=="; // 商户密钥
-    //公钥
+    /**
+     * 商户标识
+     */
+    String merAccount = "aa9aee6a148843a6a9e4ea117df4454b";
+    /**
+     * 私钥,商户密钥
+     */
+    String merKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAM0qCTZFdi1I59/Jeis+8KVhzSNhsRrKiOlHazIVyxNLzUQvFpWN5PlfVKlnJToorURTStfjAv01HD0Z4ZvMauuHhDT0bptiDln928Ld6SzX889X2nsCxl0Q+WzrkFsnT6gotvGnTeQGUgbBV3SQD3IUOwRwxoWYbrZqxtqHFxqRAgMBAAECgYEAvsHx9MMbAToDVmEXtXP8/lh0Cwy/RgDA0d30voni2pslTNtXbVCUcIUBy8y6oVvG1nt3YEmTsuiZy/nvehPT6GV1Gqj8T6lqWQ8KQKsDGlubvh23tzNM90me2TLZEPdNqC5CPRrwYrjght4BXgzu7s2+5FpeYCob1gVNi+w0Jz0CQQD0dXb9Oez+Ybnxb3rCghGWM6cxi8fsqk6MuKaleg53qfXrkgAVH78faeWzRaeSbVOh5+Z9kX5HUeynfM7E/f4nAkEA1tmnvJp4JQaouO1Trzbnkhowjea5daK/tDE8K0hIMHUjAw+c1QTteGOVGBFBHWPkUwkSCd2HKmk4URkp/snMhwJAO32+qF+Jclq8EqqLmHxo5UHKxX7793d2yD5Dp++tR6fgBiUwyfNA4tc1pEwmPLdIbBVwfUyEC70/N39jHoOlbwI/dX6SPJI9IgKCQp+HJEriWQP5iaCjy7E1JVXHkeP1lop4mzPukJAhTbUn1AGbmncGZmKPetWrFYZ1ReR9EtlJAkEA2kBmARWyOTt8fbikImuHr65M+BDgD+2fkuDb5+tqJljNmSqAIRRwcXj1Je6vkzlDJuSw3wlG6iliFtwe0cq7+w==";
+    /**
+     * 公钥
+     */
     String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNKgk2RXYtSOffyXorPvClYc0jYbEayojpR2syFcsTS81ELxaVjeT5X1SpZyU6KK1EU0rX4wL9NRw9GeGbzGrrh4Q09G6bYg5Z/dvC3eks1/PPV9p7AsZdEPls65BbJ0+oKLbxp03kBlIGwVd0kA9yFDsEcMaFmG62asbahxcakQIDAQAB";
-    String merNo = "10001720";//用户编号
+    /**
+     * 用户编号
+     */
+    String merNo = "10001720";
 
     @Override
     public JsonModel checkoutCounter(Integer orderId) {
@@ -76,7 +86,6 @@ public class PayServiceImpl implements PayService {
     }
 
     @Override
-    @Transactional
     public synchronized JsonModel pay(Payment payment, HttpServletRequest request) {
         JsonModel model = JsonModel.newInstance();
         JSONObject result = null;
@@ -101,17 +110,22 @@ public class PayServiceImpl implements PayService {
             return model.error("付款金额错误");
         }
         try {
-            long time = System.currentTimeMillis() / 1000; // 时间戳
-            String orderId = order.getOrderNo() + "#" + time; // 商户订单号
-            String product = "采美订单" + order.getOrderNo(); //商品名称
+            // 时间戳
+            long time = System.currentTimeMillis() / 1000;
+            // 商户订单号
+            String orderId = order.getOrderNo() + "#" + time;
+            //商品名称
+            String product = "采美订单" + order.getOrderNo();
             String userType = "ENTERPRISE";
-            String userIp = IPUtil.getIpAddr(request);//用户IP地址
+            //用户IP地址
+            String userIp = IPUtil.getIpAddr(request);
             JSONObject json = new JSONObject();
             json.put("merAccount", merAccount);
             json.put("merNo", merNo);
             json.put("orderId", orderId);
             json.put("time", time);
-            json.put("amount", payment.getPayAmount());//支付金额
+            //支付金额
+            json.put("amount", payment.getPayAmount());
             json.put("product", product);
             json.put("payWay", payment.getPayWay());
             json.put("payType", payment.getPayType());
@@ -150,7 +164,7 @@ public class PayServiceImpl implements PayService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public String paymentCallback(String data) throws Exception {
         //公钥解密
         JSONObject json = PayUtils.decryptDataPublic(data, publicKey);
@@ -283,7 +297,8 @@ public class PayServiceImpl implements PayService {
         if (null == order) {
             return model.error("订单不存在");
         }
-        long time = System.currentTimeMillis() / 1000; // 时间戳
+        // 时间戳
+        long time = System.currentTimeMillis() / 1000;
         String linkLogo = RandomCodeGenerator.generateCodeString(4);
         try {
             linkLogo = Md5Util.MD5To16Bit(linkLogo + time);
@@ -294,7 +309,7 @@ public class PayServiceImpl implements PayService {
         Date date = new Date();
         GregorianCalendar calendar = new GregorianCalendar();
         calendar.setTime(date);
-        calendar.add(calendar.DATE, 1);
+        calendar.add(Calendar.DATE, 1);
         orderPayLink.setGenerateTime(date);
         orderPayLink.setEffectiveTime(calendar.getTime());
         orderPayLink.setPayStatus("0");