//package com.zteits.pay.allipay; // //import java.math.BigDecimal; //import java.net.URLEncoder; //import java.security.KeyFactory; //import java.security.PrivateKey; //import java.security.spec.PKCS8EncodedKeySpec; //import java.text.SimpleDateFormat; //import java.util.ArrayList; //import java.util.Collections; //import java.util.Date; //import java.util.HashMap; //import java.util.List; //import java.util.Map; // //import org.slf4j.Logger; //import org.slf4j.LoggerFactory; // //import org.apache.commons.lang3.StringUtils; //import com.alibaba.fastjson.JSONArray; //import com.alibaba.fastjson.JSONObject; //import com.alipay.api.AlipayApiException; //import com.alipay.api.internal.util.AlipaySignature; //import com.clouds.common.utils.AmountUtils; //import com.clouds.common.web.SpringContextUtil; //import com.zteits.clouds.api.apibase.constants.OrderEnum; //import com.zteits.clouds.api.apibase.constants.PayOrderEnum; //import com.zteits.clouds.api.dto.pay.param.AliPayOrderRequest; //import com.zteits.clouds.api.dto.pay.param.AlipayTradeRefundQueryRequest; //import com.zteits.pay.util.Base64; //import com.zteits.pay.util.PayNotifyUrl; ///** // * 支付宝支付工具类.
// * // * Copyright: Copyright (c) 2017 zteits // * // * @ClassName: AliPayUtil.java // * @Description: // * @version: v1.0.0 // * @author: wangfs // * @date: 2017年5月16日 下午5:00:46 // * Modification History: // * Date Author Version Description // *---------------------------------------------------------* // * 2017年5月16日 wangfs v1.0.0 创建 // */ //public class AliPayUtil { // // private static PayNotifyUrl payNotifyUrl; // // static { // if (AliPayUtil.payNotifyUrl == null) { // AliPayUtil.payNotifyUrl = (PayNotifyUrl)SpringContextUtil.getBean("payNotifyUrl"); // } // } // // // // private static final Logger logger = LoggerFactory.getLogger(AliPayUtil.class); // /** // * 获取支付请求参数.
// * @param aliPayOrderRequest // * @return // * @throws Exception // */ // public static String getPayOutMessage(AliPayOrderRequest aliPayOrderRequest) throws Exception { // logger.info("【{}】开始获取支付请求参数AliPayUtil.getPayOutMessage()方法,入参={}",aliPayOrderRequest.getBaseRequest().getRequestId(),JSONObject.toJSON(aliPayOrderRequest).toString()); // SimpleDateFormat formart = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); // String timestamp = formart.format(new Date()); // //公共参数 // Map map = new HashMap(); // map.put("app_id", AlipayConfig.APPID); // map.put("method", AlipayConfig.METHOD); // map.put("format", AlipayConfig.FORMAT_JSON); // map.put("charset", AlipayConfig.CHARSET); // map.put("sign_type", AlipayConfig.SIGN_TYPE); // map.put("timestamp", timestamp); // map.put("version", AlipayConfig.VERSION); // /**微信-购买会员卡-异步回调*/ // if(aliPayOrderRequest.getPaySrcType()==OrderEnum.ORDER_PAY_SRC_TYPE_CARD_A.value() || aliPayOrderRequest.getPaySrcType()==OrderEnum.ORDER_PAY_SRC_TYPE_CARD_M.value()){ // logger.info("购买会员卡:"+payNotifyUrl.getAlipay_paycard_notifu_url()); // map.put("notify_url", payNotifyUrl.getAlipay_paycard_notifu_url()); // }else{ // /**微信-支付停车订单-异步回调*/ // logger.info("支付停车订单:"+payNotifyUrl.getALIPAY_PAYORDER_NOTIFY_URL()); // map.put("notify_url", payNotifyUrl.getALIPAY_PAYORDER_NOTIFY_URL()); // } // //业务参数分装 // Map bizContentMap = AliPayUtil.createOrderInfo(aliPayOrderRequest); // // //转换成json // Object json =""; // if(bizContentMap != null && bizContentMap.size() > 0){ // json = JSONArray.toJSON(bizContentMap); // } // //添加业务参数 // map.put("biz_content", json+""); // String returnJson = AliPayUtil.createLinkString(map); // logger.info("签名前 串:"+returnJson); // //对未签名原始字符串进行签名 // String rsaSign = AliPayUtil.createSigin(returnJson, AlipayConfig.APP_PRIVATE_KEY, AlipayConfig.CHARSET); // // // // returnJson+="&sign=" + URLEncoder.encode(rsaSign, "UTF-8"); // logger.info("签名 后:"+returnJson); // // //最后对请求字符串的所有一级value(biz_content作为一个value)进行encode // Map mapcode = new HashMap(); // mapcode.put("app_id", AlipayConfig.APPID); // mapcode.put("method", AlipayConfig.METHOD); // mapcode.put("format", AlipayConfig.FORMAT_JSON); // mapcode.put("charset", AlipayConfig.CHARSET); // mapcode.put("sign_type", AlipayConfig.SIGN_TYPE); // mapcode.put("timestamp", URLEncoder.encode(timestamp,AlipayConfig.CHARSET)); // mapcode.put("version", AlipayConfig.VERSION); // // /**微信-购买会员卡-异步回调*/ // if(aliPayOrderRequest.getPaySrcType()==OrderEnum.ORDER_PAY_SRC_TYPE_CARD_A.value() || aliPayOrderRequest.getPaySrcType()==OrderEnum.ORDER_PAY_SRC_TYPE_CARD_M.value()){ // logger.info("购买会员卡:"+payNotifyUrl.getAlipay_paycard_notifu_url()); // mapcode.put("notify_url", URLEncoder.encode(payNotifyUrl.getAlipay_paycard_notifu_url(),AlipayConfig.CHARSET)); // }else{ // /**微信-支付停车订单-异步回调*/ // logger.info("支付停车订单:"+payNotifyUrl.getALIPAY_PAYORDER_NOTIFY_URL()); // mapcode.put("notify_url", URLEncoder.encode(payNotifyUrl.getALIPAY_PAYORDER_NOTIFY_URL(),AlipayConfig.CHARSET)); // } // // mapcode.put("biz_content", URLEncoder.encode(json+"",AlipayConfig.CHARSET)); // // String returnJso2 = AliPayUtil.createLinkString(mapcode); // // Map par = AliPayUtil.paraFilter(mapcode); //除去数组中的空值和签名参数 // //拼接 // // returnJso2+="&sign=" + URLEncoder.encode(rsaSign, "UTF-8"); // logger.info("【{}】编码后返回={}",aliPayOrderRequest.getBaseRequest().getRequestId(),returnJso2); // // logger.info("【{}】结束获取支付请求参数AliPayUtil.getPayOutMessage()方法.",aliPayOrderRequest.getBaseRequest().getRequestId()); // // return returnJso2; // // } // // /** // * 获取app充值支付请求参数
// * added by hxz 20170822
// * @param aliPayOrderRequest // * @return // * @throws Exception // */ // public static String getAcctRechargePayOutMessage(AliPayOrderRequest aliPayOrderRequest) throws Exception { // logger.info("【{}】开始获取支付请求参数AliPayUtil.getPayOutMessage()方法,入参={}",aliPayOrderRequest.getBaseRequest().getRequestId(),JSONObject.toJSON(aliPayOrderRequest).toString()); // SimpleDateFormat formart = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); // String timestamp = formart.format(new Date()); // //公共参数 // Map map = new HashMap(); // map.put("app_id", AlipayConfig.APPID); // map.put("method", AlipayConfig.METHOD); // map.put("format", AlipayConfig.FORMAT_JSON); // map.put("charset", AlipayConfig.CHARSET); // map.put("sign_type", AlipayConfig.SIGN_TYPE); // map.put("timestamp", timestamp); // map.put("version", AlipayConfig.VERSION); // map.put("notify_url", payNotifyUrl.getALIPAY_RECHARGE_NOTIFY_URL()); // // //业务参数分装 // Map bizContentMap = AliPayUtil.createAcctRechargeOrderInfo(aliPayOrderRequest); // // //转换成json // Object json =""; // if(bizContentMap != null && bizContentMap.size() > 0){ // json = JSONArray.toJSON(bizContentMap); // } // //添加业务参数 // map.put("biz_content", json + ""); // String returnJson = AliPayUtil.createLinkString(map); // logger.info("签名前 串:"+returnJson); // //对未签名原始字符串进行签名 // String rsaSign = AliPayUtil.createSigin(returnJson, AlipayConfig.APP_PRIVATE_KEY, AlipayConfig.CHARSET); // // // // returnJson+="&sign=" + URLEncoder.encode(rsaSign, "UTF-8"); // logger.info("签名 后:"+returnJson); // // //最后对请求字符串的所有一级value(biz_content作为一个value)进行encode // Map mapcode = new HashMap(); // mapcode.put("app_id", AlipayConfig.APPID); // mapcode.put("method", AlipayConfig.METHOD); // mapcode.put("format", AlipayConfig.FORMAT_JSON); // mapcode.put("charset", AlipayConfig.CHARSET); // mapcode.put("sign_type", AlipayConfig.SIGN_TYPE); // mapcode.put("timestamp", URLEncoder.encode(timestamp,AlipayConfig.CHARSET)); // mapcode.put("version", AlipayConfig.VERSION); // mapcode.put("notify_url", URLEncoder.encode(payNotifyUrl.getALIPAY_RECHARGE_NOTIFY_URL(), AlipayConfig.CHARSET)); // mapcode.put("biz_content", URLEncoder.encode(json+"", AlipayConfig.CHARSET)); // // String returnJso2 = AliPayUtil.createLinkString(mapcode); // // Map par = AliPayUtil.paraFilter(mapcode); //除去数组中的空值和签名参数 // //拼接 // // returnJso2+="&sign=" + URLEncoder.encode(rsaSign, "UTF-8"); // logger.info("【{}】编码后返回={}",aliPayOrderRequest.getBaseRequest().getRequestId(),returnJso2); // // logger.info("【{}】结束获取支付请求参数AliPayUtil.getPayOutMessage()方法.",aliPayOrderRequest.getBaseRequest().getRequestId()); // // return returnJso2; // } // // /** // public static String getPayOutMessage(AliPayOrderRequest aliPayOrderRequest) throws Exception { // String returnJSON=""; // //实例化客户端 // AlipayClient alipayClient = new DefaultAlipayClient( // AlipayConfig.METHOD, // AlipayConfig.APPID, // AlipayConfig.APP_PRIVATE_KEY, // "json", // AlipayConfig.CHARSET, // AlipayConfig.ALIPAY_PUBLIC_KEY, // AlipayConfig.SIGN_TYPE); // //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay // AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); // //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。 // AlipayTradeAppPayModel model = new AlipayTradeAppPayModel(); // model.setBody("我是测试数据"); // model.setSubject("任你听-停车支付"); // model.setOutTradeNo(aliPayOrderRequest.getPayOrderId()); // model.setTimeoutExpress("30m"); // model.setTotalAmount("1.00"); // model.setSellerId(AlipayConfig.PARTNER); // model.setProductCode(AlipayConfig.PRODUCT_CODE); // request.setNotifyUrl(AlipayConfig.SERVICE); // request.setBizModel(model); // // try { // //这里和普通的接口调用不同,使用的是sdkExecute // AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); // returnJSON = response.getBody();//就是orderString 可以直接给客户端请求,无需再做处理。 // } catch (AlipayApiException e) { // e.printStackTrace(); // } // return returnJSON; // } // **/ // /** // * 用私钥对信息生成数字签名 // * @param params 需要在map中加入sign_type=RSA这个key-value对 // * @param privateKey // * @param charset // * @return // */ // private static String createSigin(Map params,String privateKey,String charset){ // logger.info("开始生成数字签名信息.."); // String rsaSign = ""; // try { // if(params != null && params.size() > 0){ // rsaSign = AlipaySignature.rsaSign(params, privateKey, charset); // }else{ // logger.info("签名的数据为空,无法签名"); // throw new NullPointerException("签名的数据为空,无法签名."); // } // // } catch (AlipayApiException e) { // e.printStackTrace(); // } // logger.info("签名信息={}",rsaSign); // logger.info("结束生成数字签名信息.."); // return rsaSign; // } // // // /** // * 用私钥对信息生成数字签名 // * @param params 需要在map中加入sign_type=RSA这个key-value对 // * @param privateKey // * @param charset // * @return // */ // @SuppressWarnings("unused") // private static String createSigin(String params,String privateKey,String charset){ // logger.info("开始生成数字签名信息.."); // String rsaSign = ""; // try { // if(params!=null){ // rsaSign = AlipaySignature.rsaSign(params, privateKey, charset,"RSA2"); // }else{ // logger.info("签名的数据为空,无法签名"); // throw new NullPointerException("签名的数据为空,无法签名."); // } // // } catch (AlipayApiException e) { // e.printStackTrace(); // } // logger.info("签名信息={}",rsaSign); // logger.info("结束生成数字签名信息.."); // return rsaSign; // } // // private static final String ALGORITHM = "RSA2"; // // private static final String SIGN_ALGORITHMS = "SHA1WithRSA"; // // private static final String DEFAULT_CHARSET = "UTF-8"; // // public static String sign(String content, String privateKey) { // try { // PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec( // Base64.decode(privateKey)); // KeyFactory keyf = KeyFactory.getInstance(ALGORITHM); // PrivateKey priKey = keyf.generatePrivate(priPKCS8); // // java.security.Signature signature = java.security.Signature // .getInstance(SIGN_ALGORITHMS); // // signature.initSign(priKey); // signature.update(content.getBytes(DEFAULT_CHARSET)); // // byte[] signed = signature.sign(); // // return Base64.encode(signed); // } catch (Exception e) { // e.printStackTrace(); // } // // return null; // } // // /** // * 通过签名及公钥 校验数据是否改动- 同步请求时.
// * @param content 待验签字符串 // * @param sign 签名值 // * @param publicKey 验签公钥 // * @param charset 验签字符集 // * @return // */ // public static boolean rsaCheckContent(Map content, String sign, String publicKey, String charset,String signType){ // boolean flg = false; // try { // //获取签名的原始数据 // String con = AliPayUtil.getSignContent(content); // flg = AlipaySignature.rsaCheckContent(con, sign,publicKey,charset); // // // } catch (AlipayApiException e) { // e.printStackTrace(); // } // return flg; // } // // /** // * 获取签名的原始数据.
// * @param content map // * @return // */ // public static String getSignContent(Map content){ // String con = ""; // if(content != null && content.size() >0){ // con= AlipaySignature.getSignContent(content); // } // return con; // } // // /** // * 验签方法(会自动去除 sign sign_type ) // @param params 参数列表(包括待验签参数和签名值sign) key-参数名称 value-参数值 // @param publicKey 验签公钥 // @param charset 验签字符集 // **/ // public static boolean rsaCheckV1(Map params, String publicKey, String charset,String signType){ // // boolean flg = false; // try { // flg = AlipaySignature.rsaCheckV1(params, publicKey, charset,signType); // } catch (AlipayApiException e) { // e.printStackTrace(); // } // return flg; // } // // /** // * 验签方法(例如异步通知的时候,用户需要用到验签方法) // @param params 参数列表(包括待验签参数和签名值sign) key-参数名称 value-参数值 // @param publicKey 验签公钥 // @param charset 验签字符集 // **/ // public static boolean rsaCheckV2(Map params, String publicKey, String charset,String signType){ // // boolean flg = false; // try { // flg = AlipaySignature.rsaCheckV2(params, publicKey, charset,signType); // } catch (AlipayApiException e) { // e.printStackTrace(); // } // return flg; // } // // /** // * 除去数组中的空值和签名参数 // * @param sArray 签名参数组 // * @return 去掉空值与签名参数后的新签名参数组 // */ // public static Map paraFilter(Map sArray) { // // Map result = new HashMap(); // // if (sArray == null || sArray.size() <= 0) { // return result; // } // // for (String key : sArray.keySet()) { // String value = sArray.get(key); // if (value == null || value.equals("") || key.equalsIgnoreCase("sign")) { // continue; // } // result.put(key, value); // } // // return result; // } // // /** // * 把数组所有元素排序,并按照“参数=参数值”的模式用“&”字符拼接成字符串 // * @param params 需要排序并参与字符拼接的参数组 // * @return 拼接后字符串 // */ // public static String createLinkString(Map params) { // String prestr = ""; // if(params != null && params.size() >0){ // List keys = new ArrayList(params.keySet()); // Collections.sort(keys); // for (int i = 0; i < keys.size(); i++) { // String key = keys.get(i); // String value = params.get(key); // // if (i == keys.size() - 1) {//拼接时,不包括最后一个&字符 // prestr = prestr + key + "=" + value; // } else { // prestr = prestr + key + "=" + value + "&"; // } // } // return prestr; // }else{ // return ""; // } // } // // /** // * 返回创建的订单信息 // * @param aliPayOrderRequest // * @return // */ // public static Map createOrderInfo(AliPayOrderRequest aliPayOrderRequest){ // //业务参数分装 // Map bizContentMap = new HashMap(); // if(StringUtils.isNotEmpty(aliPayOrderRequest.getBody())){ // bizContentMap.put("body", aliPayOrderRequest.getBody()); // } // if(aliPayOrderRequest.getPaySrcType()==OrderEnum.ORDER_PAY_SRC_TYPE_CARD_A.value() ){ // bizContentMap.put("subject", "任你停-购买会员卡"/*aliPayOrderRequest.getSubject()!=null?aliPayOrderRequest.getSubject():""*/); // }else if (aliPayOrderRequest.getPaySrcType()==OrderEnum.ORDER_PAY_SRC_TYPE_CARD_M.value()){ // bizContentMap.put("subject", "任你停-会员卡续费"/*aliPayOrderRequest.getSubject()!=null?aliPayOrderRequest.getSubject():""*/); // }else{ // bizContentMap.put("subject", "任你停-停车支付"/*aliPayOrderRequest.getSubject()!=null?aliPayOrderRequest.getSubject():""*/); // } // bizContentMap.put("out_trade_no",aliPayOrderRequest.getPayOrderId()); // bizContentMap.put("total_amount", AmountUtils.changeF2Y(aliPayOrderRequest.getOrderActFee()+"")); // bizContentMap.put("seller_id", AlipayConfig.PARTNER); // bizContentMap.put("product_code", AlipayConfig.PRODUCT_CODE); // //临时字段,判断是否为新版PDA创建的支付单 zhaowg 2017-12-15 // String attach = ""; // if(aliPayOrderRequest.getIsNewPDACreate()!=null && aliPayOrderRequest.getIsNewPDACreate()){ // attach = "isNewPDACreate"; // } // bizContentMap.put("passback_params", attach); // return bizContentMap;createOrderInfo // } // // /** // * 返回创建的充值订单信息
// * added by hxz 20170822
// * @param aliPayOrderRequest // * @return // */ // public static Map createAcctRechargeOrderInfo(AliPayOrderRequest aliPayOrderRequest){ // //业务参数分装 // Map bizContentMap = new HashMap(); // if(StringUtils.isNotEmpty(aliPayOrderRequest.getBody())){ // bizContentMap.put("body", aliPayOrderRequest.getBody()); // } // bizContentMap.put("subject", "手机端app充值"/*aliPayOrderRequest.getSubject()!=null?aliPayOrderRequest.getSubject():""*/); // bizContentMap.put("out_trade_no",aliPayOrderRequest.getPayOrderId()); // bizContentMap.put("total_amount", AmountUtils.changeF2Y(aliPayOrderRequest.getOrderActFee()+"")); // bizContentMap.put("seller_id", AlipayConfig.PARTNER); // bizContentMap.put("product_code", AlipayConfig.PRODUCT_CODE); // return bizContentMap; // } // // /** // * 获取退款参数 // * @param aliPayOrderRequest // * @return // * @throws Exception // */ // public static String getRefundMessage(AlipayTradeRefundQueryRequest alipayTradeRefundQueryRequest) throws Exception { // logger.info("【{}】开始获取退款请求参数AliPayUtil.getRefundMessage()方法,入参={}"+ JSONObject.toJSON(alipayTradeRefundQueryRequest).toString()); // SimpleDateFormat formart = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); // String timestamp = formart.format(new Date()); // //公共参数 // Map map = new HashMap(); // map.put("app_id", AlipayConfig.APPID); // map.put("method", AlipayConfig.METHOD_REFUND); // map.put("format", AlipayConfig.FORMAT_JSON); // map.put("charset", AlipayConfig.CHARSET); // map.put("sign_type", AlipayConfig.SIGN_TYPE); // map.put("timestamp", timestamp); // map.put("version", AlipayConfig.VERSION); // // //业务参数分装 // Map bizContentMap = new HashMap(); // bizContentMap.put("out_trade_no","");//订单支付时传入的商户订单号,不能和 trade_no同时为空 // // bizContentMap.put("trade_no", value);//支付宝交易号,和商户订单号不能同时为空 // bizContentMap.put("refund_amount", "");//需要退款的金额,该金额不能大于订单金额,单位为元,支持两位小数 // bizContentMap.put("refund_reason", "");// 可选 256 退款的原因说明 // bizContentMap.put("out_request_no ", "");//标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传 // //转换成json // Object json =JSONArray.toJSON(bizContentMap); // //添加业务参数 // map.put("biz_content", json+""); // String returnJson = AliPayUtil.createLinkString(map); // logger.info("签名前 串:"+returnJson); // //对未签名原始字符串进行签名 // String rsaSign = AliPayUtil.createSigin(returnJson, AlipayConfig.APP_PRIVATE_KEY, AlipayConfig.CHARSET); // logger.info("签名 后:"+returnJson); // // //最后对请求字符串的所有一级value(biz_content作为一个value)进行encode // Map mapcode = new HashMap(); // mapcode.put("app_id", AlipayConfig.APPID); // mapcode.put("method", AlipayConfig.METHOD_REFUND); // mapcode.put("format", AlipayConfig.FORMAT_JSON); // mapcode.put("charset", AlipayConfig.CHARSET); // mapcode.put("sign_type", AlipayConfig.SIGN_TYPE); // mapcode.put("timestamp", URLEncoder.encode(timestamp,AlipayConfig.CHARSET)); // mapcode.put("version", AlipayConfig.VERSION); // mapcode.put("biz_content", URLEncoder.encode(json+"",AlipayConfig.CHARSET)); // // String returnJso2 = AliPayUtil.createLinkString(mapcode); // returnJso2+="&sign=" + URLEncoder.encode(rsaSign, "UTF-8"); // logger.info("发起退款参数"+returnJso2); // return returnJso2; // // } // // public static void main(String[] args) throws Exception { // // //Map map = new HashMap(); // //map.put("a", "123"); // //map.put("app_id", APPID); // //String sigin = AlipayJavaSDK.sigin(map, APP_PRIVATE_KEY, CHARSET); // //System.out.println(sigin); // AliPayOrderRequest aliPayOrderRequest = new AliPayOrderRequest(); // aliPayOrderRequest.setBody("手机端发起支付"); // aliPayOrderRequest.setSubject("车辆支付订单"); // aliPayOrderRequest.setParkOrderId("1000112"); // aliPayOrderRequest.setOrderActFee(BigDecimal.valueOf(Double.parseDouble("0.01"))); // String json = AliPayUtil.getPayOutMessage(aliPayOrderRequest); // System.out.println("==json=="+json); // // // } // // /** // * 获取补缴请求参数.
// * @param aliPayOrderRequest // * @return // * @throws Exception // */ // public static String getPayBackMessage(AliPayOrderRequest aliPayOrderRequest) throws Exception { // logger.info("【{}】开始获取支付请求参数AliPayUtil.getPayOutMessage()方法,入参={}",aliPayOrderRequest.getBaseRequest().getRequestId(),JSONObject.toJSON(aliPayOrderRequest).toString()); // SimpleDateFormat formart = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); // String timestamp = formart.format(new Date()); // //公共参数 // Map map = new HashMap(); // map.put("app_id", AlipayConfig.APPID); // map.put("method", AlipayConfig.METHOD); // map.put("format", AlipayConfig.FORMAT_JSON); // map.put("charset", AlipayConfig.CHARSET); // map.put("sign_type", AlipayConfig.SIGN_TYPE); // map.put("timestamp", timestamp); // map.put("version", AlipayConfig.VERSION); // /**微信-支付停车订单补缴-异步回调*/ // logger.info("补缴订单:"+payNotifyUrl.getALIPAY_PAYBACK_NOTIFY_URL()); // map.put("notify_url", payNotifyUrl.getALIPAY_PAYBACK_NOTIFY_URL()); // //业务参数分装 // Map bizContentMap = AliPayUtil.createOrderBackInfo(aliPayOrderRequest); // // //转换成json // Object json =""; // if(bizContentMap != null && bizContentMap.size() > 0){ // json = JSONArray.toJSON(bizContentMap); // } // //添加业务参数 // map.put("biz_content", json+""); // String returnJson = AliPayUtil.createLinkString(map); // logger.info("签名前 串:"+returnJson); // //对未签名原始字符串进行签名 // String rsaSign = AliPayUtil.createSigin(returnJson, AlipayConfig.APP_PRIVATE_KEY, AlipayConfig.CHARSET); // // // // returnJson+="&sign=" + URLEncoder.encode(rsaSign, "UTF-8"); // logger.info("签名 后:"+returnJson); // // //最后对请求字符串的所有一级value(biz_content作为一个value)进行encode // Map mapcode = new HashMap(); // mapcode.put("app_id", AlipayConfig.APPID); // mapcode.put("method", AlipayConfig.METHOD); // mapcode.put("format", AlipayConfig.FORMAT_JSON); // mapcode.put("charset", AlipayConfig.CHARSET); // mapcode.put("sign_type", AlipayConfig.SIGN_TYPE); // mapcode.put("timestamp", URLEncoder.encode(timestamp,AlipayConfig.CHARSET)); // mapcode.put("version", AlipayConfig.VERSION); // // /**微信-支付停车订单-异步回调*/ // logger.info("支付停车订单:"+payNotifyUrl.getALIPAY_PAYBACK_NOTIFY_URL()); // mapcode.put("notify_url", URLEncoder.encode(payNotifyUrl.getALIPAY_PAYBACK_NOTIFY_URL(),AlipayConfig.CHARSET)); // // mapcode.put("biz_content", URLEncoder.encode(json+"",AlipayConfig.CHARSET)); // // String returnJso2 = AliPayUtil.createLinkString(mapcode); // // Map par = AliPayUtil.paraFilter(mapcode); //除去数组中的空值和签名参数 // //拼接 // // returnJso2+="&sign=" + URLEncoder.encode(rsaSign, "UTF-8"); // logger.info("【{}】编码后返回={}",aliPayOrderRequest.getBaseRequest().getRequestId(),returnJso2); // // logger.info("【{}】结束获取支付请求参数AliPayUtil.getPayOutMessage()方法.",aliPayOrderRequest.getBaseRequest().getRequestId()); // // return returnJso2; // // } // // /** // * 返回创建的订单信息 // * @param aliPayOrderRequest // * @return // */ // public static Map createOrderBackInfo(AliPayOrderRequest aliPayOrderRequest){ // //业务参数分装 // Map bizContentMap = new HashMap(); // if(StringUtils.isNotEmpty(aliPayOrderRequest.getBody())){ // bizContentMap.put("body", aliPayOrderRequest.getBody()); // } // bizContentMap.put("subject", "任你停-欠费补缴"/*aliPayOrderRequest.getSubject()!=null?aliPayOrderRequest.getSubject():""*/); // bizContentMap.put("out_trade_no",aliPayOrderRequest.getPayOrderId()); // bizContentMap.put("total_amount", AmountUtils.changeF2Y(aliPayOrderRequest.getOrderActFee()+"")); // bizContentMap.put("seller_id", AlipayConfig.PARTNER); // bizContentMap.put("product_code", AlipayConfig.PRODUCT_CODE); // //临时字段,判断是否为新版PDA创建的支付单 zhaowg 2017-12-15 // String attach = ""; // if(aliPayOrderRequest.getIsNewPDACreate()!=null && aliPayOrderRequest.getIsNewPDACreate()){ // attach = "isNewPDACreate"; // } // bizContentMap.put("passback_params", attach); // return bizContentMap; // } // // // /** // * 获取会员卡支付请求参数.
// * @param aliPayOrderRequest // * @return // * @throws Exception // */ // public static String getPayVipCardMessage(AliPayOrderRequest aliPayOrderRequest) throws Exception { // logger.info("【{}】开始获取支付请求参数AliPayUtil.getPayVipCardMessage()方法,入参={}",aliPayOrderRequest.getBaseRequest().getRequestId(),JSONObject.toJSON(aliPayOrderRequest).toString()); // SimpleDateFormat formart = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); // String timestamp = formart.format(new Date()); // //公共参数 // Map map = new HashMap(); // map.put("app_id", AlipayConfig.APPID); // map.put("method", AlipayConfig.METHOD); // map.put("format", AlipayConfig.FORMAT_JSON); // map.put("charset", AlipayConfig.CHARSET); // map.put("sign_type", AlipayConfig.SIGN_TYPE); // map.put("timestamp", timestamp); // map.put("version", AlipayConfig.VERSION); // /**微信-会员卡-异步回调*/ // logger.info("会员卡订单:"+payNotifyUrl.getAlipay_vipcard_notifu_url()); // map.put("notify_url", payNotifyUrl.getAlipay_vipcard_notifu_url()); // //业务参数分装 // Map bizContentMap = AliPayUtil.createOrderVipCardInfo(aliPayOrderRequest); // // //转换成json // Object json =""; // if(bizContentMap != null && bizContentMap.size() > 0){ // json = JSONArray.toJSON(bizContentMap); // } // //添加业务参数 // map.put("biz_content", json+""); // String returnJson = AliPayUtil.createLinkString(map); // logger.info("签名前 串:"+returnJson); // //对未签名原始字符串进行签名 // String rsaSign = AliPayUtil.createSigin(returnJson, AlipayConfig.APP_PRIVATE_KEY, AlipayConfig.CHARSET); // // // // returnJson+="&sign=" + URLEncoder.encode(rsaSign, "UTF-8"); // logger.info("签名 后:"+returnJson); // // //最后对请求字符串的所有一级value(biz_content作为一个value)进行encode // Map mapcode = new HashMap(); // mapcode.put("app_id", AlipayConfig.APPID); // mapcode.put("method", AlipayConfig.METHOD); // mapcode.put("format", AlipayConfig.FORMAT_JSON); // mapcode.put("charset", AlipayConfig.CHARSET); // mapcode.put("sign_type", AlipayConfig.SIGN_TYPE); // mapcode.put("timestamp", URLEncoder.encode(timestamp,AlipayConfig.CHARSET)); // mapcode.put("version", AlipayConfig.VERSION); // // /**微信-支付停车订单-异步回调*/ // logger.info("支付停车订单:"+payNotifyUrl.getAlipay_vipcard_notifu_url()); // mapcode.put("notify_url", URLEncoder.encode(payNotifyUrl.getAlipay_vipcard_notifu_url(),AlipayConfig.CHARSET)); // // mapcode.put("biz_content", URLEncoder.encode(json+"",AlipayConfig.CHARSET)); // // String returnJso2 = AliPayUtil.createLinkString(mapcode); // // Map par = AliPayUtil.paraFilter(mapcode); //除去数组中的空值和签名参数 // //拼接 // // returnJso2+="&sign=" + URLEncoder.encode(rsaSign, "UTF-8"); // logger.info("【{}】编码后返回={}",aliPayOrderRequest.getBaseRequest().getRequestId(),returnJso2); // // logger.info("【{}】结束获取支付请求参数AliPayUtil.getPayOutMessage()方法.",aliPayOrderRequest.getBaseRequest().getRequestId()); // // return returnJso2; // // } // // /** // * 返回创建的订单信息 // * @param aliPayOrderRequest // * @return // */ // public static Map createOrderVipCardInfo(AliPayOrderRequest aliPayOrderRequest){ // //业务参数分装 // Map bizContentMap = new HashMap(); // if(StringUtils.isNotEmpty(aliPayOrderRequest.getBody())){ // bizContentMap.put("body", aliPayOrderRequest.getBody()); // } // if(PayOrderEnum.PAY_RESOURCE_TYPE_VIP.getValue().equals(aliPayOrderRequest.getPaySrcType()+"")){ // bizContentMap.put("subject", "任你停-购买会员卡"); // }else{ // bizContentMap.put("subject", "任你停-会员卡续费"); // } // bizContentMap.put("out_trade_no",aliPayOrderRequest.getPayOrderId()); // bizContentMap.put("total_amount", AmountUtils.changeF2Y(aliPayOrderRequest.getOrderActFee()+"")); // bizContentMap.put("seller_id", AlipayConfig.PARTNER); // bizContentMap.put("product_code", AlipayConfig.PRODUCT_CODE); // //临时字段,判断是否为新版PDA创建的支付单 zhaowg 2017-12-15 // String attach = ""; // if(aliPayOrderRequest.getIsNewPDACreate()!=null && aliPayOrderRequest.getIsNewPDACreate()){ // attach = "isNewPDACreate"; // } // bizContentMap.put("passback_params", attach); // return bizContentMap; // } // //}