微信小程序支付java视频_【原创】微信小程序支付(普通模式,公众号支付同适用)java后台案例...
/***
* 支付回調(diào)接口*/@RequestMapping("/userpaycallback")publicString wxUserPaycallback(HttpServletRequest request) {try{
Map params =wxUserPayService.getParameter2Map(request.getParameterMap(),
request.getInputStream());if (null ==params) {throw new Exception("回調(diào)參數(shù)為空");
}//校驗(yàn)
if (!wxUserPayService.verify(params)) {throw new Exception("校驗(yàn)失敗");
}
payDone(params);//支付處理return wxUserPayService.getPayOutMessage("SUCCESS", "成功").toMessage();
}catch(Exception e) {
e.printStackTrace();return wxUserPayService.getPayOutMessage("FALL", "失敗").toMessage();
}
}
/**
* 支付結(jié)果處理
*/
private void payDone(Map dataMap) throwsException {
System.out.println("支付回調(diào):" +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();//支付結(jié)果code
String out_trade_no = dataMap.get("out_trade_no").toString();//商戶交易訂單id,此為支付記錄id
if (!result_code.equals("SUCCESS")) {throw new Exception("支付回調(diào)失敗:" +JSON.toJSONString(dataMap));
}
Pay pay= payService.getById(out_trade_no);//獲取支付記錄
if (pay == null || pay.getStatus() != 10) {//10=可用/待支付 20=支付成功 30=支付失敗
throw new Exception("支付記錄已經(jīng)處理");
}
payService.pay(out_trade_no, result_code.equals("SUCCESS") ? 20 : 30);//根據(jù)回調(diào)結(jié)果更改支付結(jié)果狀態(tài)//升級(jí)成會(huì)員的數(shù)據(jù)處理
if(result_code.equals("SUCCESS")) {//支付結(jié)果SUCCESS,支付成功開通會(huì)員,進(jìn)行下一步操作
Document doc=newDocument();
doc.put("vipStatus", 20);//狀態(tài)20開通會(huì)員
doc.put("vipCreateTime", newDate());
doc.put("expireTime", StringUtil.getMonthNextOrBeforeDate(3));//設(shè)置過期時(shí)間為3個(gè)月后
userService.updateUserVip(pay.getUserId(),doc);
}
}
總結(jié)
以上是生活随笔為你收集整理的微信小程序支付java视频_【原创】微信小程序支付(普通模式,公众号支付同适用)java后台案例...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python拷贝文件夹目录和文件_Pyt
- 下一篇: java mongodb 增删改查_ja