赵冬冬 hace 4 años
padre
commit
0fe188863b

+ 7 - 0
UtilsDemo-WX/pom.xml

@@ -58,6 +58,13 @@
             <version>${binarywang.weixin.version}</version>
         </dependency>
 
+        <!-- alipay-sdk-java -->
+        <dependency>
+            <groupId>com.alipay.sdk</groupId>
+            <artifactId>alipay-sdk-java</artifactId>
+            <version>3.4.27.ALL</version>
+        </dependency>
+
         <dependency>
             <groupId>io.springfox</groupId>
             <artifactId>springfox-swagger-ui</artifactId>

+ 14 - 13
UtilsDemo-WX/src/main/java/com/example/controller/WechatH5PayController.java

@@ -16,6 +16,7 @@ import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
 import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
 import com.github.binarywang.wxpay.bean.result.WxPayOrderQueryResult;
 import com.github.binarywang.wxpay.bean.result.WxPayRefundQueryResult;
+import com.github.binarywang.wxpay.bean.result.WxPayRefundResult;
 import com.github.binarywang.wxpay.constant.WxPayConstants;
 import com.github.binarywang.wxpay.exception.WxPayException;
 import com.github.binarywang.wxpay.service.WxPayService;
@@ -63,19 +64,14 @@ public class WechatH5PayController extends BaseController {
         String orderId = wxPayFrom.getOrderId();
         String openid = wxPayFrom.getOpenid();
         String tradeType = wxPayFrom.getTradeType();
-        OmsOrder omsOrder = JSON.parseObject(redisUtil.get(OMSORDER + orderId).toString(), OmsOrder.class);
-        Integer status = omsOrder.getStatus();
-        //查询订单是否支付
-        if (status.equals(PayStatusEnum.SUCCESS.getIndex())) {
-            throw new RuntimeException("订单已支付");
-        }
+
         WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
         //随机字符串
         String s = UUIDUtils.randomUUID();
 
         orderRequest.setNonceStr(s);
         //商品描述
-        String productName = omsOrder.getProductName();
+        String productName = "测试商品";
         orderRequest.setBody(productName);
         //商户订单号(支付编号)
 //        GeneratorIdUtils generatorIdUtils = new GeneratorIdUtils();
@@ -85,7 +81,7 @@ public class WechatH5PayController extends BaseController {
         orderRequest.setOutTradeNo(orderId);
         //设置金额
         //data.getTotalPrice();
-        BigDecimal money = omsOrder.getPayAmount();
+        BigDecimal money = new BigDecimal("1");
         //元转成分
         money = money.multiply(new BigDecimal(100));
         int i = money.intValue();
@@ -248,22 +244,27 @@ public class WechatH5PayController extends BaseController {
     public ResponseBase refundOrder(@RequestBody RefundOrder refundOrder) {
         WxPayRefundRequest refundRequest = new WxPayRefundRequest();
         try {
-            OmsOrder omsOrder = JSON.parseObject(redisUtil.get(OMSORDER + refundOrder.getOrderId()).toString(), OmsOrder.class);
-            refundRequest.setOutTradeNo(refundOrder.getOrderId());
             GeneratorIdUtils generatorIdUtils = new GeneratorIdUtils();
             String refundNo = generatorIdUtils.nextId();
+            refundRequest.setOutTradeNo(refundOrder.getOrderId());
             refundRequest.setOutRefundNo(refundNo);
             refundRequest.setRefundDesc(refundOrder.getRefundDesc());
-            refundRequest.setTotalFee(omsOrder.getTotalAmount().intValue());
+            refundRequest.setTotalFee(1);
             refundRequest.setRefundFee(refundRequest.getTotalFee());
             refundRequest.setOpUserId(refundRequest.getMchId());
             refundRequest.setNotifyUrl(wxpayRefundCallBackUrl);
-            wxPayService.refund(refundRequest);
+            WxPayRefundResult refund = wxPayService.refund(refundRequest);
+            String errCode = refund.getReturnCode();
+            String returnMsg = refund.getReturnMsg();
+            if("SUCCESS".equals(errCode)){
+                return responseSuccess(success("申请退款成功"));
+            }else{
+                return responseSuccess(error(returnMsg));
+            }
         } catch (WxPayException e) {
             e.printStackTrace();
             return responseError(500, "申请退款异常");
         }
-        return responseSuccess(new ResultVO());
     }
 
 

+ 1 - 0
UtilsDemo-WX/src/main/java/com/example/filter/AuthGlobalFilter.java

@@ -22,6 +22,7 @@ public class AuthGlobalFilter implements WebMvcConfigurer {
         registration.addPathPatterns("/**");                      //所有路径都被拦截
         registration.excludePathPatterns(                         //添加不拦截路径
                 "/wechat/h5/authorize",
+                "/alipay/**",
                 "/wechat/h5/userInfo",
                 "/app/getJsapiTicket",
                 "/wechat/h5/code/{tel}",

+ 17 - 4
UtilsDemo-WX/src/main/resources/application.yml

@@ -21,19 +21,32 @@ wx:
     appId: wxbe90cc7c5233dd84
     mchKey: B5F5A628C91D869F4CA357D2BCD63006
     keyPath: classpath:apiclient_cert.p12
-
+pay:
+  alipay:
+    gatewayUrl: https://openapi.alipay.com/gateway.do
+    appid: 2021002134690665
+    appPrivateKey: MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCUTSVMrNb6D2GOqOm+dx23ZLkpjMXfGH2/9l5GjENUPZXYILlkz0F7Jip57ti7VavPdDgH6szqQ0ebhGleYguOAy1TPcfUWMTVr9rECKgYZJ8qgNfGf54/tRViSiQUHhO0GjeqBVemMm8WhaqhpUqIPVyoRVgvD2iPOSF7jojqYcd3h2s/VQXMAs1HLs6sRC2OIqjUqXOVF9LP3RcaWQtZHQzQq8VKP22tMyRedzS0C2fyogX6Gb5cF1t7WJq6NBputfmuRma+fl4lj3nJUaROKKmZeE3F2fJ0/vdcarVmxcxxT74ubHjc538CNG4QLLKB1nRHW6AbVxgOziYcNCVZAgMBAAECggEAV3I18ERqbwDq0aggTEMIrr8hv7JWavqSC8NGS+shOGcoGE0ThLIBNpCGs2d3PN+Dc8xfzatSMUCC1Nz7FMBTd+W/sDnZvwio6CfNo5JHLDsI75MRqOZPddldRpvZMlOZ4rUi5YpI6KMMhgdDWhWRIUytejuJiBZZ3Toe2DBv42Pm3VMTarHVUhRNT4U1yMP9RecB+eEiA7syVAS0BeaWyaEULmrMQq1QBK+DjDEJRjbfPLAAq2bXC37nUsdz7L3NHIkGE1rlMUqzpRNerb1v6Tr7DpJM0G4hYPPz9TesBO6wfj95jxwcWkQJAWMb6etjS2IMZzps5xZZ0OY+BRE6QQKBgQDF/uDf/+XBRtimouRjBNnnXxQzlmhuylyB6SfoQ/eg/JC0XYMeUA3L8WVXIjgZovyh+/DRdtGBu9VJcSEVK7U4iKyP5LbxPLT7IIv0BhnWR3AOO1Fmg6ICImCwbNWXAuRzM5LAFKH4RhjYy3fEMf5vW0YzVuYWNcuHQ01p2+2rfQKBgQC/v1XMeZBI0EAEHZwUYcrY0BWxXKdGvY3U0J1Vj4iFu5k2MN3oyhADmuVo/ocyp7MUYABffzsu9sMZNbVsdiHcc3Gqrdz9SHHvrIrgniwwBpiRjZn2h7Q68q+FfZbcAgfXVx+zMw8wftmmoNyjbAfbtZ5uggWisGUBLd04t9cwDQKBgBk8SCsksYL15a0ve86HEsLjom6E0CC22B2SuwxmhUxWhJcIiCq351pEFTeK2/2ggXSf6Oy5qTBQ4Xlv2tiY7osbGGtqqkqLA0IyvsPGd0qRZl3Z/6ECTAbbnNk/teV+b+GjBCRJPO+o94fCPyyZdqV4y7TFcaQJDTzbPiWs61j9AoGAakU+5h6RqulQMXe/o0Q3ykY5X508UGaKDuK38E2mmofIeFJJCtXCXl0gvDok8BwlkitKyaKYSIUWyAgOTtiCF84btz649d+K1gzIw4imcM+XC0RxikLXzrvmL5PVYoX1lpGAzi6EQpprQoBxCFm9WTWlYxXIzcv5jte+fcrWBpkCgYBMxaic+p0jtACmJjeZ4/HgZLeWwbfd0XI0EiUu8Inm+9A7bkgoUkLAM3HYYU4AUpJ6Kbrfgaq/zLpPql2wVxCu1t3nkKxeTpjF9TSUkTt1R8O7b43GYxfPnFuYq7dYGtJUjO/UgDTuK2le94fSAYinZSpLsF4wgqNj+1X9QSQxnQ==
+    alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8i5E2MIoNxz/jWEvLBEfcCl+5ToqW3JaByUVjoG7KKnDDTktDWped/P/Nb7l9CyHCC9knAEnaAM2BS7Xb8QMBCa+avLXMi3lxg7poiiM4pjOEJXFW2LdzzBO/INurnSSWBHIizl74t+fjb1JQoFkWuP8gFkbJB+J6p84p0akI/3q15lnGXak2rtPJVvcNKwAI+p23d4s1AwxltIm1bPcrUqNv5tt2SNLYuKoLIUe2qv/uYcs5ig9bZt+pIWINKgjL+xlF4jVPJszoXTGnybfFjgu4nO+c8BlhUfQasu+uMOqoZZslPqd/aoopgfiFj+gH6AIH3NIG/iZt9iBFs7miQIDAQAB
+    returnUrl: http://wx.hw.hongweisoft.com/wxpaydemoh5#/pages/template/wxCenter/index
+    returnUrlForScan: http://wx.hw.hongweisoft.com/wxpaydemoh5#/pages/template/wxCenter/index
+    notifyUrl: http://wx.hw.hongweisoft.com/wxpaydemoapi/alipay/notify
+    totalAmount: 0.01
+  #商品名
+  subjectName: 啄影佳品
+  #前缀
+  prefixUrl: http://luciar.natapp1.cc
 spring:
   redis:
-    host: 127.0.0.1
+    host: 49.235.127.212
     port: 6379
-    password:
+    password: zdd755
     database: 0
     timeout: 10000
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     username: root
     password: 123456
-    url: jdbc:mysql://localhost:3306/demo?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
+    url: jdbc:mysql://49.235.127.212:3306/pay?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
     type: com.zaxxer.hikari.HikariDataSource
     hikari:
       pool-name: HikariCP