예제 #1
0
 public void filter(StringBuffer sql, Cat cat, String urlFragment) {
   String keyword = urlFragment == null ? "" : urlFragment;
   if (!StringUtil.isEmpty(keyword)) {
     String encoding = EopSetting.ENCODING;
     if (!StringUtil.isEmpty(encoding)) {
       keyword = StringUtil.to(keyword, encoding);
     }
     sql.append(" and g.name like '%");
     sql.append(keyword);
     sql.append("%'");
   }
 }
예제 #2
0
  @Override
  public String onCallBack() {
    HttpServletRequest request = ThreadContextHolder.getHttpRequest();
    Map<String, String> configparams = this.getConfigParams();
    String partner = configparams.get("partner"); // partner合作伙伴id(必须填写)
    String key = configparams.get("key"); // partner 的对应交易安全校验码(必须填写)
    String encoding = configparams.get("callback_encoding");

    // 获取支付宝POST过来反馈信息
    Map<String, String> params = new HashMap<String, String>();
    Map requestParams = request.getParameterMap();
    for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext(); ) {
      String name = (String) iter.next();
      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] + ",";
      }
      if (!StringUtil.isEmpty(encoding)) {
        valueStr = StringUtil.to(valueStr, encoding);
      }
      params.put(name, valueStr);
    }

    // 获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表(以下仅供参考)//
    String trade_no = request.getParameter("trade_no"); // 支付宝交易号
    String order_no = request.getParameter("out_trade_no"); // 获取订单号
    String total_fee = request.getParameter("price"); // 获取总金额

    String subject = request.getParameter("subject"); // 商品名称、订单名称
    if (!StringUtil.isEmpty(encoding)) {
      subject = StringUtil.to(subject, encoding);
    }
    String body = "";
    if (request.getParameter("body") != null) {
      body = request.getParameter("body"); // 商品描述、订单备注、描述
      if (!StringUtil.isEmpty(encoding)) {
        body = StringUtil.to(body, encoding);
      }
    }
    String buyer_email = request.getParameter("buyer_email"); // 买家支付宝账号
    String receive_name = ""; // 收货人姓名
    if (request.getParameter("receive_name") != null) {
      receive_name = request.getParameter("receive_name");
      if (!StringUtil.isEmpty(encoding)) {
        receive_name = StringUtil.to(receive_name, encoding);
      }
    }
    String receive_address = ""; // 收货人地址
    if (request.getParameter("receive_address") != null) {
      receive_address = request.getParameter("receive_address");
      if (!StringUtil.isEmpty(encoding)) {
        receive_address = StringUtil.to(receive_address, encoding);
      }
    }

    String receive_zip = ""; // 收货人邮编
    if (request.getParameter("receive_zip") != null) {
      receive_zip = request.getParameter("receive_zip");
      if (!StringUtil.isEmpty(encoding)) {
        receive_zip = StringUtil.to(receive_zip, encoding);
      }
    }

    String receive_phone = ""; // 收货人电话
    if (request.getParameter("receive_phone") != null) {
      receive_phone = request.getParameter("receive_phone");
      if (!StringUtil.isEmpty(encoding)) {
        receive_phone = StringUtil.to(receive_phone, encoding);
      }
    }

    String receive_mobile = ""; // 收货人手机
    if (request.getParameter("receive_mobile") != null) {
      receive_mobile = request.getParameter("receive_mobile");
      if (!StringUtil.isEmpty(encoding)) {
        receive_mobile = StringUtil.to(receive_mobile, encoding);
      }
    }

    String trade_status = request.getParameter("trade_status"); // 交易状态

    // 获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表(以上仅供参考)//

    if (AlipayNotify.callbackverify(params, key, partner)) { // 验证成功
      //////////////////////////////////////////////////////////////////////////////////////////
      // 请在这里加上商户的业务逻辑程序代码
      this.paySuccess(order_no);
      // ——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
      this.logger.info("异步校验订单[" + order_no + "]成功");
      if (trade_status.equals("WAIT_BUYER_PAY")) {
        // 该判断表示买家已在支付宝交易管理中产生了交易记录,但没有付款

        // 判断该笔订单是否在商户网站中已经做过处理(可参考“集成教程”中“3.4返回数据处理”)
        // 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
        // 如果有做过处理,不执行商户的业务程序

        return ("success"); // 请不要修改或删除
      } else if (trade_status.equals("WAIT_SELLER_SEND_GOODS")) {
        // 该判断表示买家已在支付宝交易管理中产生了交易记录且付款成功,但卖家没有发货

        // 判断该笔订单是否在商户网站中已经做过处理(可参考“集成教程”中“3.4返回数据处理”)
        // 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
        // 如果有做过处理,不执行商户的业务程序

        return ("success"); // 请不要修改或删除
      } else if (trade_status.equals("WAIT_BUYER_CONFIRM_GOODS")) {
        // 该判断表示卖家已经发了货,但买家还没有做确认收货的操作

        // 判断该笔订单是否在商户网站中已经做过处理(可参考“集成教程”中“3.4返回数据处理”)
        // 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
        // 如果有做过处理,不执行商户的业务程序

        return ("success"); // 请不要修改或删除
      } else if (trade_status.equals("TRADE_FINISHED")) {
        // 该判断表示买家已经确认收货,这笔交易完成

        // 判断该笔订单是否在商户网站中已经做过处理(可参考“集成教程”中“3.4返回数据处理”)
        // 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
        // 如果有做过处理,不执行商户的业务程序

        return ("success"); // 请不要修改或删除
      } else {
        return ("success"); // 请不要修改或删除
      }

      // ——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

      //////////////////////////////////////////////////////////////////////////////////////////
    } else { // 验证失败
      return ("fail");
    }
  }
예제 #3
0
  @Override
  public String onReturn() {

    Map<String, String> cfgparams = paymentManager.getConfigParams(this.getId());
    HttpServletRequest request = ThreadContextHolder.getHttpRequest();
    this.logger.info("返回来的body" + request.getParameter("body"));
    String key = cfgparams.get("key");
    String partner = cfgparams.get("partner");
    String encoding = cfgparams.get("return_encoding");

    // 获取支付宝GET过来反馈信息
    Map<String, String> params = new HashMap<String, String>();
    Map requestParams = request.getParameterMap();
    for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext(); ) {
      String name = (String) iter.next();
      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] + ",";
      }
      // 乱码解决,这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化
      if (!StringUtil.isEmpty(encoding)) {
        valueStr = StringUtil.to(valueStr, encoding);
      }
      params.put(name, valueStr);
    }

    // 获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表(以下仅供参考)//

    String trade_no = request.getParameter("trade_no"); // 支付宝交易号
    String order_no = request.getParameter("out_trade_no"); // 获取订单号
    String total_fee = request.getParameter("total_fee"); // 获取总金额

    String subject = request.getParameter("subject"); // 商品名称、订单名称
    if (!StringUtil.isEmpty(encoding)) {
      subject = StringUtil.to(subject, encoding);
    }
    String body = "";
    if (request.getParameter("body") != null) {
      body = request.getParameter("body"); // 商品描述、订单备注、描述
      if (!StringUtil.isEmpty(encoding)) {
        body = StringUtil.to(body, encoding);
      }
    }
    String buyer_email = request.getParameter("buyer_email"); // 买家支付宝账号
    String receive_name = ""; // 收货人姓名
    if (request.getParameter("receive_name") != null) {
      receive_name = request.getParameter("receive_name");
      if (!StringUtil.isEmpty(encoding)) {
        receive_name = StringUtil.to(receive_name, encoding);
      }
    }
    String receive_address = ""; // 收货人地址
    if (request.getParameter("receive_address") != null) {
      receive_address = request.getParameter("receive_address");
      if (!StringUtil.isEmpty(encoding)) {
        receive_address = StringUtil.to(receive_address, encoding);
      }
    }

    String receive_zip = ""; // 收货人邮编
    if (request.getParameter("receive_zip") != null) {
      receive_zip = request.getParameter("receive_zip");
      if (!StringUtil.isEmpty(encoding)) {
        receive_zip = StringUtil.to(receive_zip, encoding);
      }
    }

    String receive_phone = ""; // 收货人电话
    if (request.getParameter("receive_phone") != null) {
      receive_phone = request.getParameter("receive_phone");
      if (!StringUtil.isEmpty(encoding)) {
        receive_phone = StringUtil.to(receive_phone, encoding);
      }
    }

    String receive_mobile = ""; // 收货人手机
    if (request.getParameter("receive_mobile") != null) {
      receive_mobile = request.getParameter("receive_mobile");
      if (!StringUtil.isEmpty(encoding)) {
        receive_mobile = StringUtil.to(receive_mobile, encoding);
      }
    }

    String trade_status = request.getParameter("trade_status"); // 交易状态

    // 获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表(以上仅供参考)//

    // 计算得出通知验证结果
    boolean verify_result = AlipayNotify.returnverify(params, key, partner);

    if (verify_result) { // 验证成功
      //////////////////////////////////////////////////////////////////////////////////////////
      // 请在这里加上商户的业务逻辑程序代码

      // ——请根据您的业务逻辑来编写程序(以下代码仅作参考)——

      if (trade_status.equals("WAIT_SELLER_SEND_GOODS")) {
        // 判断该笔订单是否在商户网站中已经做过处理(可参考“集成教程”中“3.4返回数据处理”)
        // 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
        // 如果有做过处理,不执行商户的业务程序
      }

      if (trade_status.equals("TRADE_FINISHED")) {
        // 判断该笔订单是否在商户网站中已经做过处理(可参考“集成教程”中“3.4返回数据处理”)
        // 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
        // 如果有做过处理,不执行商户的业务程序
      }

      this.paySuccess(order_no);
      return order_no;

      // ——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

      //////////////////////////////////////////////////////////////////////////////////////////
    } else {
      throw new RuntimeException("验证失败");
    }
  }