|
@ -788,5 +788,65 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
|
|
|
logger.info(result);
|
|
|
return success("操作成功",result);
|
|
|
}
|
|
|
/**
|
|
|
* 商户回调通知
|
|
|
* @param request
|
|
|
* @param response
|
|
|
* @throws IOException
|
|
|
* @throws PayException
|
|
|
*/
|
|
|
@RequestMapping(value = "/ylzSettleRecord")
|
|
|
public String ylzSettleRecord(HttpServletRequest request, HttpServletResponse response) throws Exception{
|
|
|
response.setContentType("text/html;charset=utf-8");
|
|
|
OauthYlzConfigDO oauthYlzConfigDO = oauthYlzConfigDao.findById("ylz_pay_config");
|
|
|
if(oauthYlzConfigDO==null){
|
|
|
return "未找到支付配置文件";
|
|
|
}
|
|
|
String appId = oauthYlzConfigDO.getAppId();
|
|
|
String appSecret = oauthYlzConfigDO.getAppKey();
|
|
|
InputStream inputStream = request.getInputStream();
|
|
|
String params = StreamUtils.copyToString(inputStream, Charset.forName("UTF-8"));
|
|
|
logger.info("回调参数:{}", params);
|
|
|
if (StringUtil.isEmpty(params)) {
|
|
|
response.getWriter().write("empty");
|
|
|
return appId;
|
|
|
}
|
|
|
// 参数转换
|
|
|
ResponseParams<?> encryptRes = JSON.parseObject(params, ResponseParams.class);
|
|
|
OnepayDefaultClient client = new OnepayDefaultClient("", appId, appSecret, encryptRes.getSignType(), encryptRes.getEncryptType());
|
|
|
try {
|
|
|
logger.info("解密前:{}", JSON.toJSONString(encryptRes));
|
|
|
ResponseParams<?> decryptRes = client.decryptNotifyResponse(encryptRes);
|
|
|
logger.info("解密后:{}",JSON.toJSONString(decryptRes) );
|
|
|
boolean isDecrypt = ("-1".equals(decryptRes.getRespCode()) ? false : true); // 是否解密失败
|
|
|
if (!isDecrypt) {
|
|
|
response.getWriter().write("DECRYPT FAILURE");
|
|
|
} else {
|
|
|
boolean isVerify = client.verifyResponseSign(decryptRes);
|
|
|
logger.info("验签结果:{}", isVerify);
|
|
|
if (!isVerify) {
|
|
|
response.getWriter().write("FAILURE");
|
|
|
} else {
|
|
|
JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(decryptRes));
|
|
|
JSONObject param = jsonObject.getJSONObject("param");
|
|
|
logger.info("param"+params);
|
|
|
String outChargeNo = param.getString("outChargeNo");
|
|
|
String beginDate = param.getString("beginDate");
|
|
|
String endDate = param.getString("endDate");
|
|
|
String queryType = param.getString("queryType");
|
|
|
String billSn = param.getString("billSn");
|
|
|
String traceNo = param.getString("traceNo");
|
|
|
String pageNo = param.getString("pageNo");
|
|
|
String pageSize = param.getString("pageSize");
|
|
|
String result = ylzPayService.querySettledRecord(outChargeNo,beginDate,endDate,queryType,billSn,traceNo,pageNo,pageSize);
|
|
|
response.getWriter().write("SUCCESS");
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
response.getWriter().write(e.getMessage());
|
|
|
}
|
|
|
|
|
|
return appId;
|
|
|
}
|
|
|
|
|
|
}
|