86183
2022-09-09 0d999e33085c0a25c5525242748f6aa62a401159
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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);
    }
 
 
}