haha 2 years ago
parent
commit
f9ee3d7304

+ 13 - 0
Dockerfile

@@ -0,0 +1,13 @@
+FROM maven:3.6.1 AS compile_stage
+ENV PROJECT_NAME app
+ENV WORK_PATH /opt/$PROJECT_NAME
+COPY settings.xml /root/.m2/settings.xml
+COPY . $WORK_PATH
+RUN cd $WORK_PATH && mvn clean install -DskipTests -DfinalName=$PROJECT_NAME
+
+FROM java:8-jre-alpine
+ENV PROJECT_NAME app
+ENV WORK_PATH /opt/$PROJECT_NAME
+WORKDIR /app
+COPY --from=compile_stage $WORK_PATH/target/${PROJECT_NAME}.jar .
+CMD ["sh", "-c", "java -Xdebug -Xrunjdwp:transport=dt_socket,address=8888,server=y,suspend=n -jar -server /app/${PROJECT_NAME}.jar"]

+ 12 - 6
pom.xml

@@ -89,6 +89,7 @@
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
+            <version>1.18.20</version>
         </dependency>
 
         <dependency>
@@ -104,6 +105,11 @@
             <artifactId>java-jwt</artifactId>
             <version>3.4.0</version>
         </dependency>
+        <dependency>
+            <groupId>org.javassist</groupId>
+            <artifactId>javassist</artifactId>
+            <version>3.23.1-GA</version>
+        </dependency>
 
     </dependencies>
 
@@ -115,10 +121,10 @@
             </plugin>
         </plugins>
     </build>
-    <distributionManagement>
-        <repository>
-            <id>nexus</id>
-            <url>${nexus.repo}</url>
-        </repository>
-    </distributionManagement>
+<!--    <distributionManagement>-->
+<!--        <repository>-->
+<!--            <id>nexus</id>-->
+<!--            <url>${nexus.repo}</url>-->
+<!--        </repository>-->
+<!--    </distributionManagement>-->
 </project>

+ 40 - 0
settings.xml

@@ -0,0 +1,40 @@
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
+					http://maven.apache.org/xsd/settings-1.0.0.xsd">
+    <mirrors>
+        <mirror>
+            <id>aliyunmaven</id>
+            <mirrorOf>central</mirrorOf>
+            <name>阿里云公共仓库</name>
+            <url>https://maven.aliyun.com/repository/public</url>
+        </mirror>
+    </mirrors>
+    <profiles>
+        <profile>
+            <id>nexus</id>
+            <repositories>
+                <repository>
+                    <id>public</id>
+                    <name>Public Repositories</name>
+                    <url>http://nexus.seecoder.cn/repository/maven-public</url>
+                </repository>
+                <repository>
+                    <id>releases</id>
+                    <name>Public Repositories</name>
+                    <url>http://nexus.seecoder.cn/repository/maven-releases</url>
+                </repository>
+            </repositories>
+        </profile>
+    </profiles>
+    <activeProfiles>
+        <activeProfile>nexus</activeProfile>
+    </activeProfiles>
+    <servers>
+        <server>
+            <id>nexus</id>
+            <username>admin</username>
+            <password>NJU67nexus</password>
+        </server>
+    </servers>
+</settings>

+ 8 - 1
src/main/java/com/nju/edu/pay/controller/api/AlipayController.java

@@ -48,8 +48,13 @@ public class AlipayController {
         this.tradeService = tradeService;
     }
 
+    @PostMapping("/testPay")
+    public Response testPay(@RequestBody PayModelDTO payModelDTO){
+        System.out.println("testPay开始");
+        return new SuccessResponse();
+    }
+
     @PostMapping("/pay")
-    @RootAllowed
     public Response pay(@RequestBody PayModelDTO payModelDTO) throws AlipayApiException, IOException {
         Order order=orderService.createOrder(payModelDTO.getUserId(),payModelDTO.getProductId(),payModelDTO.getPlatformType(),payModelDTO.getPrice());
         if (order==null)
@@ -72,6 +77,7 @@ public class AlipayController {
         // 调用SDK生成表单, 并直接将完整的表单html输出到页面
         AlipayTradePagePayResponse alipayTradePagePayResponse=alipayClient.pageExecute(pagePayRequest);
         if (alipayTradePagePayResponse.isSuccess()){
+            System.out.println(alipayTradePagePayResponse.getBody());
             return new SuccessResponse(alipayTradePagePayResponse.getBody());
         }else {
             order.setStatus(OrderStatus.FAILED);
@@ -82,6 +88,7 @@ public class AlipayController {
 
     @RequestMapping("/notify")
     public String notify(HttpServletRequest request) throws AlipayApiException, UnsupportedEncodingException {
+        System.out.println("notify开始");
         // 一定要验签,防止黑客篡改参数
         Map<String, String[]> parameterMap = request.getParameterMap();
         StringBuilder notifyBuild = new StringBuilder("/****************************** alipay notify ******************************/\n");

+ 9 - 4
src/main/java/com/nju/edu/pay/web/AuthenticationInterceptor.java

@@ -28,12 +28,17 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
         if (method.isAnnotationPresent(RootAllowed.class)) {
             RootAllowed rootAllowed = method.getAnnotation(RootAllowed.class);
             if (rootAllowed.required()) {
-                String token=httpServletRequest.getHeader("Authorization").split(" ")[1];
-                if(jwtUtil.verifyToken(token)){
-                    return true;
-                }else{
+                try{
+                    String token=httpServletRequest.getHeader("Authorization").split(" ")[1];
+                    if(jwtUtil.verifyToken(token)){
+                        return true;
+                    }else{
+                        throw new AuthException(401,"权限验证失败");
+                    }
+                }catch (Exception e){
                     throw new AuthException(401,"权限验证失败");
                 }
+
             }
         }
         return true;

+ 16 - 5
src/main/resources/application.yml

@@ -1,13 +1,22 @@
 server:
   port: 8080
 
+#pay:
+#  alipay:
+#    gatewayUrl: https://openapi.alipaydev.com/gateway.do
+#    appid: 2016101800715899
+#    appPrivateKey: MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCHdc0RXQmtoCz0PIvjS84ReVM2QmUTeuJFJQ5y+TDFJaG2eeu+4TpgwzzQ8D4eADaeP2NwoszHJ4cAerkg/Rj5zGqnwP9cLArsHQyP/fTMGFw5rVsli8wyWiUvWnX7j0yIrb58pa/SuULcd9ixC1nT4cDkElJJYNoLn7J0lXUXgzJMRe265wqAxC/F3haThWHOCBjzU2JQJ78jln1ysvZa7pFv+SiWk2uA2TujlnaHHJTrRcdgw7LOqdhF1WluT13Tjqa8CUFkndUCRk68pzWk650/4aRaH1Wj5RDQzmHuiovMvdKXUr3XxDISnDnydoFmk0GXuyc8QJ0QlDmZtW3lAgMBAAECggEAM3fx++fy1nKmwgIDUNCrsn37vQELMJSfRpBm5g6CllXPFOtMRJGFQeDMycKOh42jMwt4uAJTdlQxemAm2T7xb3BZEfZF0Hq3h7Ed5dQjYCzdVdjlaeWtJ3CS8mQXsgZnmQMS/n9hx9o2alhrEBH1BomfZckEVPckwgfioWNsQws7lGG3mKDqZLvqZvUv0xUVqrriILYbMbzTaqFUk0gqzYG5OaqNPiuZ/AkTGl8e+Nr3ZwE8LUodcxsAry6nAzwZqPS1BMhjQ0PmuboHPnacxR0vUctDyO35fVgTlaJmbCi/5RvsYxH1xjy8yg01U5QtiO5BWsG0cF7dvmOFfMOcgQKBgQDGaFxwB2M5XADx4Mr17x8Z7BDiveDmHemFyCEa9YUIB+qpARulvvO0gSBZKnZQFD+74ChBw6r2DhPkYP2+Tx3sbrUvCaOcaqbsZ0pdfpHpRTTzf50eTCj0ZZdl8LY4ET2auNwq7lpKAdq9i0qqd2TkWwc1ywbgc7I/AYMJLpesxQKBgQCux9J2Y1nXMTg+wnv+NZWtbVsuz5K/OmU83lrriOwx+YbLYDJuQ14KQX9iGoUqONGEDZYfgrFYzQqUSqtgi/Y/aJZ/0Edl6wkDVs4UlSGnQhhjF4jdJpZSpto3QE0rmJ0EgnkTDWt24w5Chn8ElIoKYR2WUmI5YGjM7web2VMOoQKBgQCVcTfm/fmD08O2bD4TfffsG34geyqxyWgCZ1pgJvv7r5LVl0sOzcRcekI2RyB0crwKs+0+k7XqvXHIPDIDrS35zu1Tr6v3ffGa8LX3tAUNMh6PJdjfYDgc1YRyuRtXIc1IA+N5xqxlP/5VdFxaB7ILunC02OamGx7wDCB5wwlljQKBgQCtN76etDIasl4S3P6z3vlbarDewLuoJ8CjxZ8IJagokysDLnBslPmDYoxTdwMY6DzFCg4JZqZK4tMkSqh0Q+Ilz4qwW4QXPwussoAFKBO1Ry0SMAXlX1PF0DUeYuzYUyTyjjheKIOjzL2aMt95c5knVj5Td4x/Xsweppq823KUYQKBgQCCsLOdE6LNE6hyQ6thbECXrfaA4lra6PuFKg2np+Sjf1DiYqhrI0fJkSIRzRosNJVUAQl2EujVawRgV3unTJIPn3x5dTWF+hEl5T9ZgRt0esrQ9ttRBf4gbqbwm0jcUqFaElwF3bjQgA1aHx56RSnfVatjgnZmDlzkG4bohtIGFg==
+#    alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1q80QLBdFndav1L4ZAR4dUcKs4MaDZrFGhe3sjrmHQmpWj0CuCgOjQUts4+CI3UKcwoGDK1Nij72Ao+uXqyawbPASu/GaiCBRrjNm9fntv0xxOEZfqoj4Bs0N9d6fp8uldtDgdQuyM4fh+uf/3nJXnA0AiWDLuorVA89nD9cXP9rwsEXt150ShDDRepn7C54U5llgEF51ezLBLhwWtXcBz9OGqKEESvOXhhDyVwk0M4a8MWtIpwub2Yv/It7W/gUYP6yy0x3cUOXDKvBoNLiiuYnSYG7LfwnE5WNNdDg6cIU5vB8+mxYgPCfrcy+ModyfKAfwWcFUQriKwUsgbic6QIDAQAB
+#    notifyUrl: http://pay.seec.seecoder.cn/alipay/notify
+#    sellerId: 2088102180140519
+#
 pay:
   alipay:
-    gatewayUrl: https://openapi.alipaydev.com/gateway.do
-    appid: 2016101800715899
-    appPrivateKey: MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCHdc0RXQmtoCz0PIvjS84ReVM2QmUTeuJFJQ5y+TDFJaG2eeu+4TpgwzzQ8D4eADaeP2NwoszHJ4cAerkg/Rj5zGqnwP9cLArsHQyP/fTMGFw5rVsli8wyWiUvWnX7j0yIrb58pa/SuULcd9ixC1nT4cDkElJJYNoLn7J0lXUXgzJMRe265wqAxC/F3haThWHOCBjzU2JQJ78jln1ysvZa7pFv+SiWk2uA2TujlnaHHJTrRcdgw7LOqdhF1WluT13Tjqa8CUFkndUCRk68pzWk650/4aRaH1Wj5RDQzmHuiovMvdKXUr3XxDISnDnydoFmk0GXuyc8QJ0QlDmZtW3lAgMBAAECggEAM3fx++fy1nKmwgIDUNCrsn37vQELMJSfRpBm5g6CllXPFOtMRJGFQeDMycKOh42jMwt4uAJTdlQxemAm2T7xb3BZEfZF0Hq3h7Ed5dQjYCzdVdjlaeWtJ3CS8mQXsgZnmQMS/n9hx9o2alhrEBH1BomfZckEVPckwgfioWNsQws7lGG3mKDqZLvqZvUv0xUVqrriILYbMbzTaqFUk0gqzYG5OaqNPiuZ/AkTGl8e+Nr3ZwE8LUodcxsAry6nAzwZqPS1BMhjQ0PmuboHPnacxR0vUctDyO35fVgTlaJmbCi/5RvsYxH1xjy8yg01U5QtiO5BWsG0cF7dvmOFfMOcgQKBgQDGaFxwB2M5XADx4Mr17x8Z7BDiveDmHemFyCEa9YUIB+qpARulvvO0gSBZKnZQFD+74ChBw6r2DhPkYP2+Tx3sbrUvCaOcaqbsZ0pdfpHpRTTzf50eTCj0ZZdl8LY4ET2auNwq7lpKAdq9i0qqd2TkWwc1ywbgc7I/AYMJLpesxQKBgQCux9J2Y1nXMTg+wnv+NZWtbVsuz5K/OmU83lrriOwx+YbLYDJuQ14KQX9iGoUqONGEDZYfgrFYzQqUSqtgi/Y/aJZ/0Edl6wkDVs4UlSGnQhhjF4jdJpZSpto3QE0rmJ0EgnkTDWt24w5Chn8ElIoKYR2WUmI5YGjM7web2VMOoQKBgQCVcTfm/fmD08O2bD4TfffsG34geyqxyWgCZ1pgJvv7r5LVl0sOzcRcekI2RyB0crwKs+0+k7XqvXHIPDIDrS35zu1Tr6v3ffGa8LX3tAUNMh6PJdjfYDgc1YRyuRtXIc1IA+N5xqxlP/5VdFxaB7ILunC02OamGx7wDCB5wwlljQKBgQCtN76etDIasl4S3P6z3vlbarDewLuoJ8CjxZ8IJagokysDLnBslPmDYoxTdwMY6DzFCg4JZqZK4tMkSqh0Q+Ilz4qwW4QXPwussoAFKBO1Ry0SMAXlX1PF0DUeYuzYUyTyjjheKIOjzL2aMt95c5knVj5Td4x/Xsweppq823KUYQKBgQCCsLOdE6LNE6hyQ6thbECXrfaA4lra6PuFKg2np+Sjf1DiYqhrI0fJkSIRzRosNJVUAQl2EujVawRgV3unTJIPn3x5dTWF+hEl5T9ZgRt0esrQ9ttRBf4gbqbwm0jcUqFaElwF3bjQgA1aHx56RSnfVatjgnZmDlzkG4bohtIGFg==
-    alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1q80QLBdFndav1L4ZAR4dUcKs4MaDZrFGhe3sjrmHQmpWj0CuCgOjQUts4+CI3UKcwoGDK1Nij72Ao+uXqyawbPASu/GaiCBRrjNm9fntv0xxOEZfqoj4Bs0N9d6fp8uldtDgdQuyM4fh+uf/3nJXnA0AiWDLuorVA89nD9cXP9rwsEXt150ShDDRepn7C54U5llgEF51ezLBLhwWtXcBz9OGqKEESvOXhhDyVwk0M4a8MWtIpwub2Yv/It7W/gUYP6yy0x3cUOXDKvBoNLiiuYnSYG7LfwnE5WNNdDg6cIU5vB8+mxYgPCfrcy+ModyfKAfwWcFUQriKwUsgbic6QIDAQAB
-    notifyUrl: http://pay.seec.seecoder.cn/alipay/notify
+    gatewayUrl: https://openapi-sandbox.dl.alipaydev.com/gateway.do
+    appid: 9021000133688986
+    appPrivateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC7JurPkMO5If5q277CaoTtUvD9K1xu370PnyTTEE2hFGabrg7Fiy1j0kLYocktMXADlvVj8juLIR+m9+Wbx9Mc0tfdYCtoOqNPEQA57RmHgSt/ihiEqnxgq2IIgQZH16BdgLlkG2oOE3fTQ++qmUDgZ6+Bd4+eDOq28WnlyZkjIRj9/RXow7W/mt8w+Y7/AAJSiXNx972043Wgl+E+f6UxMYBT048Ic+T1L2TR9mtZrc45ArT6kxpnO0YAO4Lpt7SP8vvTR0LB0qwMsNmulZAUtu3DG6NErDP3jgAvEOsExDufNIGZSty2CeitxvGYDn/eTifaT1bLOYakksnBrhXdAgMBAAECggEAZJi/oICE5A9krNWfTOtqthJeHQdgsOwsuKfnaFgcEhhgKxA9OmvcIwrTCZS1CUjIl/Vdw7Jh1SAh3mLjlX+sd5LRm1nlGyphu888muZaUZ7Z3b1B/pWRM3kLwdxwns9FkNzvSeL+d8B5KSMcQUwNNlIlYWb92IvC4kETlgNuABYNLCag+JzFcdwIxEsBZscvlCevwEI5EVIToI9P0zIj7q866bhM/Y70HEb2kveqMT6Kes5eEDSIF074kScVByhkLi9XrJNoRCirHBkGyfzMJyMiiTncsVEa74DI7EElib9Qj2W1gX65haLpOm7DbzjEWeKiaEAVMA//mDk9gIPWVQKBgQD/qrFX0b2bA/YUPFDqUQ8ClhFtjiZlGykKhxK8Qv/HAkeNqVtV70GAN/FEmxFgs3e3+Sw+Efa3JdbbgMVW6YIGUBNtJPJvqu4YzyEiPwzwWodTZx23cJwervxPD9HMHqPZPZUoskvtd5bpbBeW5zjDz/BpJ889lfVGXUlpfXWfQwKBgQC7ZV0LdEy0U7K6BVaqLMzBTTbNDczf2lFOf7JbntYVoCn7UknWwqU9HfXvXXlp9WkgSkCwfUkGKDfn1WXzRYzA09JJ3nB2c27rAfDQVTUyLOkQJman7/Sj+hQgfasN0ItL4mMeKRMK6iWnXXmBcHfgCc9OfGon30QJGsilzsJUXwKBgGL2l57+uP4AEojSsB+DMOQ3Ypedpo8MbF5+2mm1JXzLDRdwrsIc0qXnAaUkwR1FWtoDwXRlT7KlGv3sYna5/HKlHF/rJUzERVWlF5ZCAagn4qoOCBqxpDzcTx3rabIxSgsVI1+VZH6PBANmq9rltbtWCiEqH7YfDcom4fvLbHQxAoGAPLXqHvvenc0/6eQw35EEBNvvFR+TcDJahQP51JTw5rCs6S8PnPQSdGpwcsvlud434K4tpv/v2H7PHdyU2ut9XjtBtYzLApUDKj/GtLfmNAs4tnK6b03eBAHQ43XTJPabKkp9she8g5y39jDiXH0DWSHUd6j2+1PpxslWl+EUNCECgYEAsYvG+IJoqJ7luzG34M01t+DUzY4sSp1iJQIf+/rSe/3sd0nYBZbdasASUsKjsIk7QAyCLPiehB6uqq7GH9CH2XilxYi6AHHax5ZvIisd8nbXrtByZcPEu1X7hbTaRbnBy6HepDEPtOyap2UTlANSd6EtPb2jA5Jfh9oz3czRmz4=
+    alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjkh962aaFtsZN81RNmfmc4RON3d2BD2069xQjWfX/PjfUHHsgz0kbura22hJkcvUMsBt3MCki5VPywxH1VZrEFCY20fDB66arUl3RP9xwzLa+9LENXes/R7dcmymlDbtd1Ta/6tvnm9XvxUz6IDFwvlUeGbn5zpZKcl/GWByeVX4R7iIx1yRlTgtA1zl1b8gDPc/cfSunR+Kc3OekvMJd3895hdylpPWGjlBC95D2YbPwKt2a+J/lzo8HIcZ5hKZVzy4VfO+omG9qQjdS762Z7Z/BfUjaBYRyA0Bqw5fYTDEOXo9Hi7Pn+glC9TBAMX5MFGcavOY31fnKruiEMrD8QIDAQAB
+    notifyUrl: http://localhost:8080/alipay/notify
     sellerId: 2088102180140519
 
 spring:
@@ -23,6 +32,8 @@ spring:
     hibernate:
       naming:
         physical-strategy:  org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
+      ddl-auto: create
+    generate-ddl: true
 
 root:
   name: root