qin преди 2 години
родител
ревизия
f76f1286c5

+ 2 - 2
pom.xml

@@ -28,7 +28,7 @@
     </pluginRepositories>
     <groupId>com.poteviohealth.ym</groupId>
     <artifactId>ipos</artifactId>
-    <version>1.1.0-SNAPSHOT</version>
+    <version>1.2.0-SNAPSHOT</version>
     <name>ym-ipos</name>
     <description>第三方支付</description>
 
@@ -153,7 +153,7 @@
         <dependency>
             <groupId>com.poteviohealth.cgp</groupId>
             <artifactId>common</artifactId>
-            <version>1.1.0-SNAPSHOT</version>
+            <version>1.2.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>commons-logging</groupId>

+ 0 - 3
src/main/java/com/poteviohealth/ym/ipos/model/payment/BindPos.java

@@ -19,9 +19,6 @@ public class BindPos extends Base {
     @ApiModelProperty(value = "终端号,商户自定义终端号",required = true)
     private String pos_id;
 
-    @ApiModelProperty(value = "门店号,商户自定义门店号",required = true)
-    private String store_id;
-
     @ApiModelProperty(value = "操作员标识,操作员号")
     private String user_id;
 

+ 16 - 0
src/main/java/com/poteviohealth/ym/ipos/model/payment/back/BindPosBack.java

@@ -0,0 +1,16 @@
+package com.poteviohealth.ym.ipos.model.payment.back;
+
+import com.poteviohealth.ym.ipos.model.back.BaseBack;
+import com.poteviohealth.ym.ipos.model.back.ResultBack;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 终端绑定交易返回值
+ * @author Qin
+ */
+@Data
+public class BindPosBack extends BaseBack {
+    @ApiModelProperty(value = "终端号:商户自定义终端号",required = true)
+    private String pos_id;
+}

+ 4 - 4
src/main/java/com/poteviohealth/ym/ipos/model/payment/detail/Wxapp.java

@@ -10,11 +10,11 @@ import lombok.Data;
 @Data
 public class Wxapp {
 
-    @ApiModelProperty(value = "支付通道,0-微信直连,b-汇付,c-通联",required = true)
-    private String tunnel;
+    @ApiModelProperty(value = "支付通道,0-微信直连,b-汇付,c-通联,固定值",required = true)
+    private String tunnel ="b";
 
-    @ApiModelProperty(value = "微信或通道商户号",required = true)
-    private String mch_id;
+    @ApiModelProperty(value = "微信或通道商户号,固定值",required = true)
+    private String mch_id="6666000142736819";
 
     @ApiModelProperty(value = "小程序appid",required = true)
     private String appid;

+ 23 - 0
src/main/java/com/poteviohealth/ym/ipos/model/payment/dto/BindDto.java

@@ -0,0 +1,23 @@
+package com.poteviohealth.ym.ipos.model.payment.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author Qin
+ */
+@Data
+public class BindDto {
+
+    @ApiModelProperty(value = "终端号")
+    private String posId;
+
+    @ApiModelProperty(value = "门店号")
+    private String storeId;
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "小程序Id")
+    private String appId;
+}

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

@@ -1,12 +1,14 @@
 package com.poteviohealth.ym.ipos.service;
 
 import com.poteviohealth.cgp.common.model.PageQuery;
+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.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.dto.BindDto;
 
 /**
  * 支付
@@ -16,55 +18,43 @@ public interface IPaymentService {
 
     /**
      * 终端绑定交易
-     * @param bidPos
+     * @param dto
      * @return
      */
-    default BaseBack bindPos(BindPos bidPos){
-        return null;
-    }
+    VaultsResponse bindPos(BindDto dto);
 
     /**
      * 支付查询交易
      * @param pageQuery
      * @return
      */
-    default PayQueryBack barcodeQuery(PageQuery pageQuery){
-        return null;
-    }
+    VaultsResponse barcodeQuery(PageQuery pageQuery);
 
     /**
      * 支付退款交易
      * @param payReverse
      * @return
      */
-    default PayReverseBack barcodeReverse(PayReverse payReverse){
-        return null;
-    }
+    VaultsResponse barcodeReverse(PayReverse payReverse);
 
     /**
      * 退款查询交易
      * @param payRefundQuery
      * @return
      */
-    default PayRefundQueryBack barcodeRefundQuery(PayRefundQuery payRefundQuery){
-        return null;
-    }
+    VaultsResponse barcodeRefundQuery(PayRefundQuery payRefundQuery);
 
     /**
      * 统一下单交易
      * @param payOrder
      * @return
      */
-    default PayBack unifiedOrder(PayOrder payOrder){
-        return null;
-    }
+    VaultsResponse unifiedOrder(PayOrder payOrder);
 
     /**
      * 支付交易支付结果通知
      * @param payNotification
      */
-    default void payNotification(PayNotification payNotification){
-    }
-
+     void payNotification(PayNotification payNotification);
 
 }

+ 30 - 16
src/main/java/com/poteviohealth/ym/ipos/service/impl/MerchantServiceImpl.java

@@ -3,12 +3,10 @@ package com.poteviohealth.ym.ipos.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.poteviohealth.cgp.common.integrated.OperatorIdParams;
 import com.poteviohealth.cgp.common.integrated.customer.CustomerFeignClient;
 import com.poteviohealth.cgp.common.integrated.partner.PartnerFeignClient;
 import com.poteviohealth.cgp.common.model.VaultsResponse;
-import com.poteviohealth.ym.ipos.model.Area;
 import com.poteviohealth.ym.ipos.model.back.BaseBack;
 import com.poteviohealth.ym.ipos.model.merchant.*;
 import com.poteviohealth.ym.ipos.model.merchant.back.ImageListBack;
@@ -20,12 +18,16 @@ import com.poteviohealth.ym.ipos.model.merchant.back.UserBack;
 import com.poteviohealth.ym.ipos.model.merchant.back.UserSearchBack;
 import com.poteviohealth.ym.ipos.service.IAreaService;
 import com.poteviohealth.ym.ipos.service.IMerchantService;
+import com.poteviohealth.ym.ipos.service.IPaymentService;
 import com.poteviohealth.ym.ipos.utils.YmUtil;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -37,14 +39,17 @@ import java.util.stream.Collectors;
 @Log4j2
 public class MerchantServiceImpl implements IMerchantService {
 
-    final String SUCCESS =  "0000";
-
     @Resource
     private PartnerFeignClient partnerFeignClient;
     @Resource
     private CustomerFeignClient customerFeignClient;
     @Resource
     private IAreaService areaService;
+    @Resource
+    private IPaymentService paymentService;
+
+    @Value("${pay.field.code}")
+    private String code;
 
     /**
      * 上传图片
@@ -68,7 +73,7 @@ public class MerchantServiceImpl implements IMerchantService {
             return VaultsResponse.failed(e.getMessage());
         }
 
-        if(SUCCESS.equals(back.getResult().getId())){
+        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
             return VaultsResponse.success(back.getId());
         }
 
@@ -151,6 +156,7 @@ public class MerchantServiceImpl implements IMerchantService {
             }
             if(status != 2){
                 updateMerchantId(dto.getId(), dto.getSourceId(), dto.getMerchant_id(),2);
+
             }
         }
         return VaultsResponse.success();
@@ -196,7 +202,7 @@ public class MerchantServiceImpl implements IMerchantService {
             return VaultsResponse.failed(e.getMessage());
         }
 
-        if(SUCCESS.equals(back.getResult().getId())){
+        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
             return updateMerchantId(dto.getId(), dto.getSourceId(), back.getMerchant_id(),0);
         }
         return VaultsResponse.failed(back.getResult().getComment());
@@ -209,6 +215,7 @@ public class MerchantServiceImpl implements IMerchantService {
         operatorIdParams.setId(merchantId);
         operatorIdParams.setSource(source);
         operatorIdParams.setStatus(status);
+        operatorIdParams.setCode(code);
         if(source.equals(3)){
             VaultsResponse cus =  customerFeignClient.updateMerchantId(operatorIdParams);
             if(!cus.validate()){
@@ -255,7 +262,7 @@ public class MerchantServiceImpl implements IMerchantService {
             return VaultsResponse.failed(e.getMessage());
         }
 
-        if(SUCCESS.equals(back.getResult().getId())){
+        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
             return VaultsResponse.success();
         }
         return VaultsResponse.failed(back.getResult().getComment());
@@ -288,7 +295,7 @@ public class MerchantServiceImpl implements IMerchantService {
             return VaultsResponse.failed(e.getMessage());
         }
 
-        if(SUCCESS.equals(back.getResult().getId())){
+        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
             return VaultsResponse.success();
         }
         return VaultsResponse.failed(back.getResult().getComment());
@@ -337,7 +344,7 @@ public class MerchantServiceImpl implements IMerchantService {
             return VaultsResponse.failed(e.getMessage());
         }
 
-        if(SUCCESS.equals(back.getResult().getId())){
+        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
             return VaultsResponse.success();
         }
         return VaultsResponse.failed(back.getResult().getComment());
@@ -384,7 +391,7 @@ public class MerchantServiceImpl implements IMerchantService {
             return VaultsResponse.failed(e.getMessage());
         }
 
-        if(SUCCESS.equals(back.getResult().getId())){
+        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
             return VaultsResponse.success();
         }
         return VaultsResponse.failed(back.getResult().getComment());
@@ -406,7 +413,7 @@ public class MerchantServiceImpl implements IMerchantService {
             return VaultsResponse.failed(e.getMessage());
         }
 
-        if(SUCCESS.equals(back.getResult().getId())){
+        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
             return VaultsResponse.success(back);
         }
         return VaultsResponse.failed();
@@ -454,7 +461,7 @@ public class MerchantServiceImpl implements IMerchantService {
             return VaultsResponse.failed(e.getMessage());
         }
 
-        if(SUCCESS.equals(back.getResult().getId())){
+        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
             return VaultsResponse.success(back);
         }
         return VaultsResponse.failed();
@@ -468,7 +475,16 @@ public class MerchantServiceImpl implements IMerchantService {
      */
     @Override
     public VaultsResponse<UserSearchBack> merchantQuery(String phone, String merchantId){
-
+        try {
+            InetAddress localHost = InetAddress.getLocalHost();
+            String hostAddress = localHost.getHostAddress();
+            String hostName = localHost.getHostName();
+            log.info("localHost==="+localHost);
+            log.info("hostAddress==="+hostAddress);
+            log.info("hostName==="+hostName);
+        } catch (UnknownHostException e) {
+            e.printStackTrace();
+        }
         UserSearch userSearch = new UserSearch();
         UserSearchDetail detail = new UserSearchDetail();
         detail.setPhone(phone);
@@ -489,7 +505,7 @@ public class MerchantServiceImpl implements IMerchantService {
             return VaultsResponse.failed(e.getMessage());
         }
 
-        if(SUCCESS.equals(back.getResult().getId())){
+        if(YmUtil.SUCCESS.equals(back.getResult().getId())){
             return VaultsResponse.success(back);
         }else if("9990".equals(back.getResult().getId())){
             return VaultsResponse.success(null);
@@ -497,6 +513,4 @@ public class MerchantServiceImpl implements IMerchantService {
         return VaultsResponse.failed();
     }
 
-
-
 }

+ 77 - 0
src/main/java/com/poteviohealth/ym/ipos/service/impl/PaymentServiceImpl.java

@@ -0,0 +1,77 @@
+package com.poteviohealth.ym.ipos.service.impl;
+
+import com.poteviohealth.cgp.common.model.PageQuery;
+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.detail.PayParams;
+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;
+import com.poteviohealth.ym.ipos.service.IPaymentService;
+import com.poteviohealth.ym.ipos.utils.YmUtil;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.stereotype.Service;
+
+/**
+ * 支付
+ * @author Qin
+ */
+@Service
+@Log4j2
+public class PaymentServiceImpl implements IPaymentService {
+
+    @Override
+    public VaultsResponse bindPos(BindDto dto) {
+        BindPos pos = new BindPos();
+        pos.setPos_id(dto.getPosId());
+        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.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 barcodeQuery(PageQuery pageQuery) {
+        return null;
+    }
+
+    @Override
+    public VaultsResponse barcodeReverse(PayReverse payReverse) {
+        return null;
+    }
+
+    @Override
+    public VaultsResponse barcodeRefundQuery(PayRefundQuery payRefundQuery) {
+        return null;
+    }
+
+    @Override
+    public VaultsResponse unifiedOrder(PayOrder payOrder) {
+        return null;
+    }
+
+    @Override
+    public void payNotification(PayNotification payNotification) {
+
+    }
+}

+ 6 - 4
src/main/java/com/poteviohealth/ym/ipos/utils/YmUtil.java

@@ -19,6 +19,8 @@ import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.ArrayUtils;
 
 import java.lang.reflect.Field;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -31,6 +33,7 @@ import java.util.stream.Collectors;
 public class YmUtil {
 
     private static final  String SECRETKEY = "test";
+    public static final String SUCCESS =  "0000";
 
     private static final  String URL = "https://ipos-sa.imageco.cn";
 
@@ -40,7 +43,7 @@ public class YmUtil {
             JSONObject object = (JSONObject) JSONObject.toJSON(maps);
             object.put("sign", sign);
             String jsonObject = JSONObject.toJSONString(object);
-        log.info(clazz.getClass()+"===="+jsonObject);
+            log.info(clazz.getClass()+"===="+jsonObject);
             String val = HttpUtils.post(URL,jsonObject);
             log.info(clazz.getClass()+"==return=="+val);
             if(clazz.getClass().toString().contains("UserSearchBack")){
@@ -92,8 +95,7 @@ public class YmUtil {
     }
 
     public static void main(String[] args) {
-
-        UserSearch userSearch = new UserSearch();
+       /* UserSearch userSearch = new UserSearch();
         UserSearchDetail detail = new UserSearchDetail();
         detail.setPhone("18010031183");
         userSearch.setMerchant_query_request(detail);
@@ -110,6 +112,6 @@ public class YmUtil {
         } catch (IllegalAccessException e) {
             e.printStackTrace();
         }
-        System.out.println(JSONObject.toJSONString(back));
+        System.out.println(JSONObject.toJSONString(back));*/
     }
 }

+ 6 - 0
src/main/resources/uat/application.yml

@@ -44,6 +44,12 @@ logging:
     com.poteviohealth.ym.ipos.mapper: DEBUG
   config: classpath:logback-spring.xml
 
+pay:
+  field:
+    code: YQAA
+    ip: 123.56.196.46
+    split: 0.7
+
 ribbon:
   ReadTimeout: 50000
   ConnectTimeout: 50000