|
31 | 31 | @RequestMapping(value = "wxPay") |
32 | 32 | public class PaymentController extends GenericController { |
33 | 33 |
|
34 | | - @Autowired |
35 | | - private WxPayConfig payConfig; |
36 | | - @Autowired |
37 | | - private WxPayService payService; |
| 34 | + @Autowired |
| 35 | + private WxPayConfig payConfig; |
| 36 | + @Autowired |
| 37 | + private WxPayService payService; |
38 | 38 |
|
39 | | - /** |
40 | | - * 用于返回预支付的结果 WxMpPrepayIdResult,一般不需要使用此接口 |
41 | | - * |
42 | | - * @param response |
43 | | - * @param request |
44 | | - * @throws WxErrorException |
45 | | - */ |
46 | | - @RequestMapping(value = "getPrepayIdResult") |
47 | | - public void getPrepayId(HttpServletResponse response, |
48 | | - HttpServletRequest request) throws WxErrorException, WxPayException { |
49 | | - WxPayUnifiedOrderRequest payInfo = WxPayUnifiedOrderRequest.newBuilder() |
50 | | - .openid(request.getParameter("openid")) |
51 | | - .outTradeNo(request.getParameter("out_trade_no")) |
52 | | - .totalFee(Integer.valueOf(request.getParameter("total_fee"))) |
53 | | - .body(request.getParameter("body")) |
54 | | - .tradeType(request.getParameter("trade_type")) |
55 | | - .spbillCreateIp(request.getParameter("spbill_create_ip")) |
56 | | - .notifyURL("") |
57 | | - .build(); |
58 | | - this.logger |
59 | | - .info("PartnerKey is :" + this.payConfig.getMchKey()); |
60 | | - WxPayUnifiedOrderResult result = this.payService.unifiedOrder(payInfo); |
61 | | - this.logger.info(new Gson().toJson(result)); |
62 | | - renderString(response, result); |
63 | | - } |
| 39 | + /** |
| 40 | + * 用于返回预支付的结果 WxMpPrepayIdResult,一般不需要使用此接口 |
| 41 | + * |
| 42 | + * @param response |
| 43 | + * @param request |
| 44 | + * @throws WxErrorException |
| 45 | + */ |
| 46 | + @RequestMapping(value = "getPrepayIdResult") |
| 47 | + public void getPrepayId(HttpServletResponse response, |
| 48 | + HttpServletRequest request) throws WxErrorException, WxPayException { |
| 49 | + WxPayUnifiedOrderRequest payInfo = WxPayUnifiedOrderRequest.newBuilder() |
| 50 | + .openid(request.getParameter("openid")) |
| 51 | + .outTradeNo(request.getParameter("out_trade_no")) |
| 52 | + .totalFee(Integer.valueOf(request.getParameter("total_fee"))) |
| 53 | + .body(request.getParameter("body")) |
| 54 | + .tradeType(request.getParameter("trade_type")) |
| 55 | + .spbillCreateIp(request.getParameter("spbill_create_ip")) |
| 56 | + .notifyURL("") |
| 57 | + .build(); |
| 58 | + this.logger |
| 59 | + .info("PartnerKey is :" + this.payConfig.getMchKey()); |
| 60 | + WxPayUnifiedOrderResult result = this.payService.unifiedOrder(payInfo); |
| 61 | + this.logger.info(new Gson().toJson(result)); |
| 62 | + renderString(response, result); |
| 63 | + } |
64 | 64 |
|
65 | | - /** |
66 | | - * 返回前台H5调用JS支付所需要的参数,公众号支付调用此接口 |
67 | | - * |
68 | | - * @param response |
69 | | - * @param request |
70 | | - */ |
71 | | - @RequestMapping(value = "getJSSDKPayInfo") |
72 | | - public void getJSSDKPayInfo(HttpServletResponse response, |
73 | | - HttpServletRequest request) { |
74 | | - ReturnModel returnModel = new ReturnModel(); |
75 | | - WxPayUnifiedOrderRequest prepayInfo = WxPayUnifiedOrderRequest.newBuilder() |
76 | | - .openid(request.getParameter("openid")) |
77 | | - .outTradeNo(request.getParameter("out_trade_no")) |
78 | | - .totalFee(Integer.valueOf(request.getParameter("total_fee"))) |
79 | | - .body(request.getParameter("body")) |
80 | | - .tradeType(request.getParameter("trade_type")) |
81 | | - .spbillCreateIp(request.getParameter("spbill_create_ip")) |
82 | | - .notifyURL("")//TODO(user) 填写通知回调地址 |
83 | | - .build(); |
| 65 | + /** |
| 66 | + * 返回前台H5调用JS支付所需要的参数,公众号支付调用此接口 |
| 67 | + * |
| 68 | + * @param response |
| 69 | + * @param request |
| 70 | + */ |
| 71 | + @RequestMapping(value = "getJSSDKPayInfo") |
| 72 | + public void getJSSDKPayInfo(HttpServletResponse response, |
| 73 | + HttpServletRequest request) { |
| 74 | + ReturnModel returnModel = new ReturnModel(); |
| 75 | + WxPayUnifiedOrderRequest prepayInfo = WxPayUnifiedOrderRequest.newBuilder() |
| 76 | + .openid(request.getParameter("openid")) |
| 77 | + .outTradeNo(request.getParameter("out_trade_no")) |
| 78 | + .totalFee(Integer.valueOf(request.getParameter("total_fee"))) |
| 79 | + .body(request.getParameter("body")) |
| 80 | + .tradeType(request.getParameter("trade_type")) |
| 81 | + .spbillCreateIp(request.getParameter("spbill_create_ip")) |
| 82 | + .notifyURL("")//TODO(user) 填写通知回调地址 |
| 83 | + .build(); |
84 | 84 |
|
85 | | - try { |
86 | | - Map<String, String> payInfo = this.payService.getPayInfo(prepayInfo); |
87 | | - returnModel.setResult(true); |
88 | | - returnModel.setDatum(payInfo); |
89 | | - renderString(response, returnModel); |
90 | | - } catch (WxPayException e) { |
91 | | - returnModel.setResult(false); |
92 | | - returnModel.setReason(e.getErrCodeDes()); |
93 | | - renderString(response, returnModel); |
94 | | - this.logger.error(e.getErrCodeDes()); |
95 | | - } |
| 85 | + try { |
| 86 | + Map<String, String> payInfo = this.payService.getPayInfo(prepayInfo); |
| 87 | + returnModel.setResult(true); |
| 88 | + returnModel.setDatum(payInfo); |
| 89 | + renderString(response, returnModel); |
| 90 | + } catch (WxPayException e) { |
| 91 | + returnModel.setResult(false); |
| 92 | + returnModel.setReason(e.getErrCodeDes()); |
| 93 | + renderString(response, returnModel); |
| 94 | + this.logger.error(e.getErrCodeDes()); |
96 | 95 | } |
| 96 | + } |
97 | 97 |
|
98 | | - /** |
99 | | - * 微信通知支付结果的回调地址,notify_url |
100 | | - * |
101 | | - * @param request |
102 | | - * @param response |
103 | | - */ |
104 | | - @RequestMapping(value = "getJSSDKCallbackData") |
105 | | - public void getJSSDKCallbackData(HttpServletRequest request, |
106 | | - HttpServletResponse response) { |
107 | | - try { |
108 | | - synchronized (this) { |
109 | | - Map<String, String> kvm = XMLUtil.parseRequestXmlToMap(request); |
110 | | - if (SignUtils.checkSign(kvm, this.payConfig.getMchKey())) { |
111 | | - if (kvm.get("result_code").equals("SUCCESS")) { |
112 | | - //TODO(user) 微信服务器通知此回调接口支付成功后,通知给业务系统做处理 |
113 | | - logger.info("out_trade_no: " + kvm.get("out_trade_no") + " pay SUCCESS!"); |
114 | | - response.getWriter().write("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[ok]]></return_msg></xml>"); |
115 | | - } else { |
116 | | - this.logger.error("out_trade_no: " |
117 | | - + kvm.get("out_trade_no") + " result_code is FAIL"); |
118 | | - response.getWriter().write( |
119 | | - "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[result_code is FAIL]]></return_msg></xml>"); |
120 | | - } |
121 | | - } else { |
122 | | - response.getWriter().write( |
123 | | - "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[check signature FAIL]]></return_msg></xml>"); |
124 | | - this.logger.error("out_trade_no: " + kvm.get("out_trade_no") |
125 | | - + " check signature FAIL"); |
126 | | - } |
127 | | - } |
128 | | - } catch (Exception e) { |
129 | | - e.printStackTrace(); |
| 98 | + /** |
| 99 | + * 微信通知支付结果的回调地址,notify_url |
| 100 | + * |
| 101 | + * @param request |
| 102 | + * @param response |
| 103 | + */ |
| 104 | + @RequestMapping(value = "getJSSDKCallbackData") |
| 105 | + public void getJSSDKCallbackData(HttpServletRequest request, |
| 106 | + HttpServletResponse response) { |
| 107 | + try { |
| 108 | + synchronized (this) { |
| 109 | + Map<String, String> kvm = XMLUtil.parseRequestXmlToMap(request); |
| 110 | + if (SignUtils.checkSign(kvm, this.payConfig.getMchKey())) { |
| 111 | + if (kvm.get("result_code").equals("SUCCESS")) { |
| 112 | + //TODO(user) 微信服务器通知此回调接口支付成功后,通知给业务系统做处理 |
| 113 | + logger.info("out_trade_no: " + kvm.get("out_trade_no") + " pay SUCCESS!"); |
| 114 | + response.getWriter().write("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[ok]]></return_msg></xml>"); |
| 115 | + } else { |
| 116 | + this.logger.error("out_trade_no: " |
| 117 | + + kvm.get("out_trade_no") + " result_code is FAIL"); |
| 118 | + response.getWriter().write( |
| 119 | + "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[result_code is FAIL]]></return_msg></xml>"); |
| 120 | + } |
| 121 | + } else { |
| 122 | + response.getWriter().write( |
| 123 | + "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[check signature FAIL]]></return_msg></xml>"); |
| 124 | + this.logger.error("out_trade_no: " + kvm.get("out_trade_no") |
| 125 | + + " check signature FAIL"); |
130 | 126 | } |
| 127 | + } |
| 128 | + } catch (Exception e) { |
| 129 | + e.printStackTrace(); |
131 | 130 | } |
| 131 | + } |
132 | 132 |
|
133 | | - @RequestMapping(value = "entPay") |
134 | | - public void payToIndividual(HttpServletResponse response, |
135 | | - HttpServletRequest request) { |
136 | | - WxEntPayRequest wxEntPayRequest = new WxEntPayRequest(); |
137 | | - wxEntPayRequest.setAppid(payConfig.getAppId()); |
138 | | - wxEntPayRequest.setMchId(payConfig.getMchId()); |
139 | | - wxEntPayRequest.setNonceStr(Sha1Util.getNonceStr()); |
140 | | - wxEntPayRequest.setPartnerTradeNo(request.getParameter("partner_trade_no")); |
141 | | - wxEntPayRequest.setOpenid(request.getParameter("openid")); |
142 | | - wxEntPayRequest.setCheckName("NO_CHECK"); |
143 | | - wxEntPayRequest.setAmount(Integer.valueOf(request.getParameter("amount"))); |
144 | | - wxEntPayRequest.setDescription(request.getParameter("desc")); |
145 | | - wxEntPayRequest.setSpbillCreateIp(request.getParameter("spbill_create_ip")); |
| 133 | + @RequestMapping(value = "entPay") |
| 134 | + public void payToIndividual(HttpServletResponse response, |
| 135 | + HttpServletRequest request) { |
| 136 | + WxEntPayRequest wxEntPayRequest = new WxEntPayRequest(); |
| 137 | + wxEntPayRequest.setAppid(payConfig.getAppId()); |
| 138 | + wxEntPayRequest.setMchId(payConfig.getMchId()); |
| 139 | + wxEntPayRequest.setNonceStr(Sha1Util.getNonceStr()); |
| 140 | + wxEntPayRequest.setPartnerTradeNo(request.getParameter("partner_trade_no")); |
| 141 | + wxEntPayRequest.setOpenid(request.getParameter("openid")); |
| 142 | + wxEntPayRequest.setCheckName("NO_CHECK"); |
| 143 | + wxEntPayRequest.setAmount(Integer.valueOf(request.getParameter("amount"))); |
| 144 | + wxEntPayRequest.setDescription(request.getParameter("desc")); |
| 145 | + wxEntPayRequest.setSpbillCreateIp(request.getParameter("spbill_create_ip")); |
146 | 146 |
|
147 | | - try { |
148 | | - WxEntPayResult wxEntPayResult = payService.entPay(wxEntPayRequest); |
149 | | - if ("SUCCESS".equals(wxEntPayResult.getResultCode().toUpperCase()) |
150 | | - && "SUCCESS" |
151 | | - .equals(wxEntPayResult.getReturnCode().toUpperCase())) { |
152 | | - this.logger.info("企业对个人付款成功!\n付款信息:\n" + wxEntPayResult.toString()); |
153 | | - } else { |
154 | | - this.logger.error("err_code: " + wxEntPayResult.getErrCode() |
155 | | - + " err_code_des: " + wxEntPayResult.getErrCodeDes()); |
156 | | - } |
157 | | - } catch (Exception e) { |
158 | | - e.printStackTrace(); |
159 | | - } |
| 147 | + try { |
| 148 | + WxEntPayResult wxEntPayResult = payService.entPay(wxEntPayRequest); |
| 149 | + if ("SUCCESS".equals(wxEntPayResult.getResultCode().toUpperCase()) |
| 150 | + && "SUCCESS".equals(wxEntPayResult.getReturnCode().toUpperCase())) { |
| 151 | + this.logger.info("企业对个人付款成功!\n付款信息:\n" + wxEntPayResult.toString()); |
| 152 | + } else { |
| 153 | + this.logger.error("err_code: " + wxEntPayResult.getErrCode() |
| 154 | + + " err_code_des: " + wxEntPayResult.getErrCodeDes()); |
| 155 | + } |
| 156 | + } catch (Exception e) { |
| 157 | + e.printStackTrace(); |
160 | 158 | } |
| 159 | + } |
161 | 160 |
|
162 | 161 | } |
163 | 162 |
|
0 commit comments