Browse Source

修改传入参数的类型和useinfoutil类的注入类型的

yujia 8 years ago
parent
commit
51a1f74faa

+ 11 - 0
src/main/java/com/uas/platform/b2c/fa/payment/constant/PingAnRequestUrlPostfix.java

@@ -60,4 +60,15 @@ public class PingAnRequestUrlPostfix {
      * 网关支付访问地址
      */
     public static final String EBANKPAY = "/eBank/pay";
+
+    /**
+     * 银联绑卡的接口
+     */
+    public static final String BINDCARD = "/UnionPay/bindCard";
+
+
+    /**
+     * 查询银联绑卡的信息访问地址
+     */
+    public static final String QUERYBINDCARD = "/UnionPay/bindCard/query";
 }

+ 8 - 11
src/main/java/com/uas/platform/b2c/fa/payment/controller/BankReceiptsController.java

@@ -7,6 +7,8 @@ import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.sso.common.IpHelper;
 import org.apache.http.HttpStatus;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -14,7 +16,6 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.UnsupportedEncodingException;
 
 /**
  * 银行收单接口
@@ -37,20 +38,16 @@ public class BankReceiptsController {
     /**
      * 支付时的绑卡动作
      *
-     * @param request 请求
      * @param isPersonal 是否是个人
      */
     @RequestMapping(value = "/unionPay/pay/bindCard", method = RequestMethod.GET)
-    public String bindCard(HttpServletRequest request, Boolean isPersonal, HttpServletResponse response) {
-        String str = bankReceiptsService.bindCard(request, isPersonal);
-        response.setContentType("text/html; charset=UTF-8");
-        try {
-            request.setCharacterEncoding("UTF-8");
-        } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
-        }
+    public ResponseEntity<String> bindCard(Boolean isPersonal) {
+        String str = bankReceiptsService.bindCard(isPersonal);
+        HttpHeaders headers = new HttpHeaders();
+        headers.set("Content-Type", "text/html;charset=utf-8");
+        ResponseEntity<String> entity = ResponseEntity.ok().headers(headers).body(str);
         logger.log("平安支付控制器", "支付绑卡", "支付时的绑卡");
-        return str;
+        return entity;
     }
 
 

+ 0 - 47
src/main/java/com/uas/platform/b2c/fa/payment/facade/PingAnFacade.java

@@ -1,47 +0,0 @@
-package com.uas.platform.b2c.fa.payment.facade;
-
-import com.alibaba.fastjson.JSONObject;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * 平安的facade层
- *
- * Created by yujia on 2017/12/20.
- */
-public interface PingAnFacade {
-
-    /**
-     * 绑卡动作
-     *
-     * @param request 请求
-     * @param isPersonal 是否是个人账户
-     */
-    String bindCard(HttpServletRequest request, Boolean isPersonal);
-
-    /**
-     * 查询跨行绑卡的信息
-     *
-     * @param isPersonal 是否是个人
-     * @return String
-     */
-    String queryBindCard(Boolean isPersonal);
-
-    /**
-     * 银联快捷支付 获取短信验证码的信息
-     *
-     * @param json 传入的支付信息
-     * @param isPersonal 是否是个人
-     * @return String
-     */
-    String khPaySMS(JSONObject json, Boolean isPersonal);
-
-    /**
-     * 传入的数据
-     *
-     * @param json json 交易的信息
-     * @param isPersonal 是否是个人
-     * @return String
-     */
-    String khPay(JSONObject json, Boolean isPersonal);
-}

+ 0 - 193
src/main/java/com/uas/platform/b2c/fa/payment/facade/impl/PingAnFacadeImpl.java

@@ -1,193 +0,0 @@
-package com.uas.platform.b2c.fa.payment.facade.impl;
-
-import com.alibaba.fastjson.JSONObject;
-import com.uas.platform.b2c.common.account.model.User;
-import com.uas.platform.b2c.core.support.SystemSession;
-import com.uas.platform.b2c.fa.payment.constant.B2CField;
-import com.uas.platform.b2c.fa.payment.constant.PingAnField;
-import com.uas.platform.b2c.fa.payment.constant.StringConstant;
-import com.uas.platform.b2c.fa.payment.facade.PingAnFacade;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
-import org.springframework.web.client.RestTemplate;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 平安facade 的impl
- *
- * @author yuj 2017-12-20 20:32
- */
-@Service
-public class PingAnFacadeImpl implements PingAnFacade {
-
-    private final RestTemplate restTemplate;
-
-    @Autowired
-    public PingAnFacadeImpl(RestTemplate restTemplate) {
-        this.restTemplate = restTemplate;
-    }
-
-    /**
-     * 绑卡的动作
-     *
-     * @param request    请求
-     * @param isPersonal 是否是个人账户
-     */
-    @Override
-    public String bindCard(HttpServletRequest request, Boolean isPersonal) {
-        Map<String, String> map = getUserInfoMap(isPersonal);
-        map.put(B2CField.USERUU, "1000103422");
-        map.put(B2CField.ENUU, "1000103423");
-        map.put(B2CField.DISSOCIATIVE, Boolean.FALSE.toString());
-        map.put(B2CField.ISPERSONAL, Boolean.TRUE.toString());
-        String httpEntity = restTemplate.postForObject("http://192.168.253.119:20280/UnionPay/bindCard", map, String.class);
-        return httpEntity;
-    }
-
-    /**
-     * 查询跨行绑卡的信息
-     *
-     * @param isPersonal 是否是个人
-     * @return String
-     */
-    @Override
-    public String queryBindCard(Boolean isPersonal) {
-        Map<String, String> map = getUserInfoMap(isPersonal);
-        String resultStr = restTemplate.postForObject("http://192.168.253.119:20280/UnionPay/bindCard/query", map, String.class);
-        return resultStr;
-    }
-
-
-    /**
-     * 组装个人的信息
-     *
-     * @param isPersonal 是否是个人信息
-     * @return Map<String, String>
-     */
-    private Map<String, String> getUserInfoMap(Boolean isPersonal) {
-        HashMap<String, String> map = new HashMap<>();
-        User user = SystemSession.getUser();
-        isPersonal = true;
-        if (isPersonal) {
-            map.put(B2CField.USERUU, String.valueOf(user.getUserUU()));
-            if (user.getEnterprise() != null) {
-                map.put(B2CField.ENUU, String.valueOf(user.getEnterprise().getUu()));
-                map.put(B2CField.DISSOCIATIVE, Boolean.FALSE.toString());
-            } else {
-                map.put(B2CField.DISSOCIATIVE, Boolean.TRUE.toString());
-            }
-            map.put(B2CField.ISPERSONAL, Boolean.TRUE.toString());
-        } else {
-            map.put(B2CField.ENUU, user.getEnterprise().getUu().toString());
-            map.put(B2CField.DISSOCIATIVE, Boolean.FALSE.toString());
-            map.put(B2CField.ISPERSONAL, Boolean.FALSE.toString());
-        }
-
-        return map;
-    }
-
-    /**
-     * 银联快捷支付 获取短信验证码的信息
-     *
-     * @param json 传入的支付信息
-     * @param isPersonal 是否是个人
-     * @return String
-     */
-    @Override
-    public String khPaySMS(JSONObject json, Boolean isPersonal) {
-        HashMap<String, String> map = new HashMap<>();
-        if (json == null) {
-            map.put(PingAnField.AMOUNT, "10");
-            map.put(PingAnField.CURRENCY, "RMB");
-            map.put(PingAnField.OBJECTNAME, "test");
-            map.put(PingAnField.OPENID, "20003111462017122041072723");
-        } else {
-            String amount = json.getString(PingAnField.AMOUNT);
-            if (StringUtils.isEmpty(amount)) {
-                throw new IllegalArgumentException("传入的金额合计为空");
-            }
-            map.put(PingAnField.AMOUNT, amount);
-
-            String currency = json.getString(PingAnField.CURRENCY);
-            if (StringUtils.isEmpty(currency)) {
-                currency = StringConstant.RMB_String;
-            }
-            map.put(PingAnField.CURRENCY, currency);
-
-            String objectName = json.getString(PingAnField.OBJECTNAME);
-            map.put(PingAnField.OBJECTNAME, objectName == null ? "" : objectName);
-            //绑卡之后,会从银联返回一个OpenId;
-            map.put(PingAnField.OPENID, "20003111462017122041072723");
-        }
-        isPersonal = true;
-        Map<String, String> infoMap = getUserInfoMap(isPersonal);
-        infoMap.putAll(map);
-        String resultStr = restTemplate.postForObject("http://192.168.253.119:20280/UnionPay/sms", infoMap, String.class);
-        System.out.println(resultStr);
-        return resultStr;
-    }
-
-    /**
-     * 传入的数据
-     *
-     * @param json       json 交易的信息
-     * @param isPersonal 是否是个人
-     * @return String
-     */
-    @Override
-    public String khPay(JSONObject json, Boolean isPersonal) {
-        HashMap<String, String> map = new HashMap<>();
-        if (json != null) {
-            String orderid = json.getString(PingAnField.ORDERID);
-            if (StringUtils.isEmpty(orderid)) {
-                throw new IllegalArgumentException("传入的支付流水号为空");
-            }
-            map.put(PingAnField.ORDERID, orderid);
-            String payDate = json.getString(PingAnField.PAYDATE);
-            if (StringUtils.isEmpty(payDate)) {
-                throw new IllegalArgumentException("传入的支付时间为空");
-            }
-            map.put(PingAnField.PAYDATE, payDate);
-
-            String amout = json.getString(PingAnField.AMOUNT);
-            if (StringUtils.isEmpty(amout)) {
-                throw new IllegalArgumentException("传入的支付金额为空");
-            }
-            map.put(PingAnField.AMOUNT, amout);
-
-            String objName = json.getString(PingAnField.OBJECTNAME);
-            if (StringUtils.isEmpty(objName)) {
-                objName = StringConstant.EMPTY_STRING;
-            }
-            map.put(PingAnField.OBJECTNAME, objName);
-
-            String verifyCode = json.getString(PingAnField.VERIFYCODE);
-            if (StringUtils.isEmpty(verifyCode)) {
-                throw new IllegalArgumentException("传入的动态验证码为空");
-            }
-            map.put(PingAnField.VERIFYCODE, verifyCode);
-        }
-        Map<String, String> infoMap = getUserInfoMap(isPersonal);
-        /*
-             *    orderId 支付的流水号必须和发送短信的接口一致
-     *    paydate 支付的时间,必须与获取短信的时间一致
-                *    opendid 银行卡的开户行id 在查询的时候就会把信息带过去
-     *    currency 币种 RMB
-                *    amount 金额 12整数,2小数
-                *    objectName 订单款项描述
-                *    verifyCode 短信验证码
-                *    payCardType 支付卡类型,01:借记卡,02:信用卡
-                *    issInsCode  发卡机构代码 查询绑卡信息时返回结果之后,会查询我们建的表信息,返回前端会带着个信息
-                *    */
-
-        map.put("paydate", "");
-        infoMap.putAll(map);
-        map.put("currency", "RMB");
-        map.put("amount", "");
-        return null;
-    }
-}

+ 1 - 4
src/main/java/com/uas/platform/b2c/fa/payment/service/BankReceiptsService.java

@@ -2,8 +2,6 @@ package com.uas.platform.b2c.fa.payment.service;
 
 import com.alibaba.fastjson.JSONObject;
 
-import javax.servlet.http.HttpServletRequest;
-
 /**
  * 平安的facade层
  *
@@ -14,10 +12,9 @@ public interface BankReceiptsService {
     /**
      * 绑卡动作
      *
-     * @param request 请求
      * @param isPersonal 是否是个人账户
      */
-    String bindCard(HttpServletRequest request, Boolean isPersonal);
+    String bindCard(Boolean isPersonal);
 
     /**
      * 查询跨行绑卡的信息

+ 5 - 12
src/main/java/com/uas/platform/b2c/fa/payment/service/impl/BankReceiptsServiceImpl.java

@@ -2,7 +2,6 @@ package com.uas.platform.b2c.fa.payment.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2c.core.config.SysConf;
-import com.uas.platform.b2c.fa.payment.constant.B2CField;
 import com.uas.platform.b2c.fa.payment.constant.PingAnField;
 import com.uas.platform.b2c.fa.payment.constant.PingAnRequestUrlPostfix;
 import com.uas.platform.b2c.fa.payment.constant.StringConstant;
@@ -13,7 +12,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 import org.springframework.web.client.RestTemplate;
 
-import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -41,17 +39,12 @@ public class BankReceiptsServiceImpl implements BankReceiptsService {
     /**
      * 绑卡的动作
      *
-     * @param request    请求
      * @param isPersonal 是否是个人账户
      */
     @Override
-    public String bindCard(HttpServletRequest request, Boolean isPersonal) {
+    public String bindCard(Boolean isPersonal) {
         Map<String, String> map = userInfoSupport.getUserInfoMap(isPersonal);
-        map.put(B2CField.USERUU, "1000103422");
-        map.put(B2CField.ENUU, "1000103423");
-        map.put(B2CField.DISSOCIATIVE, Boolean.FALSE.toString());
-        map.put(B2CField.ISPERSONAL, Boolean.TRUE.toString());
-        String httpEntity = restTemplate.postForObject(sysConf.getPingAnUrl() + "/UnionPay/bindCard", map, String.class);
+        String httpEntity = restTemplate.postForObject(sysConf.getPingAnUrl() + PingAnRequestUrlPostfix.BINDCARD, map, String.class);
         return httpEntity;
     }
 
@@ -64,7 +57,7 @@ public class BankReceiptsServiceImpl implements BankReceiptsService {
     @Override
     public String queryBindCard(Boolean isPersonal) {
         Map<String, String> map = userInfoSupport.getUserInfoMap(isPersonal);
-        String resultStr = restTemplate.postForObject(sysConf.getPingAnUrl() + "/UnionPay/bindCard/query", map, String.class);
+        String resultStr = restTemplate.postForObject(sysConf.getPingAnUrl() + PingAnRequestUrlPostfix.QUERYBINDCARD, map, String.class);
         return resultStr;
     }
 
@@ -152,10 +145,10 @@ public class BankReceiptsServiceImpl implements BankReceiptsService {
             map.put(PingAnField.VERIFYCODE, verifyCode);
         } else {
             map.putAll(infoMap);
-            map.put(PingAnField.ORDERID, "200079918420180111UPUT9M80");
+            map.put(PingAnField.ORDERID, "200079918420180115W2DYA220");
             map.put(PingAnField.CURRENCY, "RMB");
             map.put("amount", "10.00");
-            map.put("paydate", "20180111193234");
+            map.put("paydate", "20180115220144");
             map.put("customerId", "19901120");
             map.put("verifyCode", "111111");
             map.put("issInsCode", "HXB");

+ 0 - 1
src/main/java/com/uas/platform/b2c/fa/payment/support/UserInfoSupport.java

@@ -25,7 +25,6 @@ public class UserInfoSupport {
     public Map<String, String> getUserInfoMap(Boolean isPersonal) {
         HashMap<String, String> map = new HashMap<>();
         User user = SystemSession.getUser();
-        // isPersonal = true;
         if (isPersonal) {
             map.put(B2CField.USERUU, String.valueOf(user.getUserUU()));
             if (user.getEnterprise() != null) {