瀏覽代碼

微信支付

傅行帆 6 年之前
父節點
當前提交
246165066e

+ 9
- 5
CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/WxPayController.java 查看文件

70
 	@ApiOperation(value = "手机订单支付完成后回调", notes = "手机订单支付完成后回调")
70
 	@ApiOperation(value = "手机订单支付完成后回调", notes = "手机订单支付完成后回调")
71
 	@RequestMapping(value = "/wxNotify",method = RequestMethod.POST)
71
 	@RequestMapping(value = "/wxNotify",method = RequestMethod.POST)
72
 	public String wxNotify(HttpServletRequest request, HttpServletResponse response){
72
 	public String wxNotify(HttpServletRequest request, HttpServletResponse response){
73
+		String failResult = "<xml>" + "<return_code><![CDATA[FAIL]]></return_code>" + "<return_msg><![CDATA[失败]]></return_msg>" + "</xml> ";
73
 		String resXml = "";
74
 		String resXml = "";
74
 		InputStream inStream;
75
 		InputStream inStream;
75
 		try {
76
 		try {
92
 			
93
 			
93
 			// xml转换为map
94
 			// xml转换为map
94
 			Map<String, String> resultMap = WXPayUtil.xmlToMap(result);
95
 			Map<String, String> resultMap = WXPayUtil.xmlToMap(result);
95
-			System.out.println("返回结果是:" + resultMap);
96
-			//处理业务逻辑 修改订单状态等
97
-			String state = wxPayService.wxNotify(resultMap);
96
+			if (WXPayConstants.SUCCESS.equalsIgnoreCase(resultMap.get("result_code"))) {
97
+				//处理业务逻辑 修改订单状态等
98
+				String state = wxPayService.wxNotify(resultMap);
99
+			}else{
100
+				return failResult;
101
+			}
102
+			
98
 		} catch (Exception e) {
103
 		} catch (Exception e) {
99
 			log.error("手机支付回调通知失败",e);
104
 			log.error("手机支付回调通知失败",e);
100
-			String result = "<xml>" + "<return_code><![CDATA[FAIL]]></return_code>" + "<return_msg><![CDATA[失败]]></return_msg>" + "</xml> ";
101
-			return result;
105
+			return failResult;
102
 			
106
 			
103
 		}
107
 		}
104
 		return "";
108
 		return "";

+ 2
- 1
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/WxPayServiceImpl.java 查看文件

50
 		Map<String, String> data = new HashMap<String, String>();
50
 		Map<String, String> data = new HashMap<String, String>();
51
 		data.put("body", "支付测试");
51
 		data.put("body", "支付测试");
52
 		//商品号唯一
52
 		//商品号唯一
53
-		data.put("out_trade_no", String.valueOf(System.currentTimeMillis()));
53
+		data.put("out_trade_no", String.valueOf(System.currentTimeMillis()) + billInvoiceId);
54
 		data.put("device_info", "");
54
 		data.put("device_info", "");
55
 		data.put("fee_type", "CNY");
55
 		data.put("fee_type", "CNY");
56
 		//金额 后台计算
56
 		//金额 后台计算
63
 		data.put("trade_type", "APP");
63
 		data.put("trade_type", "APP");
64
 		Map<String, String> resp = wxpay.unifiedOrder(data);
64
 		Map<String, String> resp = wxpay.unifiedOrder(data);
65
 		log.info("下单成功:{}", resp);
65
 		log.info("下单成功:{}", resp);
66
+		//插入下单记录表
66
 		
67
 		
67
 		//第二次重新生成签名
68
 		//第二次重新生成签名
68
 		Map<String, String> secondSignData = new HashMap<String, String>();
69
 		Map<String, String> secondSignData = new HashMap<String, String>();

+ 264
- 251
文档/MYSQL/smartCommunity.pdb
文件差異過大導致無法顯示
查看文件


+ 262
- 249
文档/MYSQL/smartCommunity.pdm
文件差異過大導致無法顯示
查看文件