Pārlūkot izejas kodu

第三方支付

qin 2 gadi atpakaļ
vecāks
revīzija
868fce2d98

+ 64 - 0
src/main/java/com/poteviohealth/ym/ipos/config/SecurityConfig.java

@@ -0,0 +1,64 @@
+package com.poteviohealth.ym.ipos.config;
+
+import com.poteviohealth.cgp.common.facade.constrain.OrgConstrainService;
+import com.poteviohealth.cgp.common.facade.constrain.impl.StreetOrgConstrainService;
+import com.poteviohealth.cgp.common.filter.AppJwtAuthFilter;
+import com.poteviohealth.cgp.common.filter.WebJwtAuthFilter;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Arrays;
+
+/**
+ * 登陆过滤器
+ * @author Qin
+ */
+@Configuration
+public class SecurityConfig {
+    /**
+     * Web token过滤
+     * @return filter
+     */
+    @Bean
+    public FilterRegistrationBean registerWebFilter() {
+        FilterRegistrationBean registration = new FilterRegistrationBean();
+        // 过滤器名称
+        registration.setName("webJwtAuthFilter");
+        // 注入过滤器
+        registration.setFilter(new WebJwtAuthFilter());
+        //过滤器顺序
+        registration.setOrder(1);
+        //拦截规则
+        registration.setUrlPatterns(Arrays.asList("/ipos/web/*"));
+        return registration;
+    }
+
+    /**
+     * APP token过滤
+     * @return filter
+     */
+    @Bean
+    public FilterRegistrationBean registerAppFilter() {
+        FilterRegistrationBean registration = new FilterRegistrationBean();
+        // 过滤器名称
+        registration.setName("appJwtAuthFilter");
+        // 注入过滤器
+        registration.setFilter(new AppJwtAuthFilter());
+        //过滤器顺序
+        registration.setOrder(2);
+        //拦截规则
+        registration.setUrlPatterns(Arrays.asList("/ipos/app/*"));
+        return registration;
+    }
+
+    /**
+     * OrgConstrainService
+     * @return OrgConstrainService
+     */
+    @Bean
+    public OrgConstrainService registerOrgConstrainService(){
+        return new StreetOrgConstrainService();
+    }
+
+}

+ 1 - 1
src/main/java/com/poteviohealth/ym/ipos/model/payment/detail/ExtendParams.java

@@ -20,7 +20,7 @@ public class ExtendParams {
      * 该节点与分账功能相关具体联系业务确认开通功能
      */
     @ApiModelProperty(value = "分账标识")
-    private String split_flag;
+    private String split_flag = "D";
 
     @ApiModelProperty(value = "预分账日期,格式:yyyymmdd,仅延时分账类型(split_flag=D)时支持传入")
     private String plan_split_date;

+ 1 - 1
src/main/java/com/poteviohealth/ym/ipos/model/payment/detail/PayQueryDetail.java

@@ -19,7 +19,7 @@ public class PayQueryDetail {
      * 519:会员余额支付
      */
     @ApiModelProperty(value = "支付类型")
-    private String pay_type;
+    private String pay_type="515";
 
     @ApiModelProperty(value = "支付请求流水号,被查询的支付请求流水号",required = true)
     private String org_pos_seq;

+ 1 - 1
src/main/java/com/poteviohealth/ym/ipos/model/payment/detail/PayReverseDetail.java

@@ -21,7 +21,7 @@ public class PayReverseDetail {
      * 519:会员余额支付
      */
     @ApiModelProperty(value = "支付类型")
-    private String pay_type;
+    private String pay_type ="515";
 
     @ApiModelProperty(value = "退款金额",required = true)
     private String tx_amt;

+ 13 - 0
src/main/java/com/poteviohealth/ym/ipos/model/payment/dto/PayDto.java

@@ -0,0 +1,13 @@
+package com.poteviohealth.ym.ipos.model.payment.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 支付入参
+ * @author Qin
+ */
+public class PayDto {
+
+    @ApiModelProperty(value = "支付号")
+    private String paySn;
+}

+ 9 - 10
src/main/java/com/poteviohealth/ym/ipos/service/IPaymentService.java

@@ -1,13 +1,12 @@
 package com.poteviohealth.ym.ipos.service;
 
-import com.poteviohealth.cgp.common.model.PageQuery;
+import com.poteviohealth.cgp.common.integrated.StringParams;
 import com.poteviohealth.cgp.common.model.VaultsResponse;
-import com.poteviohealth.ym.ipos.model.back.BaseBack;
-import com.poteviohealth.ym.ipos.model.payment.*;
-import com.poteviohealth.ym.ipos.model.payment.back.PayQueryBack;
+import com.poteviohealth.ym.ipos.model.payment.PayNotification;
+import com.poteviohealth.ym.ipos.model.payment.PayRefundQuery;
+import com.poteviohealth.ym.ipos.model.payment.PayReverse;
 import com.poteviohealth.ym.ipos.model.payment.back.PayBack;
-import com.poteviohealth.ym.ipos.model.payment.back.PayRefundQueryBack;
-import com.poteviohealth.ym.ipos.model.payment.back.PayReverseBack;
+import com.poteviohealth.ym.ipos.model.payment.back.PayQueryBack;
 import com.poteviohealth.ym.ipos.model.payment.dto.BindDto;
 
 /**
@@ -25,10 +24,10 @@ public interface IPaymentService {
 
     /**
      * 支付查询交易
-     * @param pageQuery
+     * @param paySn
      * @return
      */
-    VaultsResponse barcodeQuery(PageQuery pageQuery);
+    VaultsResponse<PayQueryBack> barcodeQuery(String paySn);
 
     /**
      * 支付退款交易
@@ -46,10 +45,10 @@ public interface IPaymentService {
 
     /**
      * 统一下单交易
-     * @param payOrder
+     * @param params
      * @return
      */
-    VaultsResponse unifiedOrder(PayOrder payOrder);
+    VaultsResponse<PayBack> unifiedOrder(StringParams params);
 
     /**
      * 支付交易支付结果通知

+ 14 - 5
src/main/java/com/poteviohealth/ym/ipos/service/impl/MerchantServiceImpl.java

@@ -10,12 +10,13 @@ import com.poteviohealth.cgp.common.model.VaultsResponse;
 import com.poteviohealth.ym.ipos.model.back.BaseBack;
 import com.poteviohealth.ym.ipos.model.merchant.*;
 import com.poteviohealth.ym.ipos.model.merchant.back.ImageListBack;
-import com.poteviohealth.ym.ipos.model.merchant.detail.*;
-import com.poteviohealth.ym.ipos.model.merchant.dto.ImageDto;
-import com.poteviohealth.ym.ipos.model.merchant.dto.UserDto;
 import com.poteviohealth.ym.ipos.model.merchant.back.PictureBack;
 import com.poteviohealth.ym.ipos.model.merchant.back.UserBack;
 import com.poteviohealth.ym.ipos.model.merchant.back.UserSearchBack;
+import com.poteviohealth.ym.ipos.model.merchant.detail.*;
+import com.poteviohealth.ym.ipos.model.merchant.dto.ImageDto;
+import com.poteviohealth.ym.ipos.model.merchant.dto.UserDto;
+import com.poteviohealth.ym.ipos.model.payment.dto.BindDto;
 import com.poteviohealth.ym.ipos.service.IAreaService;
 import com.poteviohealth.ym.ipos.service.IMerchantService;
 import com.poteviohealth.ym.ipos.service.IPaymentService;
@@ -155,8 +156,16 @@ public class MerchantServiceImpl implements IMerchantService {
                 return openVault;
             }
             if(status != 2){
-                updateMerchantId(dto.getId(), dto.getSourceId(), dto.getMerchant_id(),2);
-
+               VaultsResponse<String> stringVault = updateMerchantId(dto.getId(), dto.getSourceId(), dto.getMerchant_id(),2);
+               if(dto.getSourceId().equals(1)){
+                   //终端绑定交易
+                   BindDto bd = new BindDto();
+                   bd.setAppId(stringVault.getData());
+                   bd.setPosId(code);
+                   bd.setStoreId(dto.getId().toString());
+                   bd.setName("("+code+")"+dto.getMerchant_short_name());
+                   return paymentService.bindPos(bd);
+               }
             }
         }
         return VaultsResponse.success();

+ 28 - 4
src/main/java/com/poteviohealth/ym/ipos/service/impl/PaymentServiceImpl.java

@@ -1,10 +1,14 @@
 package com.poteviohealth.ym.ipos.service.impl;
 
-import com.poteviohealth.cgp.common.model.PageQuery;
+import com.poteviohealth.cgp.common.filter.TokenContext;
+import com.poteviohealth.cgp.common.integrated.StringParams;
 import com.poteviohealth.cgp.common.model.VaultsResponse;
 import com.poteviohealth.ym.ipos.model.payment.*;
 import com.poteviohealth.ym.ipos.model.payment.back.BindPosBack;
+import com.poteviohealth.ym.ipos.model.payment.back.PayBack;
+import com.poteviohealth.ym.ipos.model.payment.back.PayQueryBack;
 import com.poteviohealth.ym.ipos.model.payment.detail.PayParams;
+import com.poteviohealth.ym.ipos.model.payment.detail.PayQueryDetail;
 import com.poteviohealth.ym.ipos.model.payment.detail.StoreInfo;
 import com.poteviohealth.ym.ipos.model.payment.detail.Wxapp;
 import com.poteviohealth.ym.ipos.model.payment.dto.BindDto;
@@ -51,8 +55,26 @@ public class PaymentServiceImpl implements IPaymentService {
     }
 
     @Override
-    public VaultsResponse barcodeQuery(PageQuery pageQuery) {
-        return null;
+    public VaultsResponse<PayQueryBack> barcodeQuery(String paySn) {
+        PayQuery payQuery = new PayQuery();
+        payQuery.setPos_id(TokenContext.curePosId());
+        payQuery.setStore_id(TokenContext.cureStoreId());
+        PayQueryDetail detail = new PayQueryDetail();
+        detail.setOrg_pos_seq(paySn);
+        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
@@ -66,8 +88,10 @@ public class PaymentServiceImpl implements IPaymentService {
     }
 
     @Override
-    public VaultsResponse unifiedOrder(PayOrder payOrder) {
+    public VaultsResponse<PayBack> unifiedOrder(StringParams params) {
+
         return null;
+
     }
 
     @Override

+ 1 - 1
src/main/resources/uat/application.yml

@@ -46,7 +46,7 @@ logging:
 
 pay:
   field:
-    code: YQAA
+    code: ZKY
     ip: 123.56.196.46
     split: 0.7