夜半无人乱语时

public class PayResponseHandler {private static Logger logger = Logger.getLogger(PayResponseHandler.class);//交易信息private TradeInfo tradeInfo;//送过去的交易回调处理类private String callBackHandlerClass;private TradeInfoBuilder builder;//所有返回的参数,原样封装private Map<String,String> backParams;public PayResponseHandler(HttpServletRequest request) {String extra_common_param = request.getParameter("extra_common_param");//阿里的支付回传参数String attach = request.getParameter("attach");//腾讯的回传参数if (!StringUtils.isEmpty(extra_common_param)) {this.builder = new AliTradeInfoBuilder();this.callBackHandlerClass = extra_common_param.trim();}if (!StringUtils.isEmpty(attach)) {this.builder = new TenTradeInfoBuilder();this.callBackHandlerClass = attach.trim();}Assert.notNull(this.callBackHandlerClass,"没有定义支付回调处理接口类");this.tradeInfo = this.builder.buildFromRequest(request);this.backParams = buildParam(request);}public CallBackResult handleCallback() {CallBackResult result ;try {Class<PayCallback> classz = (Class<PayCallback>) Class.forName(callBackHandlerClass);result = classz.newInstance().doAfterSuccess(this.tradeInfo,this.backParams);return result;} catch (ClassNotFoundException e) {logger.error("未定义的支付返回处理类:" + callBackHandlerClass, e);e.printStackTrace();} catch (Exception e) {logger.error("支付返回处理时发生了错误", e);e.printStackTrace();}result = new CallBackResult();result.setResult(false);return result;}private Map<String, String> buildParam(HttpServletRequest request) {//获取GET过来反馈信息Map<String, String> params = new HashMap<String, String>();Map requestParams = request.getParameterMap();for (Object oName : requestParams.keySet()) {String name = (String) oName;String[] values = (String[]) requestParams.get(name);String valueStr = "";for (int i = 0; i < values.length; i++) {valueStr = (i == values.length – 1) ? valueStr + values[i]: valueStr + values[i] + ",";}params.put(name, valueStr);}return params;}}TradeInfo,,就是封装的交易信息

只有在前进中不断学会选择,学会体会,学会欣赏。

夜半无人乱语时

相关文章:

你感兴趣的文章:

标签云: