Bladeren bron

Merge branch 'dev' of wujunjie/patient-co-management into dev

trick9191 7 jaren geleden
bovenliggende
commit
09fc3bf030

+ 32 - 51
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PatientPrescriptionPayService.java

@ -3,17 +3,12 @@ package com.yihu.wlyy.service.app.prescription;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.wlyy.entity.charge.WlyyCharge;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.message.Message;
import com.yihu.wlyy.entity.message.Message;
import com.yihu.wlyy.entity.organization.Hospital;
import com.yihu.wlyy.entity.organization.Hospital;
import com.yihu.wlyy.entity.organization.HospitalMapping;
import com.yihu.wlyy.entity.organization.HospitalMapping;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.SignFamily;
import com.yihu.wlyy.entity.patient.prescription.*;
import com.yihu.wlyy.entity.patient.prescription.*;
import com.yihu.wlyy.entity.ylz.PayConfigura;
import com.yihu.wlyy.entity.zydict.ZyPushLog;
import com.yihu.wlyy.entity.zydict.ZyPushLog;
import com.yihu.wlyy.repository.charge.ChargeDao;
import com.yihu.wlyy.repository.charge.ChargeDao;
import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.repository.doctor.DoctorDao;
@ -22,19 +17,19 @@ import com.yihu.wlyy.repository.organization.HospitalDao;
import com.yihu.wlyy.repository.organization.HospitalMappingDao;
import com.yihu.wlyy.repository.organization.HospitalMappingDao;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.prescription.*;
import com.yihu.wlyy.repository.ylz.PayConfiguraDao;
import com.yihu.wlyy.repository.prescription.PrescriptionDao;
import com.yihu.wlyy.repository.prescription.PrescriptionExpressageDao;
import com.yihu.wlyy.repository.prescription.PrescriptionInfoDao;
import com.yihu.wlyy.repository.prescription.PrescriptionPayDao;
import com.yihu.wlyy.repository.zydict.ZyPushLogDao;
import com.yihu.wlyy.repository.zydict.ZyPushLogDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.service.third.httplog.LogService;
import com.yihu.wlyy.service.third.httplog.LogService;
import com.yihu.wlyy.service.third.jw.JwPrescriptionService;
import com.yihu.wlyy.service.third.jw.JwPrescriptionService;
import com.yihu.wlyy.service.weixin.wxpay.common.Configure;
import com.yihu.wlyy.service.weixin.wxpay.model.BindCard;
import com.yihu.wlyy.service.weixin.wxpay.model.BindCard;
import com.yihu.wlyy.service.weixin.wxpay.model.Charge;
import com.yihu.wlyy.service.weixin.wxpay.service.OnePayService;
import com.yihu.wlyy.service.weixin.wxpay.service.OnePayService;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.util.MessageType;
import com.yihu.wlyy.util.SystemConf;
import com.yihu.wlyy.util.SystemConf;
import com.yihu.wlyy.web.wx.OnePayController;
import com.ylzinfo.onepay.sdk.OnepayDefaultClient;
import com.ylzinfo.onepay.sdk.OnepayDefaultClient;
import com.ylzinfo.onepay.sdk.domain.RequestParams;
import com.ylzinfo.onepay.sdk.domain.RequestParams;
import com.ylzinfo.onepay.sdk.domain.ResponseParams;
import com.ylzinfo.onepay.sdk.domain.ResponseParams;
@ -46,7 +41,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.security.access.method.P;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Service;
import org.springframework.util.StreamUtils;
import org.springframework.util.StreamUtils;
@ -56,7 +50,6 @@ import javax.transaction.Transactional;
import java.io.InputStream;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.StringWriter;
import java.lang.reflect.Method;
import java.nio.charset.Charset;
import java.nio.charset.Charset;
import java.text.SimpleDateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.*;
@ -83,7 +76,7 @@ public class PatientPrescriptionPayService extends BaseService {
    //    引入实例
    //    引入实例
    @Autowired
    @Autowired
    private PayConfiguraDao configuraDao;
    private Configure config;
    @Autowired
    @Autowired
    private ObjectMapper objectMapper;
    private ObjectMapper objectMapper;
    @Autowired
    @Autowired
@ -259,7 +252,6 @@ public class PatientPrescriptionPayService extends BaseService {
     * @return
     * @return
     */
     */
    public Map recipeReturnUrl(HttpServletRequest request, HttpServletResponse response, String accessToken) throws Exception {
    public Map recipeReturnUrl(HttpServletRequest request, HttpServletResponse response, String accessToken) throws Exception {
        PayConfigura config = configuraDao.findWorkConfigura();
        Map resultMap = new HashMap();
        Map resultMap = new HashMap();
        Prescription prescription = null;
        Prescription prescription = null;
        int flag = 0;
        int flag = 0;
@ -291,37 +283,37 @@ public class PatientPrescriptionPayService extends BaseService {
            String signType = request.getParameter("signType");
            String signType = request.getParameter("signType");
            String timestamp = request.getParameter("timestamp");
            String timestamp = request.getParameter("timestamp");
            String totalAmount = request.getParameter("totalAmount");//交易总金额
            String totalAmount = request.getParameter("totalAmount");//交易总金额
//            String tradeStatus = request.getParameter("tradeStatus");//交易状态
            String tradeStatus = request.getParameter("chargeStatus");//交易状态
            String tradeStatus = request.getParameter("tradeStatus");//交易状态
            String userId = request.getParameter("userId");//用户openID
            String userId = request.getParameter("userId");//用户openID
            String userName = request.getParameter("userName");//用户名字
            String userName = request.getParameter("userName");//用户名字
            String result = chargeQuery(outChargeNo, accessToken);//业务出参
            String result = chargeQuery(outChargeNo, accessToken);//业务出参
            org.json.JSONObject param = new org.json.JSONObject(result);
            org.json.JSONObject param = new org.json.JSONObject(result);
            String requestParam = param.getString("responseContent");
            String requestParam = param.getString("responseContent");
			System.out.println("requestParam:"+requestParam);
            org.json.JSONObject responseContents = new org.json.JSONObject(requestParam);//医保结构体
            org.json.JSONObject responseContents = new org.json.JSONObject(requestParam);//医保结构体
//            构建请求结构体
//            构建请求结构体
            msbody.put("appId",appId);
            msbody.put("billNo",billNo);
            msbody.put("cardNo",cardNo);
            msbody.put("channel",channel);
            msbody.put("chargeNo",chargeNo);
            msbody.put("chargeTime",chargeTime);
            msbody.put("idNo",idNo);
            msbody.put("idType",idType);
            msbody.put("insuranceAmount",insuranceAmount);
            msbody.put("outChargeNo",outChargeNo);
            msbody.put("outChargeTime",outChargeTime);
            msbody.put("selfPayAmount",selfPayAmount);
            msbody.put("sign",sign);
            msbody.put("signType",signType);
            msbody.put("timestamp",timestamp);
            msbody.put("totalAmount",totalAmount);
            msbody.put("tradeStatus",tradeStatus);
            msbody.put("userId",userId);
            msbody.put("userName",userName);
            msbody.put("responseContent",responseContents);
            msbody.put("appId", appId);
            msbody.put("billNo", billNo);
            msbody.put("cardNo", cardNo);
            msbody.put("channel", channel);
            msbody.put("chargeNo", chargeNo);
            msbody.put("chargeTime", chargeTime);
            msbody.put("idNo", idNo);
            msbody.put("idType", idType);
            msbody.put("insuranceAmount", insuranceAmount);
            msbody.put("outChargeNo", outChargeNo);
            msbody.put("outChargeTime", outChargeTime);
            msbody.put("selfPayAmount", selfPayAmount);
            msbody.put("sign", sign);
            msbody.put("signType", signType);
            msbody.put("timestamp", timestamp);
            msbody.put("totalAmount", totalAmount);
            msbody.put("tradeStatus", tradeStatus);
            msbody.put("userId", userId);
            msbody.put("userName", userName);
            msbody.put("responseContent", responseContents);
			System.out.println("recipeReturnUrl responseContents "+responseContents.toString());
            PrescriptionPay prescriptionPay = payDao.findByCode(outChargeNo);
            PrescriptionPay prescriptionPay = payDao.findByCode(outChargeNo);
            if (responseContents != null) {
            if (responseContents != null) {
                String miSettleNo = "";
                String miSettleNo = "";
@ -501,7 +493,6 @@ public class PatientPrescriptionPayService extends BaseService {
     * @return
     * @return
     */
     */
    public String receiveRecipeNotify(HttpServletRequest request, HttpServletResponse response) throws Exception {
    public String receiveRecipeNotify(HttpServletRequest request, HttpServletResponse response) throws Exception {
        PayConfigura config = configuraDao.findWorkConfigura();
        String result = null;
        String result = null;
        Prescription prescription = null;
        Prescription prescription = null;
@ -807,8 +798,7 @@ public class PatientPrescriptionPayService extends BaseService {
     * 长处方支付,成功则返回支付路径
     * 长处方支付,成功则返回支付路径
     */
     */
    @Transactional
    @Transactional
    public Map charge(int type, String addressJson, String orgCode, String prescriptionCode, int totalAmount, String people, String accessToken, String returnUrl,String deliveryTime) throws Exception {
        PayConfigura config = configuraDao.findWorkConfigura();
    public Map charge(int type, String addressJson, String orgCode, String prescriptionCode, int totalAmount, String people, String accessToken, String returnUrl, String deliveryTime) throws Exception {
        Map resultMap = new HashMap();
        Map resultMap = new HashMap();
        Prescription prescription = null;
        Prescription prescription = null;
@ -1120,8 +1110,6 @@ public class PatientPrescriptionPayService extends BaseService {
            Map<String, String> map = new HashMap<>();//请求结构体
            Map<String, String> map = new HashMap<>();//请求结构体
            map.put("feeType", "06");//长处方结算
            map.put("feeType", "06");//长处方结算
            map.put("settleType", "01"); //诊间医保结算
            map.put("settleType", "01"); //诊间医保结算
//            易联众新增字段代支付v1.3.7
            map.put("principalCardNo",ssc); //实际结算卡号( 默认为绑卡主体卡号)
            params.put("requestContent", objectMapper.writeValueAsString(map));// 请求结构体
            params.put("requestContent", objectMapper.writeValueAsString(map));// 请求结构体
            logger.info("================================>" + "Before msBody");
            logger.info("================================>" + "Before msBody");
            requestParams.setParam(params);
            requestParams.setParam(params);
@ -1136,12 +1124,7 @@ public class PatientPrescriptionPayService extends BaseService {
                JSONObject json = res.getParam();
                JSONObject json = res.getParam();
                String chargeNo = String.valueOf(json.get("chargeNo"));      //医保结算业务流水号
                String chargeNo = String.valueOf(json.get("chargeNo"));      //医保结算业务流水号
                result = String.valueOf(json.get("payUrl"));
                result = String.valueOf(json.get("payUrl"));
//                易联众新增字段代支付v1.3.7
                String traceTime = String.valueOf(json.get("traceTime"));
                String  traceNo = String.valueOf(json.get("traceNo"));
                prescriptionPay.setChargeNo(chargeNo);//支付后返回的流水号
                prescriptionPay.setChargeNo(chargeNo);//支付后返回的流水号
                prescriptionPay.setTraceTime(formatter.parse(traceTime));//交易成功时间
                prescriptionPay.setTraceNo(traceNo);//支付平台跟踪号
            } else {
            } else {
                isSuccess = false;
                isSuccess = false;
                flag = 0;
                flag = 0;
@ -1184,7 +1167,7 @@ public class PatientPrescriptionPayService extends BaseService {
        log.setType("3");
        log.setType("3");
        zyPushLogDao.save(log);
        zyPushLogDao.save(log);
        //保存长处方日志  type=2易联众对接 flag =1成功 flag=0 0失败 userType 1 患者 2医生
        //保存长处方日志  type=2易联众对接 flag =1成功 flag=0 0失败 userType 1 患者 2医生
        //logService.saveHttpLog(isSuccess, config.getRecipeChargeType(), "长处方结算", "POST", null, msgBody, response, error, logService.onepayType);
        logService.saveHttpLog(isSuccess, config.getRecipeChargeType(), "长处方结算", "POST", null, msgBody, response, error, logService.onepayType);
        payLogService.addLog(prescription, PrescriptionLog.PrescriptionLogType.pay.getValue(), flag, 1);
        payLogService.addLog(prescription, PrescriptionLog.PrescriptionLogType.pay.getValue(), flag, 1);
        if (!isSuccess) {
        if (!isSuccess) {
            throw new Exception(error);
            throw new Exception(error);
@ -1199,8 +1182,6 @@ public class PatientPrescriptionPayService extends BaseService {
     * 家庭医生签约支付查询
     * 家庭医生签约支付查询
     */
     */
    public String chargeQuery(String code, String accessToken) throws Exception {
    public String chargeQuery(String code, String accessToken) throws Exception {
        PayConfigura config = configuraDao.findWorkConfigura();
        int flag = 0;
        int flag = 0;
        Boolean isSuccess = true;
        Boolean isSuccess = true;
        String msgBody = "";
        String msgBody = "";
@ -1359,7 +1340,7 @@ public class PatientPrescriptionPayService extends BaseService {
        log.setStatus(Integer.toString(flag));
        log.setStatus(Integer.toString(flag));
        log.setType("3");
        log.setType("3");
        zyPushLogDao.save(log);
        zyPushLogDao.save(log);
//        logService.saveHttpLog(isSuccess, config.getChargeQueryType(), "长处方支付查询", "POST", null, msgBody, response, error, logService.onepayType);
        logService.saveHttpLog(isSuccess, config.getChargeQueryType(), "长处方支付查询", "POST", null, msgBody, response, error, logService.onepayType);
        if (!isSuccess) {
        if (!isSuccess) {
            throw new Exception(error);
            throw new Exception(error);
        }
        }

+ 129 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/weixin/wxpay/common/Configure.java

@ -0,0 +1,129 @@
package com.yihu.wlyy.service.weixin.wxpay.common;
import org.springframework.context.annotation.Configuration;
/**
 * User: hzp
 * Date: 20170518
 * 这里放置各种配置数据
 */
@Configuration
public class Configure {
	/******************************* 易联众统一支付平台 ***********************************************************/
//	private String onepayApi = "http://120.42.37.94:1301/onepay-web/";
//	private String onepayAppId = "1BGKM1UHM03P7B2CA8C000005626EB0E";
//	private String onepayAppSecret = "1BGKM1UHM03I7B2CA8C00000AB682E9A";
//			开发环境应用信息
//	private String onepayApi = "https://xmhealth.ylzpay.com:8080/";
	private String onepayApi = "http://xmhealth.ylzpay.com:8070/";
	private String onepayAppId = "1BLF5SEGN00087165F0A000027362BE5";
	private String onepayAppSecret = "1BLF5SCBO01V3E78A8C00000F3A0FFE7";
	private String bindCardType = "onepay.sicard.bind.info";
	private String chargeType = "onepay.trade.medical.charge";
	private String chargeQueryType = "onepay.trade.medical.charge.query";
	private String createSicardType = "onepay.sicard.createurl";
//	易联众异步回调
	private String receiveNotify = "wlyy.onepay.receiveNotify";
	private String returnUrl = "wlyy.onepay.returnUrl";
//  长处方系列
	private String recipeChargeType = "onepay.trade.long.recipe.charge";
	private String recipeReturnUrl = "wlyy.patient.prescription.pay.recipeReturnUrl";
	private String receiveRecipeNotify = "wlyy.patient.prescription.pay.receiveRecipeNotify";
	public String getRecipeChargeType() {
		return recipeChargeType;
	}
	public void setRecipeChargeType(String recipeChargeType) {
		this.recipeChargeType = recipeChargeType;
	}
	public String getRecipeReturnUrl() {
		return recipeReturnUrl;
	}
	public void setRecipeReturnUrl(String recipeReturnUrl) {
		this.recipeReturnUrl = recipeReturnUrl;
	}
	public String getReceiveRecipeNotify() {
		return receiveRecipeNotify;
	}
	public void setReceiveRecipeNotify(String receiveRecipeNotify) {
		this.receiveRecipeNotify = receiveRecipeNotify;
	}
	public String getReturnUrl() {
		return returnUrl;
	}
	public void setReturnUrl(String returnUrl) {
		this.returnUrl = returnUrl;
	}
	public String getReceiveNotify() {
		return receiveNotify;
	}
	public void setReceiveNotify(String receiveNotify) {
		this.receiveNotify = receiveNotify;
	}
	public String getOnepayApi() {
		return onepayApi;
	}
	public String getOnepayAppId() {
		return onepayAppId;
	}
	public String getOnepayAppSecret() {
		return onepayAppSecret;
	}
	public String getBindCardType() {
		return bindCardType;
	}
	public String getChargeType() {
		return chargeType;
	}
	public String getChargeQueryType() {
		return chargeQueryType;
	}
	public String getCreateSicardType() {
		return createSicardType;
	}
	/******************* 微信社保支付配置 ******************************************/
	//这个就是自己要保管好的私有Key了(切记只能放在自己的后台代码里,不能放在任何可能被看到源代码的客户端程序中)
	// 每次自己Post数据给API的时候都要用这个key来对所有字段进行签名,生成的签名会放在Sign这个字段,API收到Post数据的时候也会用同样的签名算法对Post过来的数据进行签名和验证
	// 收到API的返回的时候也要用这个key来对返回的数据算下签名,跟API的Sign数据进行比较,如果值不一致,有可能数据被第三方给篡改
	private String key = "2935b54b53a957d9516c920a544f2537";
	//微信分配的公众号ID(开通公众号之后可以获取到)
	private String appID = "wxd03f859efdf0873d";
	public String getKey(){
		return key;
	}
	public String getAppid(){
		return appID;
	}
	//获取token地址
	public String TOKEN_API = "https://api.weixin.qq.com/payinsurance/gettoken";
	//挂号/诊间支付统一下单 API 接口
	public String ORDER_API = "https://api.weixin.qq.com/payinsurance/unifiedorder?access_token ACCESS_TOKEN";
}

+ 4 - 114
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/weixin/wxpay/service/OnePayService.java

@ -9,14 +9,13 @@ import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.organization.HospitalMapping;
import com.yihu.wlyy.entity.organization.HospitalMapping;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.SignFamily;
import com.yihu.wlyy.entity.patient.SignFamily;
import com.yihu.wlyy.entity.ylz.PayConfigura;
import com.yihu.wlyy.repository.charge.ChargeDao;
import com.yihu.wlyy.repository.charge.ChargeDao;
import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.repository.organization.HospitalMappingDao;
import com.yihu.wlyy.repository.organization.HospitalMappingDao;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.ylz.PayConfiguraDao;
import com.yihu.wlyy.service.third.httplog.LogService;
import com.yihu.wlyy.service.third.httplog.LogService;
import com.yihu.wlyy.service.weixin.wxpay.common.Configure;
import com.yihu.wlyy.service.weixin.wxpay.model.BindCard;
import com.yihu.wlyy.service.weixin.wxpay.model.BindCard;
import com.yihu.wlyy.service.weixin.wxpay.model.Charge;
import com.yihu.wlyy.service.weixin.wxpay.model.Charge;
import com.yihu.wlyy.util.SystemConf;
import com.yihu.wlyy.util.SystemConf;
@ -25,6 +24,7 @@ import com.ylzinfo.onepay.sdk.OnepayDefaultClient;
import com.ylzinfo.onepay.sdk.domain.RequestParams;
import com.ylzinfo.onepay.sdk.domain.RequestParams;
import com.ylzinfo.onepay.sdk.domain.ResponseParams;
import com.ylzinfo.onepay.sdk.domain.ResponseParams;
import com.ylzinfo.onepay.sdk.utils.DateUtil;
import com.ylzinfo.onepay.sdk.utils.DateUtil;
import io.swagger.models.auth.In;
import org.slf4j.Logger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
@ -47,7 +47,7 @@ import java.util.*;
public class OnePayService {
public class OnePayService {
    @Autowired
    @Autowired
    private PayConfiguraDao configuraDao;
    private Configure config;
    @Autowired
    @Autowired
    private LogService logService;
    private LogService logService;
@ -137,7 +137,6 @@ public class OnePayService {
        String error = "";
        String error = "";
        List<BindCard> result = new ArrayList<BindCard>();
        List<BindCard> result = new ArrayList<BindCard>();
        PayConfigura config = configuraDao.findWorkConfigura();
        String appId = config.getOnepayAppId();
        String appId = config.getOnepayAppId();
        String appSecret = config.getOnepayAppSecret();
        String appSecret = config.getOnepayAppSecret();
        OnepayDefaultClient onepayClient = new OnepayDefaultClient(config.getOnepayApi(), appId, appSecret, signType, encryptType);
        OnepayDefaultClient onepayClient = new OnepayDefaultClient(config.getOnepayApi(), appId, appSecret, signType, encryptType);
@ -219,7 +218,6 @@ public class OnePayService {
        String result = "";
        String result = "";
        String channel = "WX_MMP";   //  医保支付渠道
        String channel = "WX_MMP";   //  医保支付渠道
        String subject = "家庭医生签约支付";   //  订单名称
        String subject = "家庭医生签约支付";   //  订单名称
        PayConfigura config = configuraDao.findWorkConfigura();
        OnepayDefaultClient onepayClient = new OnepayDefaultClient(config.getOnepayApi(), appId, appSecret, signType, encryptType);
        OnepayDefaultClient onepayClient = new OnepayDefaultClient(config.getOnepayApi(), appId, appSecret, signType, encryptType);
//     未真正完成支付以前预存储支付信息到wlyy_charge表
//     未真正完成支付以前预存储支付信息到wlyy_charge表
@ -328,8 +326,6 @@ public class OnePayService {
            Map<String, String> map = new HashMap<>();
            Map<String, String> map = new HashMap<>();
            map.put("feeType", "04");//家庭医生签约
            map.put("feeType", "04");//家庭医生签约
            map.put("settleType", "03"); //健康账户支付
            map.put("settleType", "03"); //健康账户支付
            //易联众新增字段v1.3.7
            map.put("principalCardNo", ssc); //实际签约卡号( 默认为绑卡主体卡号)
            params.put("requestContent", objectMapper.writeValueAsString(map));// 请求结构体
            params.put("requestContent", objectMapper.writeValueAsString(map));// 请求结构体
            requestParams.setParam(params);
            requestParams.setParam(params);
            msgBody = JSON.toJSONString(requestParams);
            msgBody = JSON.toJSONString(requestParams);
@ -377,7 +373,6 @@ public class OnePayService {
        String response = "";
        String response = "";
        String error = "";
        String error = "";
        String result = null;
        String result = null;
        PayConfigura config = configuraDao.findWorkConfigura();
        WlyyCharge charge = chargeDao.findByCode(code);
        WlyyCharge charge = chargeDao.findByCode(code);
        HospitalMapping hospitalMapping = hospitalMappingDao.findByCode(charge.getHospital());
        HospitalMapping hospitalMapping = hospitalMappingDao.findByCode(charge.getHospital());
@ -413,109 +408,7 @@ public class OnePayService {
//                result = JSON.toJavaObject(res.getParam(), Charge.class);
//                result = JSON.toJavaObject(res.getParam(), Charge.class);
                result = JSON.toJSONString(res.getParam());
                result = JSON.toJSONString(res.getParam());
//                 新增保存数据
                JSONObject request = JSON.parseObject(result);
//                String tradeStatus = request.getString("tradeStatus");//交易状态
                String chargeStatus = request.getString("chargeStatus");//交易状态
                String chargeNo = request.getString("chargeNo");//支付平台流水号
                String chargeTime = request.getString("chargeTime");//支付平台交易成功时间
                String outChargeNo = request.getString("outChargeNo");//接入应用业务流水号
                String outChargeTime = request.getString("outChargeTime");//接入应用时间
                String medOrgNo = request.getString("medOrgNo");//医疗机构编号
                String medOrgName = request.getString("medOrgName");//医疗机构名称
                String billNo = request.getString("billNo");//待结算费用单据号
                String cardNo = request.getString("cardNo");//医保卡号
                String totalAmount = request.getString("totalAmount");//交易总金额
                String insuranceAmount = request.getString("insuranceAmount");//医保支付金额
                String selfPayAmount = request.getString("selfPayAmount");//自付金额
                String userId = request.getString("userId");//用户openID
                String userName = request.getString("userName");//用户名字
                String idNo = request.getString("idNo");//证件号码
                String idType = request.getString("idType");//证件类型
//                String appId = request.getString("appId");
//                String channel = request.getString("channel");//支付方式
//                String sign = request.getString("sign");
//                String signType = request.getString("signType");
//                String timestamp = request.getString("timestamp");
                JSONObject responseContents = request.getJSONObject("responseContent");//医保结构体
                WlyyCharge prescriptionPay = chargeDao.findByCode(outChargeNo);
                if (responseContents != null) {
                    String miRegisterNo = responseContents.getString("miRegisterNo");//医保挂号
                    String miCollectDate = responseContents.getString("miCollectDate");//收费日期
                    String miCollectTime = responseContents.getString("miCollectTime");//收费时间
                    String miSettleNo = responseContents.getString("miSettleNo");//医保收费单据号 (医保签约号)
                    String miCollectStatus = responseContents.getString("miCollectStatus");//扣费状态
                    String miRegisterStatus = responseContents.getString("miRegisterStatus");//登记状态
                    String cadresPay = responseContents.getString("cadresPay");//公务员补助
                    String miTotalFee = responseContents.getString("miTotalFee");//本次报销总额
                    String healthCarePay = responseContents.getString("healthCarePay");//保健基金支付
                    String heathPay = responseContents.getString("heathPay");//健康账户支付
                    String accountPay = responseContents.getString("accountPay");//个人账户支付
                    String selfPay = responseContents.getString("selfPay");//个人现金支付
                    String civilPay = responseContents.getString("civilPay");//民政补助金额
                    /*String miCollectorName = responseContents.getString("miCollectorName");//收费人姓名
                    String fundPay = responseContents.getString("fundPay");//基金支付
                    String commercePay = responseContents.getString("commercePay");//商业保险支付
                    String familyPay = responseContents.getString("familyPay");//共济账户支付
                    String civilZone = responseContents.getString("civilZone");//民政行政区号
                    String bdrugPay = responseContents.getString("bdrugPay");//乙类支付金额
                    String unlessAmount = responseContents.getString("unlessAmount");//非医保费用
                    String exceedAmount = responseContents.getString("exceedAmount");//超封顶线金额
                    String accountBalance = responseContents.getString("accountBalance");//个人账户余额
                    String healthBalance = responseContents.getString("healthBalance");//健康账户余额*/
                    prescriptionPay.setMiRegisterNo(miRegisterNo);//医保挂号
                    /*prescriptionPay.setMiSettleNo(miSettleNo);//医保收费单据号
                    SimpleDateFormat formatDate = new SimpleDateFormat("yyyyMMdd");
                    prescriptionPay.setMiCollectDate(formatDate.parse(miCollectDate));//收费日期
                    SimpleDateFormat formatTime = new SimpleDateFormat("HHmm");
                    prescriptionPay.setMiCollectTime(formatTime.parse(miCollectTime));//收费时间
                    prescriptionPay.setMiCollectorName(miCollectorName);//收费人姓名
                    prescriptionPay.setMiTotalFee(Integer.parseInt(miTotalFee));//本次报销总额
                    prescriptionPay.setSelfPay(Integer.parseInt(selfPay));//个人现金支付
                    prescriptionPay.setAccountPay(Integer.parseInt(accountPay));//个人账户支付
                    prescriptionPay.setHeathPay(Integer.parseInt(heathPay));//健康账户支付
                    prescriptionPay.setCadresPay(Integer.parseInt(cadresPay));//公务员补助
                    prescriptionPay.setFundPay(Integer.parseInt(fundPay));//基金支付
                    prescriptionPay.setHealthCarePay(Integer.parseInt(healthCarePay));//保健基金支付
                    prescriptionPay.setCommercePay(Integer.parseInt(commercePay));//商业保险支付
                    prescriptionPay.setFamilyPay(Integer.parseInt(familyPay));//共济账户支付
                    prescriptionPay.setCivilPay(Integer.parseInt(civilPay));//民政补助金额
                    prescriptionPay.setCivilZone(civilZone);//民政行政区号
                    prescriptionPay.setBdrugPay(Integer.parseInt(bdrugPay));//乙类支付金额
                    prescriptionPay.setUnlessAmount(Integer.parseInt(unlessAmount));//非医保费用
                    prescriptionPay.setExceedAmount(Integer.parseInt(exceedAmount));//超封顶线金额
                    prescriptionPay.setAccountBalance(Integer.parseInt(accountBalance));//个人账户余额
                    prescriptionPay.setHealthBalance(Integer.parseInt(healthBalance));//健康账户余额*/
                }
                if ("0".equals(chargeStatus) || "SUCCESS".equals(chargeStatus)) {
                    prescriptionPay.setTradeStatus("1");//交易状态 成功1 失败0
                }else {
                    prescriptionPay.setTradeStatus("0");//交易状态 成功1 失败0
                }
                prescriptionPay.setChargeNo(chargeNo);//支付流水号
                SimpleDateFormat formatDate = new SimpleDateFormat("yyyyMMddHHmmss");
                prescriptionPay.setChargeTime(chargeTime);//支付平台交易成功时间
//                prescriptionPay.setOutChargeTime(formatDate.parse(outChargeTime));//接入应用内业务时间
                prescriptionPay.setMedOrgNo(medOrgNo);//医疗机构编号
                prescriptionPay.setMedOrgName(medOrgName);//医疗机构名称
                prescriptionPay.setBillNo(billNo);//待结算费用单据号
                prescriptionPay.setSsc(cardNo);//医保卡号
                prescriptionPay.setTotalAmount(Integer.parseInt(totalAmount));//交易总金额
                prescriptionPay.setInsuranceAmount(Integer.parseInt(insuranceAmount));//医保支付金额
                prescriptionPay.setSelfpayAmount(Integer.parseInt(selfPayAmount));//自付金额
                prescriptionPay.setOpenid(userId);
                prescriptionPay.setName(userName);
                prescriptionPay.setIdType(idType);//证件类型
                prescriptionPay.setIdNo(idNo);//证件号码
                //        保存数据库更改记录
                chargeDao.save(prescriptionPay);
//                 返回医保机构体
//                System.out.println("请求成功,返回参数:" + result.getTradeStatus() + "  " + result.getUserName());
//                System.out.println("请求成功,返回参数:" + result.getTradeStatus() + "  " + result.getUserName());
                LOGGER.info("请求成功,返回参数: "+result);
                LOGGER.info("请求成功,返回参数: "+result);
@ -550,7 +443,6 @@ public class OnePayService {
        String response = "";
        String response = "";
        String error = "";
        String error = "";
        String result = "";
        String result = "";
        PayConfigura config = configuraDao.findWorkConfigura();
        String appId = config.getOnepayAppId();
        String appId = config.getOnepayAppId();
        String appSecret = config.getOnepayAppSecret();
        String appSecret = config.getOnepayAppSecret();
@ -569,8 +461,6 @@ public class OnePayService {
            JSONObject params = new JSONObject();
            JSONObject params = new JSONObject();
            params.put("openId", openid);
            params.put("openId", openid);
            params.put("accId", accId);  //微信公众号开发者ID
            params.put("accId", accId);  //微信公众号开发者ID
//           易联众新增字段代支付v1.3.7
            params.put("createType", "sicard");  //生成类型 sicard 个人电子社保卡 OR family 家庭成员绑卡 ( 默认 sicard)
            requestParams.setParam(params);
            requestParams.setParam(params);
            requestParams.setTransType(config.getCreateSicardType());
            requestParams.setTransType(config.getCreateSicardType());

+ 2 - 5
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/wx/OnePayController.java

@ -4,13 +4,12 @@ import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.wlyy.entity.charge.WlyyCharge;
import com.yihu.wlyy.entity.charge.WlyyCharge;
import com.yihu.wlyy.entity.organization.HospitalMapping;
import com.yihu.wlyy.entity.organization.HospitalMapping;
import com.yihu.wlyy.entity.ylz.PayConfigura;
import com.yihu.wlyy.repository.charge.ChargeDao;
import com.yihu.wlyy.repository.charge.ChargeDao;
import com.yihu.wlyy.repository.organization.HospitalMappingDao;
import com.yihu.wlyy.repository.organization.HospitalMappingDao;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.ylz.PayConfiguraDao;
import com.yihu.wlyy.service.third.httplog.LogService;
import com.yihu.wlyy.service.third.httplog.LogService;
import com.yihu.wlyy.service.weixin.wxpay.common.Configure;
import com.yihu.wlyy.service.weixin.wxpay.model.BindCard;
import com.yihu.wlyy.service.weixin.wxpay.model.BindCard;
import com.yihu.wlyy.service.weixin.wxpay.model.Charge;
import com.yihu.wlyy.service.weixin.wxpay.model.Charge;
import com.yihu.wlyy.service.weixin.wxpay.service.OnePayService;
import com.yihu.wlyy.service.weixin.wxpay.service.OnePayService;
@ -70,7 +69,7 @@ public class OnePayController extends WeixinBaseController {
    @Autowired
    @Autowired
    LogService logService;
    LogService logService;
    @Autowired
    @Autowired
    private PayConfiguraDao configuraDao;
    private Configure config;
    @Autowired
    @Autowired
    private HospitalMappingDao mappingDao;
    private HospitalMappingDao mappingDao;
    @Autowired
    @Autowired
@ -263,7 +262,6 @@ public class OnePayController extends WeixinBaseController {
     */
     */
    @RequestMapping(value = "/returnUrl")
    @RequestMapping(value = "/returnUrl")
    public void returnUrl(HttpServletRequest request, HttpServletResponse response) throws IOException, PayException {
    public void returnUrl(HttpServletRequest request, HttpServletResponse response) throws IOException, PayException {
        PayConfigura config = configuraDao.findWorkConfigura();
        Boolean isSuccess = false;
        Boolean isSuccess = false;
        String error = "";
        String error = "";
        String responses = "";
        String responses = "";
@ -349,7 +347,6 @@ public class OnePayController extends WeixinBaseController {
     */
     */
    @RequestMapping(value = "/receiveNotify")
    @RequestMapping(value = "/receiveNotify")
    public void receiveNotify(HttpServletRequest request, HttpServletResponse response) throws IOException, PayException {
    public void receiveNotify(HttpServletRequest request, HttpServletResponse response) throws IOException, PayException {
        PayConfigura config = configuraDao.findWorkConfigura();
        Boolean isSuccess = false;
        Boolean isSuccess = false;
        String error = "";
        String error = "";
        String responses = "";
        String responses = "";