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<Object, Object> 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);
|
}
|
|
|
}
|