| | |
| | | * 商户号 |
| | | */ |
| | | private static final String merchantNo = "888122600004175"; |
| | | /** |
| | | * 平台-报备商户号 |
| | | */ |
| | | public static final String sysTradeMerchantNo = "777168500885852"; |
| | | |
| | | private static final String format = "yyyy-MM-dd HH:mm:ss"; |
| | | /** |
| | | * 支付回调地址 |
| | | */ |
| | | private static final String callbackUrl = "http://221.182.45.100:9000"; |
| | | private static final String callbackUrl = "https://www.qijisheng.top"; |
| | | |
| | | |
| | | /** |
| | |
| | | //商户编号 |
| | | body.put("userNo", merchantNo); |
| | | //报备商户号 |
| | | body.put("tradeMerchantNo", singlePay.getTradeMerchantNo()); |
| | | // body.put("tradeMerchantNo", singlePay.getTradeMerchantNo()); |
| | | //产品类型 |
| | | body.put("productCode", "BANK_PAY_DAILY_ORDER"); |
| | | //交易请求时间 |
| | |
| | | */ |
| | | body.put("paidUse", singlePay.getPaidUse()); |
| | | //商户通知地址 |
| | | body.put("callbackUrl", singlePay.getCallbackUrl()); |
| | | body.put("callbackUrl", callbackUrl + singlePay.getCallbackUrl()); |
| | | String sign = null; |
| | | try { |
| | | sign = sign(body); |
| | |
| | | |
| | | |
| | | |
| | | public static String sign(JSONObject body) throws Exception{ |
| | | public static String sign(JSONObject body) { |
| | | //构建字段顺序必须按照文档签名顺序 |
| | | Set<Map.Entry<String, Object>> entries = body.entrySet(); |
| | | List<Map.Entry<String, Object>> infoIds = new ArrayList<Map.Entry<String, Object>>(entries); |
| | | // 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序) |
| | | Collections.sort(infoIds, new Comparator<Map.Entry<String, Object>>() { |
| | | public int compare(Map.Entry<String, Object> o1, Map.Entry<String, Object> o2) { |
| | | return (o1.getKey()).toString().compareTo(o2.getKey()); |
| | | } |
| | | }); |
| | | // 构造签名键值对的格式 |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (Map.Entry<String, Object> item : infoIds) { |
| | | for (Map.Entry<String, Object> item : entries) { |
| | | if (item.getKey() != null || item.getKey() != "") { |
| | | Object val = item.getValue(); |
| | | if (!(val == "" || val == null)) { |
| | |
| | | } |
| | | } |
| | | sb.append(key); |
| | | log.info("待签名串:{}", sb.toString()); |
| | | return MD5AndKL.MD5(sb.toString()); |
| | | } |
| | | |