public static TreeMap<String, String> unifiedorder( String body, String ip, String total_fee, String out_trade_no) throws URIException, UnsupportedEncodingException { TreeMap<String, String> paramsMap = new TreeMap<String, String>(); TreeMap<String, String> resultMap = new TreeMap<String, String>(); String nonce_str = System.currentTimeMillis() + ""; // 统一下单 paramsMap.put("appid", appid); paramsMap.put("body", body); // 商品描述 paramsMap.put("mch_id", mch_id); paramsMap.put("nonce_str", nonce_str); // 随机字符串 paramsMap.put("notify_url", notify_url); // 通知地址 paramsMap.put("out_trade_no", out_trade_no); // 商户订单号 paramsMap.put("spbill_create_ip", ip); // 终端IP paramsMap.put("total_fee", total_fee); // 总金额 paramsMap.put("trade_type", "APP"); // 交易类型 String xml = sendPost(paramsMap, key, unifiedorder); ReceiveXmlEntity xmlEntity = new ReceiveXmlProcess().getMsgEntity(xml); if ("FAIL".equals(xmlEntity.getReturn_code())) return resultMap; // 调起支付 返回app端参数 resultMap.put("appid", appid); resultMap.put("partnerid", mch_id); // 商户号 resultMap.put("prepayid", xmlEntity.getPrepay_id()); // 统一下单返回回话Id resultMap.put("package", "Sign=WXPay"); // 暂时固定值 resultMap.put("noncestr", nonce_str); // 随机字符串,不长于32位 resultMap.put("timestamp", nonce_str); // 时间戳 String paramsStr = toQueryString(resultMap); resultMap.put("sign", MD5(paramsStr).toUpperCase()); // 签名 return resultMap; }
public static void main(String[] args) throws Exception { TreeMap<String, String> paramsMap = new TreeMap<String, String>(); TreeMap<String, String> resultMap = new TreeMap<String, String>(); String nonce_str = System.currentTimeMillis() + ""; // 统一下单 // String app = ConfigUtil.getConfigParam("WX.APPID"); paramsMap.put("appid", "wx210fd7c732469f74"); paramsMap.put("body", "app测试第二次"); // 商品描述 paramsMap.put("mch_id", "1259144401"); paramsMap.put("nonce_str", nonce_str); // 随机字符串 paramsMap.put( "notify_url", "http://101.200.231.150:8080/flowers/customer/async_inform.do"); // 通知地址 paramsMap.put("out_trade_no", nonce_str); // 商户订单号 paramsMap.put("spbill_create_ip", "10.10.11.240"); // 终端IP paramsMap.put("total_fee", "1"); // 总金额 paramsMap.put("trade_type", "APP"); // 交易类型 String xml = sendPost( paramsMap, "92529b042a053742dd38a899802544c6", "https://api.mch.weixin.qq.com/pay/unifiedorder"); ReceiveXmlEntity xmlEntity = new ReceiveXmlProcess().getMsgEntity(xml); if ("FAIL".equals(xmlEntity.getReturn_code())) return; System.out.println( "返回结果 " + xmlEntity.getReturn_code() + " prepay_id " + xmlEntity.getPrepay_id()); // 调起支付 返回app端参数 resultMap.put("appid", "wx210fd7c732469f74"); resultMap.put("partnerid", "1259144401"); // 商户号 resultMap.put("prepayid", xmlEntity.getPrepay_id()); // 统一下单返回回话Id resultMap.put("package", "Sign=WXPay"); // 暂时固定值 resultMap.put("noncestr", nonce_str); // 随机字符串,不长于32位 resultMap.put("timestamp", nonce_str); // 时间戳 String paramsStr = toQueryString(resultMap); System.out.println(paramsStr); paramsMap.put("sign", MD5(paramsStr).toUpperCase()); // 签名 }