示例#1
0
  /**
   * 支付方法
   *
   * @param req
   * @param resp
   * @return
   * @throws ServletException
   * @throws IOException
   */
  public String payment(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {
    Properties props = new Properties();
    props.load(this.getClass().getClassLoader().getResourceAsStream("payment.properties"));
    /*
     * 1. 准备13个参数
     */
    String p0_Cmd = "Buy"; // 业务类型,固定值Buy
    String p1_MerId = props.getProperty("p1_MerId"); // 商号编码,在易宝的唯一标识
    String p2_Order = req.getParameter("oid"); // 订单编码
    String p3_Amt = "1"; // 支付金额
    String p4_Cur = "CNY"; // 交易币种,固定值CNY
    String p5_Pid = ""; // 商品名称
    String p6_Pcat = ""; // 商品种类
    String p7_Pdesc = ""; // 商品描述
    String p8_Url = props.getProperty("p8_Url"); // 在支付成功后,易宝会访问这个地址。
    String p9_SAF = ""; // 送货地址
    String pa_MP = ""; // 扩展信息
    String pd_FrpId = req.getParameter("yh"); // 支付通道
    String pr_NeedResponse = "1"; // 应答机制,固定值1

    /*
     * 计算hmac
     * 需要13个参数
     * 需要keyValue
     * 需要加密算法
     */
    String keyValue = props.getProperty("keyValue");
    String hmac =
        PaymentUtil.buildHmac(
            p0_Cmd,
            p1_MerId,
            p2_Order,
            p3_Amt,
            p4_Cur,
            p5_Pid,
            p6_Pcat,
            p7_Pdesc,
            p8_Url,
            p9_SAF,
            pa_MP,
            pd_FrpId,
            pr_NeedResponse,
            keyValue);

    /*
     *  重定向到易宝的支付网关
     */
    StringBuilder sb = new StringBuilder("https://www.yeepay.com/app-merchant-proxy/node");
    sb.append("?").append("p0_Cmd=").append(p0_Cmd);
    sb.append("&").append("p1_MerId=").append(p1_MerId);
    sb.append("&").append("p2_Order=").append(p2_Order);
    sb.append("&").append("p3_Amt=").append(p3_Amt);
    sb.append("&").append("p4_Cur=").append(p4_Cur);
    sb.append("&").append("p5_Pid=").append(p5_Pid);
    sb.append("&").append("p6_Pcat=").append(p6_Pcat);
    sb.append("&").append("p7_Pdesc=").append(p7_Pdesc);
    sb.append("&").append("p8_Url=").append(p8_Url);
    sb.append("&").append("p9_SAF=").append(p9_SAF);
    sb.append("&").append("pa_MP=").append(pa_MP);
    sb.append("&").append("pd_FrpId=").append(pd_FrpId);
    sb.append("&").append("pr_NeedResponse=").append(pr_NeedResponse);
    sb.append("&").append("hmac=").append(hmac);

    resp.sendRedirect(sb.toString());
    return null;
  }