浏览代码

汇聚新增身份证照片传送接口

李天标 5 年之前
父节点
当前提交
49873626a9

+ 44 - 0
app-backend-web/src/main/java/com/hboxs/control/admin/JoinPayMchController.java

@@ -177,4 +177,48 @@ public class JoinPayMchController extends BaseController {
         }
 
     }
+    /**
+     * 发送身份证照片
+     */
+    @RequestMapping(value = "/sendCard", method = RequestMethod.POST)
+    @ResponseBody
+    public JsonMessage sendCard(Long id,String cardPositive,String cardNegative) {
+        adminService.getCurrent().getId();
+        Mch mch = mchService.getUniqueness(id);
+        if(cardPositive==null||cardNegative==null){
+            return JsonMessage.success("图片地址不能为空");
+        }
+        String[] string1 = cardPositive.split("\\.");
+        String[] string2 = cardNegative.split("\\.");
+        if(string1.length<2||string2.length<2){
+            return JsonMessage.success("图片地址不规范,留意是否加入后缀名");
+        }
+        // 如果分销商商户状态 不为空,则要远程请求刷一下当前的用户order_status
+        if (!StringUtils.isBlank(mch.getOrder_status())) {
+            String str = mchService.sendCard(mch,cardPositive,cardNegative);
+            return JsonMessage.success(str);
+        } else {
+            return JsonMessage.success("分销商商户状态为空");
+        }
+
+    }
+    /**
+     * 查询身份证照片审核状态
+     */
+    @RequestMapping(value = "/searchApprove", method = RequestMethod.POST)
+    @ResponseBody
+    public JsonMessage searchApprove(Long id) {
+        adminService.getCurrent().getId();
+        Mch mch = mchService.getUniqueness(id);
+
+        // 如果分销商商户状态 不为空,则要远程请求刷一下当前的用户order_status
+        if (!StringUtils.isBlank(mch.getOrder_status())) {
+            //签定协议
+            String str =mchService.searchApprove(mch);
+            return JsonMessage.success(str);
+        } else {
+            return JsonMessage.success("分销商商户状态为空");
+        }
+
+    }
 }

+ 61 - 0
app-backend-web/src/main/webapp/WEB-INF/template/admin/adminAgency/edit.ftl

@@ -206,6 +206,39 @@ $().ready(function() {
             </tr>
             <tr>
                 <th>
+                    身份证正面存放地址:
+                </th>
+                <td >
+                    <input type="text"  name="sn" id="card_positive" style="width: 300px"/>
+                </td>
+            </tr>
+            <tr>
+                <th>
+                    身份证背面存放地址:
+                </th>
+                <td >
+                    <input type="text"  name="sn" id="card_negative" style="width: 300px"/>
+                    &nbsp &nbsp <button type="button" id="sendCard" >上传</button>
+                </td>
+            </tr>
+            <tr>
+                <th>
+                    身份证审核情况:
+                </th>
+                <td id="orderStatus">
+                    ${mch.approve_status} &nbsp &nbsp <button type="button" id="searchApprove" >查询</button>
+                </td>
+            </tr>
+            <tr>
+                <th>
+                    身份证审核备注:
+                </th>
+                <td id="orderStatus">
+                    ${mch.approve_note}
+                </td>
+            </tr>
+            <tr>
+                <th>
                     <span class="requiredField">*</span>联系人名称:
                 </th>
                 <td>
@@ -384,5 +417,33 @@ $().ready(function() {
             }
         })
     });
+
+    $('#sendCard').click(function(){
+        var id = document.getElementById("adminId").value;
+        var cardPositive = document.getElementById("card_positive").value;
+        var cardNegative = document.getElementById("card_negative").value;
+        $.ajax({
+            url:"/asl-admin/joinPayMch/sendCard.htm",
+            type:"POST",
+            data:{
+                "id":id,
+                "cardPositive":cardPositive,
+                "cardNegative":cardNegative
+            },
+            success: function(data){
+                layer.msg(data.data);
+            }
+        })
+    });
+    $('#searchApprove').click(function(){
+        var id=	document.getElementById("adminId").value;
+        $.ajax({
+            url:"/asl-admin/joinPayMch/searchApprove.htm?id="+id,
+            type:"POST",
+            success: function(data){
+                layer.msg(data.data);
+            }
+        })
+    });
 </script>
 </html>

+ 62 - 1
app-backend-web/src/main/webapp/WEB-INF/template/admin/adminMerchant/edit.ftl

@@ -196,7 +196,40 @@ $().ready(function() {
                 <td id="orderStatus">
                     ${mch.sign_status}    &nbsp &nbsp <button type="button" id="qianyue" >签约</button>
                 </td>
-                <input type="text" style="display: none" value="${mch.adminId}" name="sn" id="adminId" class="text" required/>
+                <input type="text" style="display: none" value="${mch.adminId}" name="sn" id="adminId" class="text" />
+            </tr>
+            <tr>
+                <th>
+                    身份证正面存放地址:
+                </th>
+                <td >
+                    <input type="text" id="card_positive"  style="width: 300px"/>
+                </td>
+            </tr>
+            <tr>
+                <th>
+                    身份证背面存放地址:
+                </th>
+                <td >
+                    <input type="text"   id="card_negative" style="width: 300px" />
+                    &nbsp &nbsp <button type="button" id="sendCard" >上传</button>
+                </td>
+            </tr>
+            <tr>
+                <th>
+                    身份证审核情况:
+                </th>
+                <td id="orderStatus">
+                    ${mch.approve_status} &nbsp &nbsp <button type="button" id="searchApprove" >查询</button>
+                </td>
+            </tr>
+            <tr>
+                <th>
+                    身份证审核备注:
+                </th>
+                <td id="orderStatus">
+                    ${mch.approve_note}
+                </td>
             </tr>
             <tr>
                 <th>
@@ -361,5 +394,33 @@ $().ready(function() {
             }
         })
     });
+
+    $('#sendCard').click(function(){
+        var id = document.getElementById("adminId").value;
+        var cardPositive = document.getElementById("card_positive").value;
+        var cardNegative = document.getElementById("card_negative").value;
+        $.ajax({
+            url:"/asl-admin/joinPayMch/sendCard.htm",
+            type:"POST",
+            data:{
+                "id":id,
+                "cardPositive":cardPositive,
+                "cardNegative":cardNegative
+            },
+            success: function(data){
+                layer.msg(data.data);
+            }
+        })
+    });
+    $('#searchApprove').click(function(){
+        var id=	document.getElementById("adminId").value;
+        $.ajax({
+            url:"/asl-admin/joinPayMch/searchApprove.htm?id="+id,
+            type:"POST",
+            success: function(data){
+                layer.msg(data.data);
+            }
+        })
+    });
 </script>
 </html>

+ 62 - 1
app-backend-web/src/main/webapp/WEB-INF/template/admin/adminPersonage/edit.ftl

@@ -190,13 +190,46 @@ $().ready(function() {
                 <th>
                     汇聚支付签约状态:
                 </th>
-                <td id="orderStatus">
+                <td >
                     ${mch.sign_status}    &nbsp &nbsp <button type="button" id="qianyue" >签约</button>
                 </td>
                 <input type="text" style="display: none" value="${mch.adminId}" name="sn" id="adminId" class="text" required/>
             </tr>
             <tr>
                 <th>
+                    身份证正面存放地址:
+                </th>
+                <td >
+                    <input type="text"  name="sn" id="card_positive" style="width: 300px"/>
+                </td>
+            </tr>
+            <tr>
+                <th>
+                    身份证背面存放地址:
+                </th>
+                <td id="orderStatus">
+                    <input type="text"  name="sn" id="card_negative" style="width: 300px"/>
+                    &nbsp &nbsp <button type="button" id="sendCard" >上传</button>
+                </td>
+            </tr>
+            <tr>
+                <th>
+                    身份证审核情况:
+                </th>
+                <td id="orderStatus">
+                    ${mch.approve_status} &nbsp &nbsp <button type="button" id="searchApprove" >查询</button>
+                </td>
+            </tr>
+            <tr>
+                <th>
+                    身份证审核备注:
+                </th>
+                <td id="orderStatus">
+                    ${mch.approve_note}
+                </td>
+            </tr>
+            <tr>
+                <th>
                     <span class="requiredField">*</span>联系人名称:
                 </th>
                 <td>
@@ -340,5 +373,33 @@ $().ready(function() {
             }
         })
     });
+
+    $('#sendCard').click(function(){
+        var id = document.getElementById("adminId").value;
+        var cardPositive = document.getElementById("card_positive").value;
+        var cardNegative = document.getElementById("card_negative").value;
+        $.ajax({
+            url:"/asl-admin/joinPayMch/sendCard.htm",
+            type:"POST",
+            data:{
+                "id":id,
+                "cardPositive":cardPositive,
+                "cardNegative":cardNegative
+            },
+            success: function(data){
+                layer.msg(data.data);
+            }
+        })
+    });
+    $('#searchApprove').click(function(){
+        var id=	document.getElementById("adminId").value;
+        $.ajax({
+            url:"/asl-admin/joinPayMch/searchApprove.htm?id="+id,
+            type:"POST",
+            success: function(data){
+                layer.msg(data.data);
+            }
+        })
+    });
 </script>
 </html>

+ 62 - 0
app-backend-web/src/main/webapp/WEB-INF/template/admin/joinpay/mch/edit.ftl

@@ -124,6 +124,40 @@ $().ready(function() {
                 <td id="orderStatus">
                     ${mch.sign_status}    &nbsp &nbsp <button type="button" id="qianyue" >签约</button>
                 </td>
+                <input type="text" style="display: none" value="${mch.adminId}" name="sn" id="adminId" class="text" required/>
+            </tr>
+            <tr>
+                <th>
+                    身份证正面存放地址:
+                </th>
+                <td >
+                    <input type="text"  id="card_positive"  style="width: 300px"/>
+                </td>
+            </tr>
+            <tr>
+                <th>
+                    身份证背面存放地址:
+                </th>
+                <td >
+                    <input type="text"   id="card_negative"  style="width: 300px">
+                    &nbsp &nbsp <button type="button" id="sendCard" >上传</button>
+                </td>
+            </tr>
+            <tr>
+                <th>
+                    身份证审核情况:
+                </th>
+                <td id="orderStatus">
+                    ${mch.approve_status} &nbsp &nbsp <button type="button" id="searchApprove" >查询</button>
+                </td>
+            </tr>
+            <tr>
+                <th>
+                    身份证审核备注:
+                </th>
+                <td id="orderStatus">
+                    ${mch.approve_note}
+                </td>
             </tr>
 			<tr>
 				<th>
@@ -272,5 +306,33 @@ $().ready(function() {
             }
         })
     });
+
+    $('#sendCard').click(function(){
+        var id = document.getElementById("adminId").value;
+        var cardPositive = document.getElementById("card_positive").value;
+        var cardNegative = document.getElementById("card_negative").value;
+        $.ajax({
+            url:"/asl-admin/joinPayMch/sendCard.htm",
+            type:"POST",
+            data:{
+                "id":id,
+                "cardPositive":cardPositive,
+                "cardNegative":cardNegative
+            },
+            success: function(data){
+                layer.msg(data.data);
+            }
+        })
+    });
+    $('#searchApprove').click(function(){
+        var id=	document.getElementById("adminId").value;
+        $.ajax({
+            url:"/asl-admin/joinPayMch/searchApprove.htm?id="+id,
+            type:"POST",
+            success: function(data){
+                layer.msg(data.data);
+            }
+        })
+    });
 </script>
 </html>

+ 24 - 0
app-entity/src/main/java/com/hboxs/joinpay/entity/Mch.java

@@ -245,6 +245,14 @@ public class Mch extends BaseEntity {
      * 签约流水号
      */
     private String sign_trx_no;
+    /**
+     * 图片审核状态
+     */
+    private String approve_status;
+    /**
+     * 图片审核备注
+     */
+    private String approve_note;
 
     /**
      *
@@ -260,6 +268,22 @@ public class Mch extends BaseEntity {
      */
     private String alt_mch_no;
 
+    public String getApprove_status() {
+        return approve_status;
+    }
+
+    public void setApprove_status(String approve_status) {
+        this.approve_status = approve_status;
+    }
+
+    public String getApprove_note() {
+        return approve_note;
+    }
+
+    public void setApprove_note(String approve_note) {
+        this.approve_note = approve_note;
+    }
+
     public String getSign_status() {
         return sign_status;
     }

+ 9 - 1
app-service/src/main/java/com/hboxs/service/MchService.java

@@ -69,5 +69,13 @@ public interface MchService extends BaseService<Mch, Long> {
      * @return : Constant.correct_code=成功,其他String表示错误信息
      */
     public String refreshMyAccount(Mch mch);
-
+    /**
+     * 传送身份证图片
+     * @return : Constant.correct_code=成功,其他String表示错误信息
+     */
+    public String sendCard(Mch mch,String cardPositive,String cardNegative);
+    /**
+     * 查询身份证照片审核状态
+     */
+    String searchApprove(Mch mch);
 }

+ 195 - 0
app-service/src/main/java/com/hboxs/service/impl/MchServiceImpl.java

@@ -18,9 +18,14 @@ import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Service;
+import org.springframework.util.Base64Utils;
+import sun.misc.BASE64Encoder;
+import sun.net.www.content.image.png;
 
 import javax.annotation.Resource;
+import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -678,6 +683,196 @@ public class MchServiceImpl extends BaseServiceImpl<Mch, Long> implements MchSer
     }
 
     /**
+     * 传送身份证图片
+     * @param
+     * @return
+     */
+    @Override
+    public String sendCard(Mch mch,String cardPositive,String cardNegative) {
+
+        String url = "https://www.joinpay.com/allocFunds";
+
+        if(StringUtils.isEmpty(mch.getAlt_mch_no())){
+            return "找不到商家编号";
+        }
+        String card_positive = ImageToBase64ByLocal(cardPositive);
+        String card_negative = ImageToBase64ByLocal(cardNegative);
+
+        JSONObject requestData = new JSONObject(new LinkedHashMap());
+        requestData.put("alt_mch_no" , mch.getAlt_mch_no());
+        requestData.put("card_positive" , card_positive);
+        requestData.put("card_negative" , card_negative);
+
+        JSONObject requestJson = new JSONObject(new TreeMap<String, Object>());
+        requestJson.put("method", "altMchPics.uploadPic");
+        requestJson.put("version", "1.0");
+        requestJson.put("data", requestData);
+        // 32位随机字符串
+        String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
+        requestJson.put("rand_str", uuid);
+        requestJson.put("sign_type", JoinpayConstant.sign_type_MD5);
+        requestJson.put("mch_no", JoinpayConstant.mch_no);
+
+        String sign = createMD5Sign(requestJson , JoinpayConstant.key);
+        requestJson.put("sign", sign.toUpperCase());
+        logger.info("请求参数:" + requestJson);
+        String back=null;
+        org.json.JSONObject jsonObject;
+        try {
+
+            jsonObject = HttpClientUtils.postJson(url, requestJson.toString());
+            logger.info("响应参数:" + jsonObject);
+
+            // 判断请求是否正确,受理成功
+            if(jsonObject.has("resp_code")){
+                String resp_code = jsonObject.getString("resp_code");
+                mch.setResp_code(resp_code);
+            }else{
+                return "请求失败";
+            }
+            // 处理data
+            if(jsonObject.has("data")){
+                org.json.JSONObject data = jsonObject.getJSONObject("data");
+                String biz_code = data.getString("biz_code");
+                if(biz_code.equals("B100000")){
+                    String approve_status = "审核中";
+                    mch.setApprove_status(approve_status);
+                    mch.setApprove_note("");
+                    back = approve_status;
+                }
+                if(biz_code.equals("B100002")){
+                    String approve_status = "上传失败";
+                    String approve_note = data.getString("biz_msg");
+                    mch.setApprove_note(approve_note);
+                    mch.setApprove_status(approve_status);
+                    back = approve_status;
+                }
+                if(biz_code.equals("B101017")){
+                    String approve_status = "上传失败";
+                    String approve_note = data.getString("biz_msg");
+                    mch.setApprove_note(approve_note);
+                    mch.setApprove_status(approve_status);
+                    back = approve_status;
+                }
+                update(mch);
+            }
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return back;
+    }
+
+    /**
+     * 查询身份证照片审核状态
+     * @param
+     * @return
+     */
+    @Override
+    public String searchApprove(Mch mch) {
+
+        String url = "https://www.joinpay.com/allocFunds";
+
+        if(StringUtils.isEmpty(mch.getAlt_mch_no())){
+            return "找不到商家编号";
+        }
+        JSONObject requestData = new JSONObject(new LinkedHashMap());
+        requestData.put("alt_mch_no" , mch.getAlt_mch_no());
+
+        JSONObject requestJson = new JSONObject(new TreeMap<String, Object>());
+        requestJson.put("method", "altMchPics.queryPicsInfo");
+        requestJson.put("version", "1.0");
+        requestJson.put("data", requestData);
+        // 32位随机字符串
+        String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
+        requestJson.put("rand_str", uuid);
+        requestJson.put("sign_type", JoinpayConstant.sign_type_MD5);
+        requestJson.put("mch_no", JoinpayConstant.mch_no);
+
+        String sign = createMD5Sign(requestJson , JoinpayConstant.key);
+        requestJson.put("sign", sign.toUpperCase());
+        logger.info("请求参数:" + requestJson);
+        String back=null;
+        org.json.JSONObject jsonObject;
+        try {
+
+            jsonObject = HttpClientUtils.postJson(url, requestJson.toString());
+            logger.info("响应参数:" + jsonObject);
+
+            // 判断请求是否正确,受理成功
+            if(jsonObject.has("resp_code")){
+                String resp_code = jsonObject.getString("resp_code");
+                mch.setResp_code(resp_code);
+            }else{
+                return "请求失败";
+            }
+            // 处理data
+            if(jsonObject.has("data")){
+                org.json.JSONObject data = jsonObject.getJSONObject("data");
+                String biz_code = data.getString("biz_code");
+                if(biz_code.equals("B100000")){
+                    String approve_status = "审核通过";
+                    String approve_note = data.getString("approve_note");
+                    mch.setApprove_note(approve_note);
+                    mch.setApprove_status(approve_status);
+                    back = approve_status;
+                }
+                if(biz_code.equals("B110008")){
+                    String approve_status = "审核未通过";
+                    String approve_note = data.getString("biz_msg");
+                    mch.setApprove_note(approve_note);
+                    mch.setApprove_status(approve_status);
+                    back = approve_status;
+                }
+                if(biz_code.equals("B101018")){
+                    String approve_status = "审核未通过";
+                    String approve_note = data.getString("biz_msg");
+                    mch.setApprove_note(approve_note);
+                    mch.setApprove_status(approve_status);
+                    back = approve_status;
+                }
+                update(mch);
+            }
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return back;
+    }
+    /**
+         * 本地图片转换成base64字符串
+         *
+         * @param imgFile 图片本地路径
+          * @return
+         */
+    public static String ImageToBase64ByLocal(String imgFile) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
+
+
+        InputStream in = null;
+              byte[] data = null;
+              // 读取图片字节数组
+              try {
+                  in = new FileInputStream(imgFile);
+                  data = new byte[in.available()];
+                  in.read(data);
+                    in.close();
+                 } catch (IOException e) {
+                    e.printStackTrace();
+                 }
+             // 对字节数组Base64编码
+             BASE64Encoder encoder = new BASE64Encoder();
+            String[] strings = imgFile.split("\\.");
+            if(strings.length>1){
+                String str = strings[strings.length-1];
+                String title = "data:image/"+str+";base64,";
+                return title+encoder.encode(data);// 返回Base64编码过的字节数组字符串
+            }else {
+                return null;
+            }
+          }
+    /**
      * 签名算法sign , MD5 签名
      * @param requestJson
      * @return