|
@@ -361,51 +361,62 @@ public class PayController {
|
|
|
*/
|
|
|
@RequestMapping(value = "/getCallback", consumes = "application/json", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
- public void getCallback(HttpServletRequest request,HttpServletResponse response){
|
|
|
+ public void getCallback(@RequestBody JSONObject request){
|
|
|
+
|
|
|
logger.info("回调返回过来的参数"+request);
|
|
|
- logger.info("ordNo:" + request.getParameter("ordNo"));
|
|
|
- logger.info("sign信息:" + request.getParameter("sign"));
|
|
|
+ logger.info("ordNo:" + request.get("ordNo").toString());
|
|
|
+ logger.info("sign信息:" + request.get("sign").toString());
|
|
|
Gson gson =new Gson();
|
|
|
- //获取回调参数信息
|
|
|
- String uuid=request.getParameter("uuid");////随行付交易流水号
|
|
|
- String mno=request.getParameter("mno");//发起交易的商户编号
|
|
|
- String ordNo=request.getParameter("ordNo");//商户生成的订单号
|
|
|
- String origOrdNo=request.getParameter("origOrdNo");//反交易退款异步通知
|
|
|
- String origUuid=request.getParameter("origUuid");//token
|
|
|
- String scene=request.getParameter("scene");//用户登录
|
|
|
- String amt=request.getParameter("amt");//用户登录
|
|
|
- String buyerId=request.getParameter("buyerId");//用户登录
|
|
|
- String buyerAccount=request.getParameter("buyerAccount");//用户登录
|
|
|
- String transactionId=request.getParameter("transactionId");//用户登录
|
|
|
- String drType=request.getParameter("drType");//借贷记标识 1-借,2-贷,3-其他
|
|
|
- String payType=request.getParameter("payType");//对订单的描述,取值范围:WECHAT:微信,ALIPAY:支付宝,UNIONPAY:
|
|
|
- String payBank=request.getParameter("payBank");//付款银行银行编码,例如 ICBC
|
|
|
- String pointAmount=request.getParameter("pointAmount");//代金券金额
|
|
|
- String totalOffstAmt=request.getParameter("totalOffstAmt");//消 费 者 付 款金额
|
|
|
- String settleAmt=request.getParameter("settleAmt");//商家入账金额
|
|
|
- String realRefundAmount=request.getParameter("realRefundAmount");//商家出账金额
|
|
|
- String recFeeAmt=request.getParameter("recFeeAmt");//交易手续费
|
|
|
- String recFeeRate=request.getParameter("recFeeRate");//交易手续费率
|
|
|
- String timeStamp=request.getParameter("timeStamp");//响应时间
|
|
|
- String sign=request.getParameter("sign");//签名
|
|
|
- String bizCode=request.getParameter("bizCode");//业务返回码
|
|
|
- String bizMsg=request.getParameter("bizMsg");//业 务 返 回 信息
|
|
|
- String openid=request.getParameter("openid");//微 信 或 支 付宝身份id()opendid userid
|
|
|
- String channelId=request.getParameter("channelId");//渠道商户号
|
|
|
- String subMechId=request.getParameter("subMechId");//子商户号
|
|
|
- String refBuyerAmt=request.getParameter("refBuyerAmt");//消 费 者 到 账金额
|
|
|
- String extend=request.getParameter("extend");//备用
|
|
|
+
|
|
|
+
|
|
|
+ String sxfUuid=request.get("sxfUuid").toString(); //随行付落单号
|
|
|
+ String payWay=request.get("payWay").toString(); //随行付交易方式
|
|
|
+ String payTime=request.get("payTime").toString(); //随行付交易时间
|
|
|
+ String uuid=request.get("uuid").toString(); //随行付交易流水号
|
|
|
+ String mno=request.get("mno").toString();//发起交易的商户编号
|
|
|
+ String ordNo=request.get("ordNo").toString();//商户生成的订单号
|
|
|
+ String amt=request.get("amt").toString();//金额
|
|
|
+ String buyerId=request.get("buyerId").toString();//用户登录
|
|
|
+ String transactionId=request.get("transactionId").toString();//用户登录
|
|
|
+ String drType=request.get("drType").toString();//借贷记标识 1-借,2-贷,3-其他
|
|
|
+ String payType=request.get("payType").toString();//对订单的描述,取值范围:WECHAT:微信,ALIPAY:支付宝,UNIONPAY:
|
|
|
+ String payBank=request.get("payBank").toString();//付款银行银行编码,例如 ICBC
|
|
|
+ String pointAmount=request.get("pointAmount").toString();//代金券金额
|
|
|
+ String totalOffstAmt=request.get("totalOffstAmt").toString();//消 费 者 付 款金额
|
|
|
+ String settleAmt=request.get("settleAmt").toString();//商家入账金额
|
|
|
+ String timeStamp=request.get("timeStamp").toString();//响应时间
|
|
|
+ String sign=request.get("sign").toString();//签名
|
|
|
+ String bizCode=request.get("bizCode").toString();//业务返回码
|
|
|
+ String bizMsg=request.get("bizMsg").toString();//业 务 返 回 信息
|
|
|
+ String openid=request.get("openid").toString();//微 信 或 支 付宝身份id()opendid userid
|
|
|
+ String channelId=request.get("channelId").toString();//渠道商户号
|
|
|
+ String subMechId=request.get("subMechId").toString();//子商户号
|
|
|
+ String finishTime=request.get("finishTime").toString();//交易完成时间
|
|
|
+ String clearDt=request.get("clearDt").toString();
|
|
|
+ String settlementBatchNo=request.get("settlementBatchNo").toString();
|
|
|
+
|
|
|
+ //String origOrdNo=request.get("origOrdNo").toString();//反交易退款异步通知
|
|
|
+ //String origUuid=request.get("origUuid").toString();//token
|
|
|
+ //String scene=request.get("scene").toString();//用户登录
|
|
|
+ //String buyerAccount=request.get("buyerAccount").toString();//
|
|
|
+ //String realRefundAmount=request.get("realRefundAmount").toString();//商家出账金额
|
|
|
+ //String recFeeAmt=request.get("recFeeAmt").toString();//交易手续费
|
|
|
+ //String recFeeRate=request.get("recFeeRate").toString();//交易手续费率
|
|
|
+ //String refBuyerAmt=request.get("refBuyerAmt").toString();//消 费 者 到 账金额
|
|
|
+ //String extend = extend=request.get("extend").toString();//备用
|
|
|
+
|
|
|
+
|
|
|
//将业务参数存放在 JSON 对象中
|
|
|
JSONObject reqData = new JSONObject();
|
|
|
+
|
|
|
+ reqData.put("sxfUuid",sxfUuid);
|
|
|
+ reqData.put("payWay",payWay);
|
|
|
+ reqData.put("payTime",payTime);
|
|
|
reqData.put("uuid",uuid);
|
|
|
reqData.put("mno",mno);
|
|
|
reqData.put("ordNo",ordNo);
|
|
|
- reqData.put("origOrdNo",origOrdNo);
|
|
|
- reqData.put("origUuid",origUuid);
|
|
|
- reqData.put("scene",scene);
|
|
|
reqData.put("amt",amt);
|
|
|
reqData.put("buyerId",buyerId);
|
|
|
- reqData.put("buyerAccount",buyerAccount);
|
|
|
reqData.put("transactionId",transactionId);
|
|
|
reqData.put("drType",drType);
|
|
|
reqData.put("payType",payType);
|
|
@@ -413,17 +424,25 @@ public class PayController {
|
|
|
reqData.put("pointAmount",pointAmount);
|
|
|
reqData.put("totalOffstAmt",totalOffstAmt);
|
|
|
reqData.put("settleAmt",settleAmt);
|
|
|
- reqData.put("realRefundAmount",realRefundAmount);
|
|
|
- reqData.put("recFeeAmt",recFeeAmt);
|
|
|
- reqData.put("recFeeRate",recFeeRate);
|
|
|
reqData.put("timeStamp",timeStamp);
|
|
|
reqData.put("bizCode",bizCode);
|
|
|
reqData.put("bizMsg",bizMsg);
|
|
|
reqData.put("openid",openid);
|
|
|
reqData.put("channelId",channelId);
|
|
|
reqData.put("subMechId",subMechId);
|
|
|
- reqData.put("refBuyerAmt",refBuyerAmt);
|
|
|
- reqData.put("extend",extend);
|
|
|
+ reqData.put("finishTime",finishTime);
|
|
|
+ reqData.put("clearDt",clearDt);
|
|
|
+ reqData.put("settlementBatchNo",settlementBatchNo);
|
|
|
+
|
|
|
+ //reqData.put("realRefundAmount",realRefundAmount);
|
|
|
+ //reqData.put("recFeeAmt",recFeeAmt);
|
|
|
+ //reqData.put("recFeeRate",recFeeRate);
|
|
|
+ //reqData.put("buyerAccount",buyerAccount);
|
|
|
+ //reqData.put("origOrdNo",origOrdNo);
|
|
|
+ //reqData.put("origUuid",origUuid);
|
|
|
+ //reqData.put("scene",scene);
|
|
|
+ //reqData.put("refBuyerAmt",refBuyerAmt);
|
|
|
+ //reqData.put("extend",extend);
|
|
|
//根据回调信息,先进行验签,验签后修改状态
|
|
|
logger.info("打印参数信息"+gson.toJson(reqData));
|
|
|
//不要对reqData排序 所以用LinkedHashMap
|
|
@@ -442,16 +461,21 @@ public class PayController {
|
|
|
String status = list.get(0).getStatus();
|
|
|
int ordId= list.get(0).getOrderId();
|
|
|
//状态为未支付 1 修改状态为已支付
|
|
|
- if (status.equals("1")) {
|
|
|
+ if (status.equals("0")) {
|
|
|
PayOrder payOrder = new PayOrder();
|
|
|
payOrder.setOrderId(ordId);
|
|
|
- payOrder.setStatus("2");
|
|
|
+ payOrder.setOrderNo(ordNo);
|
|
|
+ payOrder.setStatus("1");
|
|
|
payOrder.setPayDate(new Date()); //支付时间
|
|
|
payOrder.setReceivedAmt(Double.valueOf(settleAmt)); //settleAmt商家入账金额
|
|
|
- //根据修改状态
|
|
|
- payOrderService.getUpdatePayOrder(payOrder);
|
|
|
- req.put("code","success");
|
|
|
- req.put("msg","成功");
|
|
|
+ //修改订单状态
|
|
|
+ int count = payOrderService.getUpdatePayOrder(payOrder);
|
|
|
+ if(count == 1){
|
|
|
+ req.put("code","success");
|
|
|
+ req.put("msg","修改订单状态成功");
|
|
|
+ logger.info(req.toString());
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}else {
|
|
@@ -459,14 +483,5 @@ public class PayController {
|
|
|
req.put("code","fail");
|
|
|
req.put("msg","失败");
|
|
|
}
|
|
|
- try {
|
|
|
- response.setContentType("application/json; charset=UTF-8");
|
|
|
- response.setCharacterEncoding("UTF-8");
|
|
|
- response.getWriter().print(req);
|
|
|
- response.getWriter().flush();
|
|
|
- response.getWriter().close();
|
|
|
- }catch (Exception e){
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
}
|
|
|
}
|