private static final String TRANSFERS_PAY = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
private static final String TRANSFERS_PAY_QUERY = "https://api.mch.weixin.qq.com/mmpaymkttransfers/gettransferinfo";
private static final String APP_ID = MyWxpayConfig.APP_ID;private static final String MCH_ID =MyWxpayConfig.MCH_ID;
publicMap wxSendWallet (IP地址) {boolean tansferStatus=false;
String responseInfo="";String xml=wxSendWallet(用户openId,金额,IP地址 );try{//指定读取证书格式为PKCS12
KeyStore keyStore = KeyStore.getInstance("PKCS12");
InputStream instream = Thread.currentThread().getContextClassLoader().getResourceAsStream("cert/apiclient_cert.p12");try{
keyStore.load(instream, MyWxpayConfig.MCH_ID.toCharArray());
}finally{
instream.close();
}
SSLContext sslcontext =SSLContexts.custom().loadKeyMaterial(keyStore, MyWxpayConfig.MCH_ID.toCharArray()).build();
SSLConnectionSocketFactory sslsf = newSSLConnectionSocketFactory(
sslcontext,new String[]{"TLSv1"}, null, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
CloseableHttpClient httpclient =HttpClients.custom().setSSLSocketFactory(sslsf).build();
HttpPost httppost= new HttpPost("https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers");
httppost.addHeader("Content-Type", "text/xml");
StringEntity se= new StringEntity(xml, "UTF-8");
httppost.setEntity(se);
CloseableHttpResponse responseEntry=httpclient.execute(httppost);try{
HttpEntity entity=responseEntry.getEntity();if (entity != null) {SAXReader saxReader= newSAXReader();
Document document=saxReader.read(entity.getContent());
Element rootElt=document.getRootElement();
String resultCode= rootElt.elementText("result_code");if (resultCode.equals("SUCCESS")) {tansferStatus=true;
//成功后操作
} else{
//失败后操作responseInfo=rootElt.elementText("err_code_des");
}
}
EntityUtils.consume(entity);
}catch(Exception e) {}finally{
responseEntry.close();
}
}catch(Exception e) {}if(tansferStatus==true){}
HashMap responseBody = new HashMap<>();
responseBody.put("status",tansferStatus);
responseBody.put("responseInfo",responseInfo);returnresponseBody;
}public staticString wxSendWallet( 用户openId,金额,IP地址) {
String data= null;try{
String nonceStr=WXPayUtil.generateNonceStr();
SortedMap parameters = new TreeMap();
parameters.put("mch_appid",APP_ID );
parameters.put("mchid", MCH_ID);
parameters.put("nonce_str", nonceStr);
String outTradeNo= UUID.randomUUID().toString().replaceAll("-", "");
parameters.put("partner_trade_no", outTradeNo);
parameters.put("openid", 用户openId);
parameters.put("check_name", "NO_CHECK");
parameters.put("amount", 金额);
parameters.put("spbill_create_ip", IP地址);
parameters.put("desc", 商家名称);//签名
parameters.put("sign", WXPayUtil.generateSignature(parameters, MyWxpayConfig.APP_KEY));
data=WXPayUtil.mapToXml(parameters);
}catch(Exception e) {
e.printStackTrace();
}returndata;
}//元转分
public String changeY2F(doubleprice) {int amount= (int) (price * 100);returnString.valueOf(amount);
}
}