互联网装修公司怎么样_二级建造师资格证书查询系统_如何学好网页设计_企业网站模板选择
public class PayCallBackServlet extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {byte[] data = req.getInputStream().readAllBytes();if (data == null) {PayUtil.getLog().log("支付回调,获取数据为空, ip=%s", IPUtil.get(req));return;}String body = new String(data);System.out.println(body);try {NotificationRequest request = new NotificationRequest.Builder().withSerialNumber(PayUtil.getPlatformC()).withNonce(req.getHeader("Wechatpay-Nonce")).withTimestamp(req.getHeader("Wechatpay-Timestamp")).withSignature(req.getHeader("Wechatpay-Signature")).withBody(body).build();NotificationHandler handler = new NotificationHandler(certificatesManager.getVerifier(mchId), apiV3Key.getBytes(StandardCharsets.UTF_8));Notification notification = handler.parse(request);PayUtil.getLog().log("接收到支付回调内容, ip=%s, data=%s", IPUtil.get(req), notification.toString());JSONObject dDataObj = JSONObject.parseObject(notification.getDecryptData());String tradeId = dDataObj.getString("out_trade_no");PayUtil.getLog().log("支付回调完成, trade=%s, ip=%s, info=%s", tradeId, IPUtil.get(req), result);} catch (Exception e) {e.printStackTrace();PayUtil.getLog().log("处理回调通知出错: error=%s, ip=%s", e.getMessage(), IPUtil.get(req));}}}">