Ver código fonte

支付失败

chengxiaowen 3 meses atrás
pai
commit
c84f164108

+ 312 - 300
pom.xml

@@ -1,300 +1,312 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <repositories>
-        <repository>
-            <id>aliyun</id>
-            <url>https://maven.aliyun.com/repository/central</url>
-            <releases>
-                <enabled>true</enabled>
-            </releases>
-            <snapshots>
-                <enabled>true</enabled>
-            </snapshots>
-        </repository>
-    </repositories>
-    <pluginRepositories>
-        <pluginRepository>
-            <id>aliyun</id>
-            <url>https://maven.aliyun.com/repository/central</url>
-            <releases>
-                <enabled>true</enabled>
-            </releases>
-            <snapshots>
-                <enabled>true</enabled>
-            </snapshots>
-        </pluginRepository>
-    </pluginRepositories>
-    <groupId>com.poteviohealth.ym</groupId>
-    <artifactId>ipos</artifactId>
-    <version>1.2.0-SNAPSHOT</version>
-    <name>ym-ipos</name>
-    <description>第三方支付</description>
-
-    <properties>
-        <java.version>1.8</java.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <spring-boot.version>2.2.7.RELEASE</spring-boot.version>
-        <spring.cloud.version>Hoxton.SR4</spring.cloud.version>
-        <jwt.version>0.9.1</jwt.version>
-        <mybatis.plus.version>3.3.2</mybatis.plus.version>
-        <org.mapstruct.version>1.3.0.Final</org.mapstruct.version>
-        <swagger.version>2.9.2</swagger.version>
-        <alibaba.fastjson>1.2.73</alibaba.fastjson>
-        <alibaba.druid>1.1.18</alibaba.druid>
-        <knife4j.version>3.0.2</knife4j.version>
-        <xxl-job-core.version>2.2.0</xxl-job-core.version>
-        <skipTests>true</skipTests>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-logging</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.junit.vintage</groupId>
-                    <artifactId>junit-vintage-engine</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <!--mysql驱动[必须],注意8.0.15版本驱动配置和之前版本不一致-->
-        <dependency>
-            <groupId>mysql</groupId>
-            <artifactId>mysql-connector-java</artifactId>
-            <scope>runtime</scope>
-            <version>8.0.11</version>
-        </dependency>
-        <!--JSON处理框架[必需]-->
-        <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>fastjson</artifactId>
-            <version>${alibaba.fastjson}</version>
-        </dependency>
-        <!--连接资源池框架[必需]-->
-        <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>druid-spring-boot-starter</artifactId>
-            <version>${alibaba.druid}</version>
-        </dependency>
-        <!--Swagger2[必需]-->
-        <!--<dependency>-->
-        <!--<groupId>io.springfox</groupId>-->
-        <!--<artifactId>springfox-swagger2</artifactId>-->
-        <!--<version>${swagger.version}</version>-->
-        <!--</dependency>-->
-        <!--<dependency>-->
-        <!--<groupId>io.springfox</groupId>-->
-        <!--<artifactId>springfox-swagger-ui</artifactId>-->
-        <!--<version>${swagger.version}</version>-->
-        <!--</dependency>-->
-        <dependency>
-            <groupId>com.github.xiaoymin</groupId>
-            <artifactId>knife4j-spring-boot-starter</artifactId>
-        </dependency>
-
-        <!--JWT-->
-        <dependency>
-            <groupId>io.jsonwebtoken</groupId>
-            <artifactId>jjwt</artifactId>
-            <version>${jwt.version}</version>
-        </dependency>
-        <!--服务发现客户端-->
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
-        </dependency>
-        <!--服务熔断降级组件-->
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
-        </dependency>
-        <!--Mybatis Plus依赖-->
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>mybatis-plus-boot-starter</artifactId>
-            <version>${mybatis.plus.version}</version>
-        </dependency>
-        <!--Feign依赖-->
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-openfeign</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.mapstruct</groupId>
-            <artifactId>mapstruct</artifactId>
-            <version>${org.mapstruct.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.mapstruct</groupId>
-            <artifactId>mapstruct-processor</artifactId>
-            <version>${org.mapstruct.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <version>3.4</version>
-        </dependency>
-        <dependency>
-            <groupId>com.poteviohealth.cgp</groupId>
-            <artifactId>common</artifactId>
-            <version>1.2.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-logging</groupId>
-            <artifactId>commons-logging</artifactId>
-            <version>1.1.3</version>
-        </dependency>
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <version>1.2.16</version>
-        </dependency>
-        <dependency>
-            <groupId>cn.hutool</groupId>
-            <artifactId>hutool-core</artifactId>
-            <version>5.5.7</version>
-        </dependency>
-        <dependency>
-            <groupId>com.xuxueli</groupId>
-            <artifactId>xxl-job-core</artifactId>
-            <version>${xxl-job-core.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.github.binarywang</groupId>
-            <artifactId>weixin-java-miniapp</artifactId>
-            <version>4.3.0</version>
-        </dependency>
-    </dependencies>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.springframework.cloud</groupId>
-                <artifactId>spring-cloud-dependencies</artifactId>
-                <version>${spring.cloud.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-dependencies</artifactId>
-                <version>${spring-boot.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <dependency>
-                <groupId>com.github.xiaoymin</groupId>
-                <artifactId>knife4j-micro-spring-boot-starter</artifactId>
-                <version>${knife4j.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.github.xiaoymin</groupId>
-                <artifactId>knife4j-spring-boot-starter</artifactId>
-                <version>${knife4j.version}</version>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-    <profiles>
-        <profile>
-            <id>develop</id>
-            <properties>
-                <package.environment>develop</package.environment>
-            </properties>
-            <activation>
-                <activeByDefault>true</activeByDefault>
-            </activation>
-        </profile>
-        <profile>
-            <id>uat</id>
-            <properties>
-                <package.environment>uat</package.environment>
-            </properties>
-        </profile>
-        <profile>
-            <id>production</id>
-            <properties>
-                <package.environment>production</package.environment>
-            </properties>
-        </profile>
-        <profile>
-            <id>zky</id>
-            <properties>
-                <package.environment>zky</package.environment>
-            </properties>
-        </profile>
-    </profiles>
-
-    <build>
-        <resources>
-            <resource>
-                <directory>src/main/resources/${package.environment}</directory>
-                <filtering>true</filtering>
-            </resource>
-            <resource>
-                <directory>src/main/java</directory>
-                <filtering>false</filtering>
-                <includes>
-                    <include>**/xml/*.xml</include>
-                </includes>
-            </resource>
-            <resource>
-                <directory>src/main/resources</directory>
-            </resource>
-        </resources>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.springframework.boot</groupId>
-                    <artifactId>spring-boot-maven-plugin</artifactId>
-                    <version>${spring.boot.version}</version>
-                    <executions>
-                        <execution>
-                            <goals>
-                                <goal>repackage</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>${spring-boot.version}</version>
-                <configuration>
-                    <!--无此配置,devtools不会生效-->
-                    <fork>true</fork>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.5.1</version>
-                <configuration>
-                    <source>1.8</source>
-                    <target>1.8</target>
-                    <encoding>UTF-8</encoding>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <repositories>
+        <repository>
+            <id>aliyun</id>
+            <url>https://maven.aliyun.com/repository/central</url>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+    </repositories>
+    <pluginRepositories>
+        <pluginRepository>
+            <id>aliyun</id>
+            <url>https://maven.aliyun.com/repository/central</url>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </pluginRepository>
+    </pluginRepositories>
+    <groupId>com.poteviohealth.ym</groupId>
+    <artifactId>ipos</artifactId>
+    <version>1.2.0-SNAPSHOT</version>
+    <name>ym-ipos</name>
+    <description>第三方支付</description>
+
+    <properties>
+        <java.version>1.8</java.version>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring-boot.version>2.2.7.RELEASE</spring-boot.version>
+        <spring.cloud.version>Hoxton.SR4</spring.cloud.version>
+        <jwt.version>0.9.1</jwt.version>
+        <mybatis.plus.version>3.3.2</mybatis.plus.version>
+        <org.mapstruct.version>1.3.0.Final</org.mapstruct.version>
+        <swagger.version>2.9.2</swagger.version>
+        <alibaba.fastjson>1.2.73</alibaba.fastjson>
+        <alibaba.druid>1.1.18</alibaba.druid>
+        <knife4j.version>3.0.2</knife4j.version>
+        <xxl-job-core.version>2.2.0</xxl-job-core.version>
+        <skipTests>true</skipTests>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-logging</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.junit.vintage</groupId>
+                    <artifactId>junit-vintage-engine</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <!--mysql驱动[必须],注意8.0.15版本驱动配置和之前版本不一致-->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+            <version>8.0.11</version>
+        </dependency>
+        <!--JSON处理框架[必需]-->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>${alibaba.fastjson}</version>
+        </dependency>
+        <!--连接资源池框架[必需]-->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>${alibaba.druid}</version>
+        </dependency>
+        <!--Swagger2[必需]-->
+        <!--<dependency>-->
+        <!--<groupId>io.springfox</groupId>-->
+        <!--<artifactId>springfox-swagger2</artifactId>-->
+        <!--<version>${swagger.version}</version>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+        <!--<groupId>io.springfox</groupId>-->
+        <!--<artifactId>springfox-swagger-ui</artifactId>-->
+        <!--<version>${swagger.version}</version>-->
+        <!--</dependency>-->
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>knife4j-spring-boot-starter</artifactId>
+        </dependency>
+
+        <!--JWT-->
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt</artifactId>
+            <version>${jwt.version}</version>
+        </dependency>
+        <!--服务发现客户端-->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <!--服务熔断降级组件-->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+        </dependency>
+        <!--Mybatis Plus依赖-->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>${mybatis.plus.version}</version>
+        </dependency>
+        <!--Feign依赖-->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.mapstruct</groupId>
+            <artifactId>mapstruct</artifactId>
+            <version>${org.mapstruct.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.mapstruct</groupId>
+            <artifactId>mapstruct-processor</artifactId>
+            <version>${org.mapstruct.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.4</version>
+        </dependency>
+        <dependency>
+            <groupId>com.poteviohealth.cgp</groupId>
+            <artifactId>common</artifactId>
+            <version>1.2.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+            <version>1.1.3</version>
+        </dependency>
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+            <version>1.2.16</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-core</artifactId>
+            <version>5.5.7</version>
+        </dependency>
+        <dependency>
+            <groupId>com.xuxueli</groupId>
+            <artifactId>xxl-job-core</artifactId>
+            <version>${xxl-job-core.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-miniapp</artifactId>
+            <version>4.3.0</version>
+        </dependency>
+    </dependencies>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring.cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring-boot.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>com.github.xiaoymin</groupId>
+                <artifactId>knife4j-micro-spring-boot-starter</artifactId>
+                <version>${knife4j.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.github.xiaoymin</groupId>
+                <artifactId>knife4j-spring-boot-starter</artifactId>
+                <version>${knife4j.version}</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <profiles>
+        <profile>
+            <id>develop</id>
+            <properties>
+                <package.environment>develop</package.environment>
+            </properties>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+        </profile>
+        <profile>
+            <id>uat</id>
+            <properties>
+                <package.environment>uat</package.environment>
+            </properties>
+        </profile>
+        <profile>
+            <id>production</id>
+            <properties>
+                <package.environment>production</package.environment>
+            </properties>
+        </profile>
+        <profile>
+            <id>zky</id>
+            <properties>
+                <package.environment>zky</package.environment>
+            </properties>
+        </profile>
+        <profile>
+            <id>pre</id>
+            <properties>
+                <package.environment>pre</package.environment>
+            </properties>
+        </profile>
+        <profile>
+            <id>rizhao</id>
+            <properties>
+                <package.environment>rizhao</package.environment>
+            </properties>
+        </profile>
+    </profiles>
+
+    <build>
+        <resources>
+            <resource>
+                <directory>src/main/resources/${package.environment}</directory>
+                <filtering>true</filtering>
+            </resource>
+            <resource>
+                <directory>src/main/java</directory>
+                <filtering>false</filtering>
+                <includes>
+                    <include>**/xml/*.xml</include>
+                </includes>
+            </resource>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-maven-plugin</artifactId>
+                    <version>${spring.boot.version}</version>
+                    <executions>
+                        <execution>
+                            <goals>
+                                <goal>repackage</goal>
+                            </goals>
+                        </execution>
+                    </executions>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot.version}</version>
+                <configuration>
+                    <!--无此配置,devtools不会生效-->
+                    <fork>true</fork>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.5.1</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 31 - 31
src/main/java/com/poteviohealth/ym/ipos/model/payment/PayBarcodeCancelOrder.java

@@ -1,31 +1,31 @@
-package com.poteviohealth.ym.ipos.model.payment;
-
-import com.poteviohealth.ym.ipos.model.base.Base;
-import com.poteviohealth.ym.ipos.model.payment.detail.PayBarcodeRequest;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- *  4.7.支付撤销交易
- *  https://open.wangcaio2o.com/docs/ipos-sa/4.7.md
- * @author Qin
- */
-@Data
-public class PayBarcodeCancelOrder extends Base {
-
-    @ApiModelProperty(value = "请求类型,固定值:barcode_cancel_request",required = true)
-    private String request_type = "barcode_cancel_request";
-
-    @ApiModelProperty(value = "终端号,商户自定义终端号",required = true)
-    private String pos_id;
-
-    @ApiModelProperty(value = "门店号,商户自定义门店号",required = true)
-    private String store_id;
-
-    @ApiModelProperty(value = "操作员标识,操作员号")
-    private String user_id;
-
-
-    @ApiModelProperty(value = "条码支付")
-    private PayBarcodeRequest barcode_cancel_request;
-}
+package com.poteviohealth.ym.ipos.model.payment;
+
+import com.poteviohealth.ym.ipos.model.base.Base;
+import com.poteviohealth.ym.ipos.model.payment.detail.PayQueryDetail;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  4.7.支付撤销交易
+ *  https://open.wangcaio2o.com/docs/ipos-sa/4.7.md
+ * @author Qin
+ */
+@Data
+public class PayBarcodeCancelOrder extends Base {
+
+    @ApiModelProperty(value = "请求类型,固定值:barcode_cancel_request",required = true)
+    private String request_type = "barcode_cancel_request";
+
+    @ApiModelProperty(value = "终端号,商户自定义终端号",required = true)
+    private String pos_id;
+
+    @ApiModelProperty(value = "门店号,商户自定义门店号",required = true)
+    private String store_id;
+
+    @ApiModelProperty(value = "操作员标识,操作员号")
+    private String user_id;
+
+
+    @ApiModelProperty(value = "条码支付")
+    private PayQueryDetail barcode_cancel_request;
+}

+ 361 - 359
src/main/java/com/poteviohealth/ym/ipos/service/impl/PaymentServiceImpl.java

@@ -1,359 +1,361 @@
-package com.poteviohealth.ym.ipos.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.poteviohealth.cgp.common.filter.TokenContext;
-import com.poteviohealth.cgp.common.integrated.order.OrderFeignClient;
-import com.poteviohealth.cgp.common.integrated.order.model.PayInfoAppOutDTO;
-import com.poteviohealth.cgp.common.integrated.order.model.PayReceive;
-import com.poteviohealth.cgp.common.integrated.order.model.RefundReceive;
-import com.poteviohealth.cgp.common.model.VaultsResponse;
-import com.poteviohealth.ym.ipos.common.Basic;
-import com.poteviohealth.ym.ipos.model.BasicConfiguration;
-import com.poteviohealth.ym.ipos.model.payment.*;
-import com.poteviohealth.ym.ipos.model.payment.back.*;
-import com.poteviohealth.ym.ipos.model.payment.detail.*;
-import com.poteviohealth.ym.ipos.model.payment.dto.BindDto;
-import com.poteviohealth.ym.ipos.service.IPaymentRecordsService;
-import com.poteviohealth.ym.ipos.service.IPaymentService;
-import com.poteviohealth.ym.ipos.utils.YmUtil;
-import lombok.extern.log4j.Log4j2;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-
-/**
- * 支付
- * @author Qin
- */
-@Service
-@Log4j2
-public class PaymentServiceImpl implements IPaymentService {
-
-    @Value("${pay.field.ip}")
-    private String ip;
-
-    @Value("${pay.field.url}")
-    private String url;
-
-    @Resource
-    private IPaymentRecordsService paymentRecordsService;
-    @Resource
-    private OrderFeignClient orderFeignClient;
-
-
-    @Override
-    public VaultsResponse bindPos(BindDto dto) {
-        BasicConfiguration basicConfig = Basic.getSystemParameter(TokenContext.cureOperatorId());
-        BindPos pos = new BindPos();
-        pos.setPos_id(dto.getPosId());
-        pos.setSystem_id(basicConfig.getSystemId());
-        pos.setIsspid(basicConfig.getPid());
-        StoreInfo storeInfo = new StoreInfo();
-        storeInfo.setStore_id(dto.getStoreId());
-        storeInfo.setStore_name(dto.getName());
-        pos.setStore_info(storeInfo);
-
-        PayParams payParams = new PayParams();
-        Wxapp app = new Wxapp();
-        app.setMch_id(basicConfig.getMchId());
-        app.setAppid(dto.getAppId());
-        payParams.setWxapp(app);
-        pos.setPay_params(payParams);
-        BindPosBack back = null;
-        try {
-            back = (BindPosBack) YmUtil.resultBack(pos,new BindPosBack());
-        } catch (IllegalAccessException e) {
-            e.printStackTrace();
-            return VaultsResponse.failed(e.getMessage());
-        }
-
-        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
-            return VaultsResponse.success(back.getPos_id());
-        }
-
-        return VaultsResponse.failed(back.getResult().getComment());
-    }
-
-    @Override
-    public VaultsResponse changeBindPos(BindDto dto) {
-        ChangeBindPos pos = new ChangeBindPos();
-        pos.setStore_id(dto.getStoreId());
-        BasicConfiguration basicConfig = Basic.getSystemParameter(TokenContext.cureOperatorId());
-        pos.setSystem_id(basicConfig.getSystemId());
-        pos.setIsspid(basicConfig.getPid());
-        StoreInfoChange storeInfo = new StoreInfoChange();
-        storeInfo.setStore_name(dto.getName());
-        pos.setStore_info(storeInfo);
-        ChangeBingPosBack back = null;
-        try {
-            back = (ChangeBingPosBack) YmUtil.resultBack(pos,new ChangeBingPosBack());
-        } catch (IllegalAccessException e) {
-            e.printStackTrace();
-            return VaultsResponse.failed(e.getMessage());
-        }
-
-        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
-            return VaultsResponse.success(back.getStore_id());
-        }
-
-        return VaultsResponse.failed(back.getResult().getComment());
-
-    }
-
-    @Override
-    public VaultsResponse<PayQueryBack> barcodeQuery(String transactionId) {
-        //此方法暂不可用,没有operatorId
-        //BasicConfiguration basicConfig = Basic.getSystemParameter(records.getOperatorId());
-        PayQuery payQuery = new PayQuery();
-        payQuery.setPos_id(TokenContext.curePosId());
-        payQuery.setStore_id(TokenContext.cureStoreId());
-        PayQueryDetail detail = new PayQueryDetail();
-        detail.setOrg_pos_seq(transactionId);
-        payQuery.setBarcode_query_request(detail);
-        PayQueryBack back = null;
-        try {
-            back = (PayQueryBack) YmUtil.resultBack(payQuery,new PayQueryBack());
-        } catch (IllegalAccessException e) {
-            e.printStackTrace();
-            return VaultsResponse.failed(e.getMessage());
-        }
-
-        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
-            return VaultsResponse.success();
-        }
-
-        return VaultsResponse.failed(back.getResult().getComment());
-    }
-
-    @Override
-    public VaultsResponse barcodeReverse(RefundReceive refundReceive) {
-
-       PaymentRecords paymentRecords = paymentRecordsService.getPaymentRecords(refundReceive.getPayId());
-       if(paymentRecords == null){
-           return VaultsResponse.failed("支付信息未找到");
-       }
-
-        BasicConfiguration basicConfig = Basic.getSystemParameter(refundReceive.getOperatorId());
-        PayReverse payReverse = new PayReverse();
-        payReverse.setSystem_id(basicConfig.getSystemId());
-        payReverse.setIsspid(basicConfig.getPid());
-        payReverse.setPos_id(basicConfig.getCode());
-        payReverse.setStore_id(refundReceive.getOperatorId().toString());
-        payReverse.setPos_seq(refundReceive.getRefundId().toString());
-        PayReverseDetail detail = new PayReverseDetail();
-        detail.setPay_type(paymentRecords.getPayType());
-        detail.setTx_amt(refundReceive.getPrice().toString());
-        detail.setOrg_pos_seq(refundReceive.getPayId().toString());
-        detail.setNotify_url(url+"/payReverseNotify");
-        payReverse.setBarcode_reverse_request(detail);
-        PayReverseBack back = null;
-        try {
-            back = (PayReverseBack) YmUtil.resultBack(payReverse,new PayReverseBack());
-        } catch (IllegalAccessException e) {
-            e.printStackTrace();
-            return VaultsResponse.failed(e.getMessage());
-        }
-
-        if(YmUtil.SUCCESS.equals(back.getResult().getId()) || YmUtil.FAIL.equals(back.getResult().getId())){
-            paymentRecords.setRefundSn(refundReceive.getSn());
-            paymentRecords.setRefundId(refundReceive.getRefundId());
-            paymentRecordsService.updateById(paymentRecords);
-            return VaultsResponse.success(back.getResult().getId());
-        }
-
-        return VaultsResponse.failed(back.getResult().getComment());
-    }
-
-    @Override
-    public VaultsResponse barcodeRefundQuery(String transactionId,String operatorId) {
-        BasicConfiguration basicConfig = Basic.getSystemParameter(Integer.parseInt(operatorId));
-        PayRefundQuery payRefundQuery = new PayRefundQuery();
-        payRefundQuery.setPos_id(basicConfig.getCode());
-        payRefundQuery.setStore_id(operatorId);
-        payRefundQuery.setSystem_id(basicConfig.getSystemId());
-        payRefundQuery.setIsspid(basicConfig.getPid());
-        PayQueryDetail detail = new PayQueryDetail();
-        detail.setOrg_pos_seq(transactionId);
-        payRefundQuery.setBarcode_refundquery_request(detail);
-
-        PayRefundQueryBack back = null;
-        try {
-            back = (PayRefundQueryBack) YmUtil.resultBack(payRefundQuery,new PayRefundQueryBack());
-        } catch (IllegalAccessException e) {
-            e.printStackTrace();
-            return VaultsResponse.failed(e.getMessage());
-        }
-
-        if(YmUtil.SUCCESS.equals(back.getResult().getId()) || YmUtil.FAIL.equals(back.getResult().getId())){
-            return VaultsResponse.success(back.getResult().getId());
-        }
-
-        return VaultsResponse.failed(back.getResult().getComment());
-    }
-
-    @Override
-    public VaultsResponse<PayInfoAppOutDTO> unifiedOrder(PaymentRecords records) {
-        BasicConfiguration basicConfig = Basic.getSystemParameter(records.getOperatorId());
-        PayInfoAppOutDTO dto = new PayInfoAppOutDTO();
-        PayOrder payOrder = new PayOrder();
-        payOrder.setPos_seq(records.getPayId().toString());
-        payOrder.setPos_id(basicConfig.getCode());
-        payOrder.setStore_id(records.getOperatorId().toString());
-        payOrder.setDevice_ip(ip);
-        payOrder.setSystem_id(basicConfig.getSystemId());
-        payOrder.setIsspid(basicConfig.getPid());
-        PayDetail detail = new PayDetail();
-        detail.setBuyer_id(records.getOpenid());
-        detail.setTx_amt(records.getTxAmt());
-        detail.setNotify_url(url+"/payNotify");
-        ExtendParams extendParams = new ExtendParams();
-        extendParams.setPlan_split_date(records.getPlanSplitDate());
-        detail.setExtend_params(extendParams);
-        payOrder.setUnifiedorder_request(detail);
-        PayBack back = null;
-        try {
-            back = (PayBack) YmUtil.resultBack(payOrder,new PayBack());
-        } catch (IllegalAccessException e) {
-            e.printStackTrace();
-            return VaultsResponse.failed(e.getMessage());
-        }
-
-        if(YmUtil.FAIL.equals(back.getResult().getId())){
-            dto.setAppId(records.getAppId());
-            dto.setTimeStamp(back.getTime_stamp());
-            dto.setNonceStr(back.getNonce_str());
-            dto.setPackages("prepay_id="+back.getPay_id());
-            dto.setSignType(back.getSign_type());
-            dto.setPaySign(back.getPay_sign());
-            dto.setPaySn(records.getPaySn());
-            return VaultsResponse.success(dto);
-        }
-
-        return VaultsResponse.failed(back.getResult().getComment());
-
-    }
-
-    @Override
-    public String payNotification(PayNotification payNotification) {
-
-        QueryWrapper<PaymentRecords> queryMapper = new QueryWrapper<>();
-        queryMapper.eq("pay_id",payNotification.getPos_seq());
-        try {
-            PaymentRecords pr = paymentRecordsService.getOne(queryMapper);
-            if(payNotification.getNotify_type().equals("1")){
-                //支付通知
-                if(pr.getStatus() == -1){
-                    pr.setStatus(Integer.parseInt(payNotification.getStatus()));
-                    pr.setEndTime(payNotification.getEnd_time());
-                    pr.setSource(payNotification.getSource());
-                    pr.setPosId(payNotification.getPos_id());
-                    pr.setStoreId(payNotification.getStore_id());
-                    pr.setPayType(payNotification.getPay_type());
-                    pr.setTransType(payNotification.getTrans_type());
-                    pr.setTradeNo(payNotification.getTrade_no());
-                    pr.setChargeAmount(payNotification.getCharge_amount());
-                    pr.setFundFreezeStat(payNotification.getFund_freeze_stat());
-                    pr.setNotifyType(payNotification.getNotify_type());
-                    PayReceive payReceive = new PayReceive();
-                    payReceive.setPayId(pr.getPayId());
-                    payReceive.setPaySn(pr.getPaySn());
-                    payReceive.setOperatorId(pr.getOperatorId());
-                    payReceive.setTradeNo(payNotification.getPos_seq());
-                    VaultsResponse vaultsResponse = orderFeignClient.changeOrderPay(payReceive);
-                    if(vaultsResponse.validate()){
-                        paymentRecordsService.updateById(pr);
-                    }else {
-                        return "fail";
-                    }
-
-                }else{
-                    log.info("重复推送支付成功消息---"+pr.getPaySn());
-                }
-            }else{
-                //解冻通知
-                if(pr.getFundFreezeStat().equals("01")){
-                    pr.setFundFreezeStat(payNotification.getFund_freeze_stat());
-                    pr.setFreezeTime(payNotification.getFreeze_time());
-                    pr.setUnfreezeAmt(payNotification.getUnfreeze_amt());
-                    pr.setUnfreezeTime(payNotification.getUnfreeze_time());
-                    //调用分账通知
-                    paymentRecordsService.updateById(pr);
-                }else{
-                    log.info("重复推送解冻消息---"+pr.getPaySn());
-                }
-            }
-
-
-        }catch (Exception e){
-            e.printStackTrace();
-            return "fail";
-        }
-            return "success";
-    }
-
-    @Override
-    public String payReverseNotification(PayNotification payNotification) {
-        QueryWrapper<PaymentRecords> queryMapper = new QueryWrapper<>();
-        queryMapper.eq("trade_no",payNotification.getTrade_no());
-        try {
-            PaymentRecords pr = paymentRecordsService.getOne(queryMapper);
-                //退款通知
-                if(!pr.getTransType().equals("2")){
-                    pr.setTransType(pr.getTransType());
-                    pr.setEndTime(payNotification.getEnd_time());
-                    RefundReceive refundReceive = new RefundReceive();
-                    refundReceive.setRefundId(pr.getRefundId());
-                    refundReceive.setSn(pr.getRefundSn());
-                    refundReceive.setOperatorId(pr.getOperatorId());
-                    VaultsResponse vaultsResponse = orderFeignClient.changeOrderRefund(refundReceive);
-                    if(vaultsResponse.validate()){
-                        paymentRecordsService.updateById(pr);
-                    }else {
-                        return "fail";
-                    }
-                }else{
-                    log.info("重复推送支付成功消息---"+pr.getPaySn());
-                }
-
-
-        }catch (Exception e){
-            e.printStackTrace();
-            return "fail";
-        }
-        return "success";
-
-    }
-
-    @Override
-    public VaultsResponse<String> scanPayOrder(PaymentRecords records) {
-        BasicConfiguration basicConfig = Basic.getSystemParameter(records.getOperatorId());
-        PayScanOrder payScanOrder = new PayScanOrder();
-        payScanOrder.setPos_seq(records.getPayId().toString());
-        payScanOrder.setPos_id(basicConfig.getCode());
-        payScanOrder.setStore_id(records.getOperatorId().toString());
-        payScanOrder.setDevice_ip(ip);
-        payScanOrder.setSystem_id(basicConfig.getSystemId());
-        payScanOrder.setIsspid(basicConfig.getPid());
-        PayScanRequest payScanRequest = new PayScanRequest();
-        payScanRequest.setTx_amt(records.getTxAmt());
-        payScanRequest.setNotify_url(url+"/payNotify");
-        ExtendParams extendParams = new ExtendParams();
-        extendParams.setPlan_split_date(records.getPlanSplitDate());
-        payScanRequest.setExtend_params(extendParams);
-        payScanOrder.setScanpay_request(payScanRequest);
-        PayScanBack back = null;
-        try {
-            back = (PayScanBack) YmUtil.resultBack(payScanOrder,new PayScanBack());
-        } catch (IllegalAccessException e) {
-            e.printStackTrace();
-            return VaultsResponse.failed(e.getMessage());
-        }
-
-        if(YmUtil.FAIL.equals(back.getResult().getId())){
-            return VaultsResponse.success(back.getCode_url());
-        }
-
-        return VaultsResponse.failed(back.getResult().getComment());
-    }
-}
+package com.poteviohealth.ym.ipos.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.poteviohealth.cgp.common.filter.TokenContext;
+import com.poteviohealth.cgp.common.integrated.order.OrderFeignClient;
+import com.poteviohealth.cgp.common.integrated.order.model.PayInfoAppOutDTO;
+import com.poteviohealth.cgp.common.integrated.order.model.PayReceive;
+import com.poteviohealth.cgp.common.integrated.order.model.RefundReceive;
+import com.poteviohealth.cgp.common.model.VaultsResponse;
+import com.poteviohealth.ym.ipos.common.Basic;
+import com.poteviohealth.ym.ipos.model.BasicConfiguration;
+import com.poteviohealth.ym.ipos.model.payment.*;
+import com.poteviohealth.ym.ipos.model.payment.back.*;
+import com.poteviohealth.ym.ipos.model.payment.detail.*;
+import com.poteviohealth.ym.ipos.model.payment.dto.BindDto;
+import com.poteviohealth.ym.ipos.service.IPaymentRecordsService;
+import com.poteviohealth.ym.ipos.service.IPaymentService;
+import com.poteviohealth.ym.ipos.utils.YmUtil;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * 支付
+ * @author Qin
+ */
+@Service
+@Log4j2
+public class PaymentServiceImpl implements IPaymentService {
+
+    @Value("${pay.field.ip}")
+    private String ip;
+
+    @Value("${pay.field.url}")
+    private String url;
+
+    @Resource
+    private IPaymentRecordsService paymentRecordsService;
+    @Resource
+    private OrderFeignClient orderFeignClient;
+
+
+    @Override
+    public VaultsResponse bindPos(BindDto dto) {
+        BasicConfiguration basicConfig = Basic.getSystemParameter(TokenContext.cureOperatorId());
+        BindPos pos = new BindPos();
+        pos.setPos_id(dto.getPosId());
+        pos.setSystem_id(basicConfig.getSystemId());
+        pos.setIsspid(basicConfig.getPid());
+        StoreInfo storeInfo = new StoreInfo();
+        storeInfo.setStore_id(dto.getStoreId());
+        storeInfo.setStore_name(dto.getName());
+        pos.setStore_info(storeInfo);
+
+        PayParams payParams = new PayParams();
+        Wxapp app = new Wxapp();
+        app.setMch_id(basicConfig.getMchId());
+        app.setAppid(dto.getAppId());
+        payParams.setWxapp(app);
+        pos.setPay_params(payParams);
+        BindPosBack back;
+        try {
+            back = (BindPosBack) YmUtil.resultBack(pos,new BindPosBack());
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+            return VaultsResponse.failed(e.getMessage());
+        }
+
+        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
+            return VaultsResponse.success(back.getPos_id());
+        }
+
+        return VaultsResponse.failed(back.getResult().getComment());
+    }
+
+    @Override
+    public VaultsResponse changeBindPos(BindDto dto) {
+        ChangeBindPos pos = new ChangeBindPos();
+        pos.setStore_id(dto.getStoreId());
+        BasicConfiguration basicConfig = Basic.getSystemParameter(TokenContext.cureOperatorId());
+        pos.setSystem_id(basicConfig.getSystemId());
+        pos.setIsspid(basicConfig.getPid());
+        StoreInfoChange storeInfo = new StoreInfoChange();
+        storeInfo.setStore_name(dto.getName());
+        pos.setStore_info(storeInfo);
+        ChangeBingPosBack back;
+        try {
+            back = (ChangeBingPosBack) YmUtil.resultBack(pos,new ChangeBingPosBack());
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+            return VaultsResponse.failed(e.getMessage());
+        }
+
+        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
+            return VaultsResponse.success(back.getStore_id());
+        }
+
+        return VaultsResponse.failed(back.getResult().getComment());
+
+    }
+
+    @Override
+    public VaultsResponse<PayQueryBack> barcodeQuery(String transactionId) {
+        //此方法暂不可用,没有operatorId
+        //BasicConfiguration basicConfig = Basic.getSystemParameter(records.getOperatorId());
+        PayQuery payQuery = new PayQuery();
+        payQuery.setPos_id(TokenContext.curePosId());
+        payQuery.setStore_id(TokenContext.cureStoreId());
+        PayQueryDetail detail = new PayQueryDetail();
+        detail.setOrg_pos_seq(transactionId);
+        payQuery.setBarcode_query_request(detail);
+        PayQueryBack back;
+        try {
+            back = (PayQueryBack) YmUtil.resultBack(payQuery,new PayQueryBack());
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+            return VaultsResponse.failed(e.getMessage());
+        }
+
+        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
+            return VaultsResponse.success();
+        }
+
+        return VaultsResponse.failed(back.getResult().getComment());
+    }
+
+    @Override
+    public VaultsResponse barcodeReverse(RefundReceive refundReceive) {
+
+       PaymentRecords paymentRecords = paymentRecordsService.getPaymentRecords(refundReceive.getPayId());
+       if(paymentRecords == null){
+           return VaultsResponse.failed("支付信息未找到");
+       }
+
+        BasicConfiguration basicConfig = Basic.getSystemParameter(refundReceive.getOperatorId());
+        PayReverse payReverse = new PayReverse();
+        payReverse.setSystem_id(basicConfig.getSystemId());
+        payReverse.setIsspid(basicConfig.getPid());
+        payReverse.setPos_id(basicConfig.getCode());
+        payReverse.setStore_id(refundReceive.getOperatorId().toString());
+        payReverse.setPos_seq(refundReceive.getRefundId().toString());
+        PayReverseDetail detail = new PayReverseDetail();
+        detail.setPay_type(paymentRecords.getPayType());
+        detail.setTx_amt(refundReceive.getPrice().toString());
+        detail.setOrg_pos_seq(refundReceive.getPayId().toString());
+        detail.setNotify_url(url+"/payReverseNotify");
+        payReverse.setBarcode_reverse_request(detail);
+        PayReverseBack back;
+        try {
+            back = (PayReverseBack) YmUtil.resultBack(payReverse,new PayReverseBack());
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+            return VaultsResponse.failed(e.getMessage());
+        }
+
+        if(YmUtil.SUCCESS.equals(back.getResult().getId()) || YmUtil.FAIL.equals(back.getResult().getId())){
+            paymentRecords.setRefundSn(refundReceive.getSn());
+            paymentRecords.setRefundId(refundReceive.getRefundId());
+            paymentRecordsService.updateById(paymentRecords);
+            return VaultsResponse.success(back.getResult().getId());
+        }
+
+        return VaultsResponse.failed(back.getResult().getComment());
+    }
+
+    @Override
+    public VaultsResponse barcodeRefundQuery(String transactionId,String operatorId) {
+        BasicConfiguration basicConfig = Basic.getSystemParameter(Integer.parseInt(operatorId));
+        PayRefundQuery payRefundQuery = new PayRefundQuery();
+        payRefundQuery.setPos_id(basicConfig.getCode());
+        payRefundQuery.setStore_id(operatorId);
+        payRefundQuery.setSystem_id(basicConfig.getSystemId());
+        payRefundQuery.setIsspid(basicConfig.getPid());
+        PayQueryDetail detail = new PayQueryDetail();
+        detail.setOrg_pos_seq(transactionId);
+        payRefundQuery.setBarcode_refundquery_request(detail);
+
+        PayRefundQueryBack back;
+        try {
+            back = (PayRefundQueryBack) YmUtil.resultBack(payRefundQuery,new PayRefundQueryBack());
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+            return VaultsResponse.failed(e.getMessage());
+        }
+
+        if(YmUtil.SUCCESS.equals(back.getResult().getId()) || YmUtil.FAIL.equals(back.getResult().getId())){
+            return VaultsResponse.success(back.getResult().getId());
+        }
+
+        return VaultsResponse.failed(back.getResult().getComment());
+    }
+
+    @Override
+    public VaultsResponse<PayInfoAppOutDTO> unifiedOrder(PaymentRecords records) {
+        BasicConfiguration basicConfig = Basic.getSystemParameter(records.getOperatorId());
+        PayInfoAppOutDTO dto = new PayInfoAppOutDTO();
+        PayOrder payOrder = new PayOrder();
+        payOrder.setPos_seq(records.getPayId().toString());
+        payOrder.setPos_id(basicConfig.getCode());
+        payOrder.setStore_id(records.getOperatorId().toString());
+        payOrder.setDevice_ip(ip);
+        payOrder.setSystem_id(basicConfig.getSystemId());
+        payOrder.setIsspid(basicConfig.getPid());
+        PayDetail detail = new PayDetail();
+        detail.setBuyer_id(records.getOpenid());
+        detail.setTx_amt(records.getTxAmt());
+        detail.setNotify_url(url+"/payNotify");
+        ExtendParams extendParams = new ExtendParams();
+        extendParams.setPlan_split_date(records.getPlanSplitDate());
+        detail.setExtend_params(extendParams);
+        payOrder.setUnifiedorder_request(detail);
+        PayBack back;
+        try {
+            back = (PayBack) YmUtil.resultBack(payOrder,new PayBack());
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+            return VaultsResponse.failed(e.getMessage());
+        }
+
+        if(YmUtil.FAIL.equals(back.getResult().getId())){
+            dto.setAppId(records.getAppId());
+            dto.setTimeStamp(back.getTime_stamp());
+            dto.setNonceStr(back.getNonce_str());
+            dto.setPackages("prepay_id="+back.getPay_id());
+            dto.setSignType(back.getSign_type());
+            dto.setPaySign(back.getPay_sign());
+            dto.setPaySn(records.getPaySn());
+            return VaultsResponse.success(dto);
+        }
+
+        return VaultsResponse.failed(back.getResult().getComment());
+
+    }
+
+    @Override
+    public String payNotification(PayNotification payNotification) {
+
+        QueryWrapper<PaymentRecords> queryMapper = new QueryWrapper<>();
+        queryMapper.eq("pay_id",payNotification.getPos_seq());
+        try {
+            PaymentRecords pr = paymentRecordsService.getOne(queryMapper);
+            if(payNotification.getNotify_type().equals("1")){
+                //支付通知
+                if(pr.getStatus() == -1){
+                    pr.setStatus(Integer.parseInt(payNotification.getStatus()));
+                    pr.setEndTime(payNotification.getEnd_time());
+                    pr.setSource(payNotification.getSource());
+                    pr.setPosId(payNotification.getPos_id());
+                    pr.setStoreId(payNotification.getStore_id());
+                    pr.setPayType(payNotification.getPay_type());
+                    pr.setTransType(payNotification.getTrans_type());
+                    pr.setTradeNo(payNotification.getTrade_no());
+                    pr.setChargeAmount(payNotification.getCharge_amount());
+                    pr.setFundFreezeStat(payNotification.getFund_freeze_stat());
+                    pr.setNotifyType(payNotification.getNotify_type());
+                    PayReceive payReceive = new PayReceive();
+                    payReceive.setPayId(pr.getPayId());
+                    payReceive.setPaySn(pr.getPaySn());
+                    payReceive.setOperatorId(pr.getOperatorId());
+                    payReceive.setTradeNo(payNotification.getPos_seq());
+                    payReceive.setStatus(payNotification.getStatus());
+                    VaultsResponse vaultsResponse = orderFeignClient.changeOrderPay(payReceive);
+                    if(vaultsResponse.validate()){
+                        paymentRecordsService.updateById(pr);
+                    }else {
+                        return "fail";
+                    }
+
+                }else{
+                    log.info("重复推送支付成功消息---"+pr.getPaySn());
+                }
+            }else{
+                //解冻通知
+                if(pr.getFundFreezeStat().equals("01")){
+                    pr.setFundFreezeStat(payNotification.getFund_freeze_stat());
+                    pr.setFreezeTime(payNotification.getFreeze_time());
+                    pr.setUnfreezeAmt(payNotification.getUnfreeze_amt());
+                    pr.setUnfreezeTime(payNotification.getUnfreeze_time());
+                    //调用分账通知
+                    paymentRecordsService.updateById(pr);
+                }else{
+                    log.info("重复推送解冻消息---"+pr.getPaySn());
+                }
+            }
+
+
+        }catch (Exception e){
+            e.printStackTrace();
+            return "fail";
+        }
+            return "success";
+    }
+
+    @Override
+    public String payReverseNotification(PayNotification payNotification) {
+        QueryWrapper<PaymentRecords> queryMapper = new QueryWrapper<>();
+        queryMapper.eq("trade_no",payNotification.getTrade_no());
+        try {
+            PaymentRecords pr = paymentRecordsService.getOne(queryMapper);
+                //退款通知
+                if(!pr.getTransType().equals("2")){
+                    pr.setTransType(pr.getTransType());
+                    pr.setEndTime(payNotification.getEnd_time());
+                    RefundReceive refundReceive = new RefundReceive();
+                    refundReceive.setRefundId(pr.getRefundId());
+                    refundReceive.setSn(pr.getRefundSn());
+                    refundReceive.setOperatorId(pr.getOperatorId());
+                    refundReceive.setStatus(payNotification.getStatus());
+                    VaultsResponse vaultsResponse = orderFeignClient.changeOrderRefund(refundReceive);
+                    if(vaultsResponse.validate()){
+                        paymentRecordsService.updateById(pr);
+                    }else {
+                        return "fail";
+                    }
+                }else{
+                    log.info("重复推送支付成功消息---"+pr.getPaySn());
+                }
+
+
+        }catch (Exception e){
+            e.printStackTrace();
+            return "fail";
+        }
+        return "success";
+
+    }
+
+    @Override
+    public VaultsResponse<String> scanPayOrder(PaymentRecords records) {
+        BasicConfiguration basicConfig = Basic.getSystemParameter(records.getOperatorId());
+        PayScanOrder payScanOrder = new PayScanOrder();
+        payScanOrder.setPos_seq(records.getPayId().toString());
+        payScanOrder.setPos_id(basicConfig.getCode());
+        payScanOrder.setStore_id(records.getOperatorId().toString());
+        payScanOrder.setDevice_ip(ip);
+        payScanOrder.setSystem_id(basicConfig.getSystemId());
+        payScanOrder.setIsspid(basicConfig.getPid());
+        PayScanRequest payScanRequest = new PayScanRequest();
+        payScanRequest.setTx_amt(records.getTxAmt());
+        payScanRequest.setNotify_url(url+"/payNotify");
+        ExtendParams extendParams = new ExtendParams();
+        extendParams.setPlan_split_date(records.getPlanSplitDate());
+        payScanRequest.setExtend_params(extendParams);
+        payScanOrder.setScanpay_request(payScanRequest);
+        PayScanBack back;
+        try {
+            back = (PayScanBack) YmUtil.resultBack(payScanOrder,new PayScanBack());
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+            return VaultsResponse.failed(e.getMessage());
+        }
+
+        if(YmUtil.FAIL.equals(back.getResult().getId())){
+            return VaultsResponse.success(back.getCode_url());
+        }
+
+        return VaultsResponse.failed(back.getResult().getComment());
+    }
+}