/** * */ package com.alipay.util; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Map; import jframe.pay.alipay.AlipayConfig; import jframe.pay.domain.Fields; /** * @date Nov 28, 2014 10:16:07 AM * @since 1.0 */ public class OrderUtil { public static String buildOrderInfo(Map<String, String> req) { StringBuilder buf = new StringBuilder(); // 合作者身份ID buf.append("partner=\"" + AlipayConfig.getConf(AlipayConfig.PARTNER) + "\""); // 卖家支付宝账号 buf.append("&seller_id=\"" + AlipayConfig.getConf(AlipayConfig.SELLER_ID) + "\""); // 商户网站唯一订单号 buf.append("&out_trade_no=\"" + req.get(Fields.F_orderNo) + "\""); // 商品名称 buf.append("&subject=\"" + AlipayConfig.getConf(AlipayConfig.SUBJECT) + "\""); // 商品详情 buf.append("&body=\"" + req.get(Fields.F_payDesc) + "\""); // 商品金额 buf.append("&total_fee=\"" + (Long.parseLong(req.get(Fields.F_payAmount)) / 100.0) + "\""); // 服务器异步通知页面路径 buf.append("¬ify_url=\"" + AlipayConfig.getConf(AlipayConfig.NOTIFY_URL) + "\""); // 接口名称, 固定值 buf.append("&service=\"" + AlipayConfig.getConf(AlipayConfig.SERVICE) + "\""); // 支付类型, 固定值 buf.append("&payment_type=\"" + AlipayConfig.getConf(AlipayConfig.PAYMENT_TYPE) + "\""); // 参数编码, 固定值 buf.append("&_input_charset=\"" + AlipayConfig.getConf(AlipayConfig.INPUT_CHARSET) + "\""); // 设置未付款交易的超时时间 // 默认30分钟,一旦超时,该笔交易就会自动被关闭。 // 取值范围:1m~15d。 // m-分钟,h-小时,d-天,1c-当天(无论交易何时创建,都在0点关闭)。 // 该参数数值不接受小数点,如1.5h,可转换为90m。 buf.append("&it_b_pay=\"" + AlipayConfig.getConf(AlipayConfig.IT_B_PAY) + "\""); // 支付宝处理完请求后,当前页面跳转到商户指定页面的路径,可空 // orderInfo += "&return_url=\"m.alipay.com\""; // 调用银行卡支付,需配置此参数,参与签名, 固定值 // orderInfo += "&paymethod=\"expressGateway\""; return buf.toString(); } public static String genPayInfo(String od) { String sign = AlipayConfig.sign(od); try { // 仅需对sign 做URL编码 sign = URLEncoder.encode(sign, "UTF-8"); } catch (UnsupportedEncodingException e) { // e.printStackTrace(); } return od + "&sign=\"" + sign + "\"&" + AlipayConfig.getSignType(); } }