Jelajahi Sumber

Merge branch 'master' of http://47.105.116.204:3000/suxinghua/JDD-PAY

XF--LRQYEJOKYDS\Administrator 4 tahun lalu
induk
melakukan
2fa9c81eb8

+ 54 - 40
YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

@@ -135,6 +135,7 @@ public class PayController {
             appUserInfo.setMinaToken(token);
         }
         List<AppUserInfo> appUserInfoList =appUserInfoService.Authentication(appUserInfo);
+
         if(appUserInfoList!=null&&appUserInfoList.size()==1){
             //调用聚合支付
             try{
@@ -296,50 +297,63 @@ public class PayController {
     public String getPayOrderClose(@RequestBody PayCloseRequestParamter payCloseRequestParamter) {
         String results="";
         Gson gson =new Gson();
-        try {
-            JSONObject reqData = new JSONObject();
-            reqData.put("mno","399200427027644"); //商户编号
-            reqData.put("origOrderNo", payCloseRequestParamter.getOrigOrderNo());
-            reqData.put("origUuid", payCloseRequestParamter.getOrigUuid());
-            String req= SXFPaySign.getSXFPay(reqData);
-            //此处不要改变reqData里面值的顺序用LinkedHashMap
-            HashMap reqMap = JSON.parseObject(req, LinkedHashMap.class, Feature.OrderedField);
-            //组装加密串
-            String signContent = RSASignature.getOrderContent(reqMap);
-            System.out.println("拼接后的参数:" + signContent);
-            //sign
-            String sign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
-            System.out.println("============签名:" + sign);
-            reqMap.put("sign", sign);
-            String reqStr = JSON.toJSONString(reqMap);
-            System.out.println("请求参数:" + reqMap);
-            System.out.println("请求参数:" + reqStr);
-            //调用第三方接口地址
-            String url = "https://openapi-test.tianquetech.com/query/close";//测试地址
-            // String url = "https://openapi.tianquetech.com/query/close";//生产地址
-            String resultJson = HttpUtils.connectPostUrl(url, reqStr);
-            System.out.println("返回信息:" + resultJson);
-            //不要对reqData排序 所以用LinkedHashMap
-            HashMap<String, Object> result = JSON.parseObject(resultJson, LinkedHashMap.class, Feature.OrderedField);
-            if ("0000".equals(result.get("code"))) {
-                //验签
-                String signResult = result.get("sign").toString();
-                result.remove("sign");
-                String resultStr = RSASignature.getOrderContent(result);
-                System.out.println(resultStr);
-                //sign
-                String resultSign = RSASignature.encryptBASE64(RSASignature.sign(signContent,SXFPaySign.privateKey));
-                System.out.println("resultSign:" + resultSign);
+        String mno=payCloseRequestParamter.getMno();
+        String origOrderNo=payCloseRequestParamter.getOrigOrderNo();
+        String origUuid=payCloseRequestParamter.getOrigUuid();
+        String token=payCloseRequestParamter.getToken();
+        String userType=payCloseRequestParamter.getUserType();
+        boolean flag =appUserInfoService.selectAppUserInfo(token,userType);
+        ResultData resultData =null;
+        if(flag){
+            try {
+                JSONObject reqData = new JSONObject();
+                reqData.put("mno",mno); //商户编号
+                reqData.put("origOrderNo",origOrderNo);//系统商户订单号
+                reqData.put("origUuid", origUuid);//随行付订单号
+                String req= SXFPaySign.getSXFPay(reqData);
+                //此处不要改变reqData里面值的顺序用LinkedHashMap
+                HashMap reqMap = JSON.parseObject(req, LinkedHashMap.class, Feature.OrderedField);
                 //组装加密串
-                if (RSASignature.doCheck(resultStr, signResult, SXFPaySign.sxfPublic)) {
-                    System.out.println("===================验签成功==============");
+                String signContent = RSASignature.getOrderContent(reqMap);
+                System.out.println("拼接后的参数:" + signContent);
+                //sign
+                String sign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
+                System.out.println("============签名:" + sign);
+                reqMap.put("sign", sign);
+                String reqStr = JSON.toJSONString(reqMap);
+                System.out.println("请求参数:" + reqMap);
+                System.out.println("请求参数:" + reqStr);
+                //调用第三方接口地址
+               // String url = "https://openapi-test.tianquetech.com/query/close";//测试地址
+                String url = "https://openapi.tianquetech.com/query/close";//生产地址
+                String resultJson =  HttpUtils.connectPostUrl(url, reqStr);
+                System.out.println("返回信息:" + resultJson);
+                //不要对reqData排序 所以用LinkedHashMap
+                HashMap<String, Object> result = JSON.parseObject(resultJson, LinkedHashMap.class, Feature.OrderedField);
+                if ("0000".equals(result.get("code"))) {
+                    //验签
+                    String signResult = result.get("sign").toString();
+                    result.remove("sign");
+                    String resultStr = RSASignature.getOrderContent(result);
+                    System.out.println(resultStr);
+                    //sign
+                    String resultSign = RSASignature.encryptBASE64(RSASignature.sign(signContent,SXFPaySign.privateKey));
+                    System.out.println("resultSign:" + resultSign);
+                    //组装加密串
+                    if (RSASignature.doCheck(resultStr, signResult, SXFPaySign.sxfPublic)) {
+                        System.out.println("===================验签成功==============");
+                    }
                 }
+                resultData=ResultData.success(result);
+            }catch (Exception e){
+                resultData=ResultData.error(CodeMsg.YEWU_FAIL,"关闭订单失败");
+                e.printStackTrace();
             }
-            results=gson.toJson(result);
-        }catch (Exception e){
-            e.printStackTrace();
+        }else{
+            resultData=ResultData.error(CodeMsg.USER_NOT_EXSIST);
         }
-        return results;
+
+        return  gson.toJson(resultData);
     }
     /**
      * 异步回调通知

+ 18 - 0
YijiaRestful/src/main/java/com/platform/yijia/param/request/PayCloseRequestParamter.java

@@ -4,6 +4,24 @@ public class PayCloseRequestParamter {
     private String mno;//商户入驻返回 的商户编号
     private String origOrderNo;//原交易商户订单号,64 个字符以内、只能包含 字 母 、 数字、下划线;需保证在商户端不重复
     private String origUuid;//原交易科技公司订单号
+    private String token;
+    private String userType;
+
+    public String getToken() {
+        return token;
+    }
+
+    public void setToken(String token) {
+        this.token = token;
+    }
+
+    public String getUserType() {
+        return userType;
+    }
+
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
 
     public String getMno() {
         return mno;

+ 3 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/AppUserInfoService.java

@@ -11,4 +11,7 @@ public interface AppUserInfoService {
     List<AppUserInfo> Authentication(AppUserInfo appUserInfo);
 //添加信息
     void AddAppUserInfo(AppUserInfo appUserInfo);
+
+    //验证身份
+    boolean selectAppUserInfo(String token, String userType);
 }

+ 25 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/impl/AppUserInfoServiceImpl.java

@@ -4,6 +4,7 @@ import com.platform.yijia.dao.AppUserInfoMapper;
 import com.platform.yijia.pojo.AppUserInfo;
 import com.platform.yijia.pojo.AppUserInfoExample;
 import com.platform.yijia.service.AppUserInfoService;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -36,4 +37,28 @@ public class AppUserInfoServiceImpl implements AppUserInfoService {
     public void AddAppUserInfo(AppUserInfo appUserInfo) {
         appUserInfoMapper.insert(appUserInfo);
     }
+
+    @Override
+    public boolean selectAppUserInfo(String token, String userType) {
+        Boolean flag=true;
+        if(StringUtils.isNotBlank(token)&&StringUtils.isNotBlank(userType)){
+            AppUserInfo appUserInfo =new AppUserInfo();
+            AppUserInfoExample example =new AppUserInfoExample();
+            example.or().andUserTypeEqualTo(userType);
+            if(userType.equals("1")){
+                example.or().andBlogTokenEqualTo(token);
+            }else if(userType.equals("2")){
+                example.or().andMinaTokenEqualTo(token);
+            }
+            List<AppUserInfo> list= appUserInfoMapper.selectByExample(example);
+            if(list!=null && list.size()>0){
+                flag=true;
+            }else {
+                flag=false;
+            }
+        }else{
+            flag=false;
+        }
+        return flag;
+    }
 }