java调用支付接口实例_微信小程序支付(普通模式)java后台案例(公众号支付同适用)...

/***

* 支付回调接口*/@RequestMapping("/userpaycallback")publicString wxUserPaycallback(HttpServletRequest request) {try{

Map params =wxUserPayService.getParameter2Map(request.getParameterMap(),

request.getInputStream());if (null ==params) {throw new Exception("回调参数为空");

}//校验

if (!wxUserPayService.verify(params)) {throw new Exception("校验失败");

}

payDone(params);//支付处理return wxUserPayService.getPayOutMessage("SUCCESS", "成功").toMessage();

}catch(Exception e) {

e.printStackTrace();return wxUserPayService.getPayOutMessage("FALL", "失败").toMessage();

}

}

/**

* 支付结果处理

*/

private void payDone(Map dataMap) throwsException {

System.out.println("支付回调:" +JSON.toJSONString(dataMap));//{"transaction_id":"4200000109201805293331420304","nonce_str":"402880e963a9764b0163a979a16e0002","bank_type":"CFT","openid":"oXI6G5Jc4D44y2wixgxE3OPwpDVg","sign":"262978D36A3093ACBE4B55707D6EA7B2","fee_type":"CNY","mch_id":"1491307962","cash_fee":"10","out_trade_no":"14913079622018052909183048768217","appid":"wxa177427bc0e60aab","total_fee":"10","trade_type":"JSAPI","result_code":"SUCCESS","time_end":"20180529091834","is_subscribe":"N","return_code":"SUCCESS"}

String result_code = dataMap.get("result_code").toString();//支付结果code

String out_trade_no = dataMap.get("out_trade_no").toString();//商户交易订单id,此为支付记录id

if (!result_code.equals("SUCCESS")) {throw new Exception("支付回调失败:" +JSON.toJSONString(dataMap));

}

Pay pay= payService.getById(out_trade_no);//获取支付记录

if (pay == null || pay.getStatus() != 10) {//10=可用/待支付 20=支付成功 30=支付失败

throw new Exception("支付记录已经处理");

}

payService.pay(out_trade_no, result_code.equals("SUCCESS") ? 20 : 30);//根据回调结果更改支付结果状态//升级成会员的数据处理

if(result_code.equals("SUCCESS")) {//支付结果SUCCESS,支付成功开通会员,进行下一步操作

Document doc=newDocument();

doc.put("vipStatus", 20);//状态20开通会员

doc.put("vipCreateTime", newDate());

doc.put("expireTime", StringUtil.getMonthNextOrBeforeDate(3));//设置过期时间为3个月后

userService.updateUserVip(pay.getUserId(),doc);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值