package com.dsh.app.util.pay.wechat; import com.dsh.app.util.DateTimeHelper; import com.dsh.app.util.pay.PublicUtil; import com.dsh.app.util.pay.config.Config; import java.math.BigDecimal; import java.util.Date; import java.util.SortedMap; import java.util.TreeMap; public class WXPayParam { /** * 微信支付参数 * * @param sn * @param price * @param memo * @param notifyUrl * @return */ public String getPatParam(String sn, BigDecimal price, String memo, String notifyUrl) { SortedMap maps = new TreeMap<>(); maps.put("appid", Config.WX_PAY_APPID); maps.put("body", memo); maps.put("mch_id", Config.WX_PAY_MCH_ID); // maps.put("sub_appid", ConfigParam.WX_PAY_APPID); /* maps.put("sub_mch_id", ConfigParam.WX_PAY_MCH_ID);*/ maps.put("notify_url", notifyUrl); maps.put("out_trade_no", sn); maps.put("spbill_create_ip", PublicUtil.getIp()); maps.put("total_fee", price.multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_HALF_UP).toString()); Date now = DateTimeHelper.getWXTime(); maps.put("time_start", DateTimeHelper.formatDateTimetoString(now, DateTimeHelper.FMT_yyyyMMddhhmmss_noseparator)); Date expire = DateTimeHelper.addMinutes(now, 20); maps.put("time_expire", DateTimeHelper.formatDateTimetoString(expire, DateTimeHelper.FMT_yyyyMMddhhmmss_noseparator)); maps.put("trade_type", "APP"); maps.put("key", Config.WX_PAY_API_KEY); String nonce_str = WXPayCommonUtil.CreateNoncestr(); maps.put("nonce_str", nonce_str); String sign = WXPayCommonUtil.createSign(Config.WX_PAY_SIGN_TYPE, maps); System.out.println("签名" + sign); maps.put("sign", sign); maps.remove("key"); return WXPayCommonUtil.getRequestXml(maps); } }