| | |
| | | *
|
| | | */
|
| | | public class WXPayUtil {
|
| | | |
| | | private static String post(String url,String entity)
|
| | | {
|
| | |
|
| | | private static String post(String url, String entity) {
|
| | | HttpClient client = new HttpClient();
|
| | | PostMethod method = new PostMethod(url);
|
| | | method.setRequestBody(entity);
|
| | |
| | | if (params == null)
|
| | | throw new WXPlaceOrderParamsException(1, "请传入下单参数");
|
| | |
|
| | | if (params.getInfo() == null)
|
| | | if (params.getApp() == null)
|
| | | throw new WXPlaceOrderParamsException(2, "请传入下单应用信息");
|
| | |
|
| | | if (StringUtil.isNullOrEmpty(params.getInfo().getAppId()))
|
| | | if (StringUtil.isNullOrEmpty(params.getApp().getAppId()))
|
| | | throw new WXPlaceOrderParamsException(201, "请传入下单应用信息-appId");
|
| | | if (StringUtil.isNullOrEmpty(params.getInfo().getAppSecret()))
|
| | | if (StringUtil.isNullOrEmpty(params.getApp().getAppSecret()))
|
| | | throw new WXPlaceOrderParamsException(202, "请传入下单应用信息-appSecret");
|
| | | if (StringUtil.isNullOrEmpty(params.getInfo().getMchId()))
|
| | | if (StringUtil.isNullOrEmpty(params.getApp().getMchId()))
|
| | | throw new WXPlaceOrderParamsException(203, "请传入下单应用信息-mchId");
|
| | | if (StringUtil.isNullOrEmpty(params.getInfo().getMchKey()))
|
| | | if (StringUtil.isNullOrEmpty(params.getApp().getMchKey()))
|
| | | throw new WXPlaceOrderParamsException(204, "请传入下单应用信息-mchKey");
|
| | | if (StringUtil.isNullOrEmpty(params.getBody()))
|
| | | throw new WXPlaceOrderParamsException(3, "请传入body");
|
| | |
| | | // throw new WXPlaceOrderParamsException(9, "请传入openId");
|
| | |
|
| | | Map<String, String> map = new HashMap<String, String>();
|
| | | map.put("appid", params.getInfo().getAppId());
|
| | | map.put("mch_id", params.getInfo().getMchId());
|
| | | map.put("appid", params.getApp().getAppId());
|
| | | map.put("mch_id", params.getApp().getMchId());
|
| | | map.put("nonce_str", StringUtil.getRandomCode(32));
|
| | | map.put("body", params.getBody());
|
| | | map.put("out_trade_no", params.getOrderNo());
|
| | |
| | | map.put("trade_type", params.getTradeType());
|
| | | if (!StringUtil.isNullOrEmpty(params.getOpenId()))
|
| | | map.put("openid", params.getOpenId());
|
| | | map.put("sign", WXUtil.getSignMD5(map, params.getInfo().getMchKey()));
|
| | | map.put("sign", WXUtil.getSignMD5(map, params.getApp().getMchKey()));
|
| | |
|
| | | String entity = WXUtil.loadWXMessage(map);
|
| | |
|
| | | String result = post("https://api.mch.weixin.qq.com/pay/unifiedorder", entity);
|
| | | String result = HttpUtil.post("https://api.mch.weixin.qq.com/pay/unifiedorder", entity);
|
| | | try {
|
| | | System.out.println("统一下单结果:" + new String(result.getBytes("GBK"), "UTF-8"));
|
| | | } catch (UnsupportedEncodingException e) {
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | Map<String, String> resultMap = WXUtil.parseXML(result);
|