??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲综合亚洲国产尤物,亚洲精品美女久久久久,亚洲成AV人片在http://www.tkk7.com/resteater/随心(j)而动zh-cnFri, 09 May 2025 18:37:42 GMTFri, 09 May 2025 18:37:42 GMT60微信现金U包开?QJAVAQ?/title><link>http://www.tkk7.com/resteater/archive/2015/09/15/427316.html</link><dc:creator>休息食客</dc:creator><author>休息食客</author><pubDate>Tue, 15 Sep 2015 03:44:00 GMT</pubDate><guid>http://www.tkk7.com/resteater/archive/2015/09/15/427316.html</guid><wfw:comment>http://www.tkk7.com/resteater/comments/427316.html</wfw:comment><comments>http://www.tkk7.com/resteater/archive/2015/09/15/427316.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/resteater/comments/commentRss/427316.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/resteater/services/trackbacks/427316.html</trackback:ping><description><![CDATA[<span style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">当请求结束后Q会(x)受到微信服务器返回给我们的结?/span><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">处理W三节中的reback</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">//接收到的返回信?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  Map<String,Object> mso = new HashMap<String,Object>();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   mso = XMLParser.getMapFromXML(reback);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">需要抓取异?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">写一个XMLParserc?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import org.w3c.dom.Document;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import org.w3c.dom.Element;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import org.w3c.dom.Node;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import org.w3c.dom.NodeList;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import org.xml.sax.SAXException;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import javax.xml.parsers.DocumentBuilder;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import javax.xml.parsers.DocumentBuilderFactory;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import javax.xml.parsers.ParserConfigurationException;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.io.IOException;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.io.InputStream;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.util.HashMap;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.util.Map;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">/**</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> * User: rizenguo</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> * Date: 2014/11/1</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> * Time: 14:06</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> */</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">public class XMLParser {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    public static Map<String,Object> getMapFromXML(String xmlString) throws ParserConfigurationException, IOException, SAXException {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        //q里用Dom的方式解析回包的最主要目的是防止API新增回包字段</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        DocumentBuilder builder = factory.newDocumentBuilder();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        InputStream is =  Util.getStringStream(xmlString);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        Document document = builder.parse(is);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        //获取到document里面的全部结?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        NodeList allNodes = document.getFirstChild().getChildNodes();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        Node node;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        Map<String, Object> map = new HashMap<String, Object>();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        int i=0;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        while (i < allNodes.getLength()) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            node = allNodes.item(i);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            if(node instanceof Element){</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">                map.put(node.getNodeName(),node.getTextContent());</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            i++;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        return map;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">}</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">好吧Q到q里Q已l将l果都放入一个map里面M(jin)Q,W者自己写?jin)一个返回类Q把map里的l果都set到返回类中,</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">最l都q回l调用这个现金红包接口的其他业务?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">大家可以参考一?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">写一个WechatCashHongbaoSendRspc?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">public class WechatCashHongbaoSendRsp {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String return_code;                 //q回状态码</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String return_msg;                  //q回信息</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> //以下字段在return_code为SUCCESS的时候有q回</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String sign;                        //{֐</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String result_code;                 //业务l果</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String err_code;                    //错误代码</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String err_code_des;                //错误代码描述</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> //以下字段在return_code和result_code都ؓ(f)SUCCESS的时候有q回</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String mch_billno;                  //商户订单?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String mch_id;                      //商户?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String wxappid;                     //公众账号appid</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String re_openid;                   //用户openid</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String total_amount;                //付款金额</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String send_time;                   //发放成功旉</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String send_listid;                 //微信单号</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getReturn_code() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return return_code;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setReturn_code(String return_code) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.return_code = return_code;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getReturn_msg() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return return_msg;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setReturn_msg(String return_msg) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.return_msg = return_msg;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getSign() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return sign;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setSign(String sign) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.sign = sign;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getResult_code() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return result_code;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setResult_code(String result_code) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.result_code = result_code;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getErr_code() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return err_code;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setErr_code(String err_code) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.err_code = err_code;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getErr_code_des() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return err_code_des;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setErr_code_des(String err_code_des) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.err_code_des = err_code_des;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getMch_billno() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return mch_billno;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setMch_billno(String mch_billno) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.mch_billno = mch_billno;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getMch_id() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return mch_id;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setMch_id(String mch_id) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.mch_id = mch_id;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getWxappid() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return wxappid;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setWxappid(String wxappid) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.wxappid = wxappid;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getRe_openid() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return re_openid;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setRe_openid(String re_openid) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.re_openid = re_openid;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getTotal_amount() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return total_amount;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setTotal_amount(String total_amount) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.total_amount = total_amount;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getSend_time() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return send_time;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setSend_time(String send_time) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.send_time = send_time;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getSend_listid() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return send_listid;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setSend_listid(String send_listid) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.send_listid = send_listid;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">}</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">map里的值都setq来</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">WechatCashHongbaoSendRsp rsp = new WechatCashHongbaoSendRsp();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  rsp.setReturn_code(String.valueOf(mso.get("return_code")));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  rsp.setReturn_msg(String.valueOf(mso.get("return_msg")));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  //以下字段在return_code为SUCCESS的时候有q回</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  if(String.valueOf(mso.get("return_code")).equals("SUCCESS")){</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   rsp.setSign(String.valueOf(mso.get("sign")));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   rsp.setResult_code(String.valueOf(mso.get("result_code")));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   rsp.setErr_code(String.valueOf(mso.get("err_code")));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   rsp.setErr_code_des(String.valueOf(mso.get("err_code_des")));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   //以下字段在return_code为SUCCESS的时候有q回</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   if(String.valueOf(mso.get("result_code")).equals("SUCCESS")) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    rsp.setMch_billno(String.valueOf(mso.get("mch_billno")));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    rsp.setMch_id(String.valueOf(mso.get("mch_id")));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    rsp.setWxappid(String.valueOf(mso.get("wxappid")));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    rsp.setRe_openid(String.valueOf(mso.get("re_openid")));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    rsp.setTotal_amount(String.valueOf(mso.get("total_amount")));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    rsp.setSend_time(String.valueOf(mso.get("send_time")));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    rsp.setSend_listid(String.valueOf(mso.get("send_listid")));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">此l果q回出去吧!</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">声明Q工L(fng)代码参考微信支付开发的demoQ有些自己做?jin)小改动?/span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"><br style="background-color: inherit;" /></span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">最后说一点点Q开发这个应用接口,除了(jin)在加载证书那里遇到困难,其他地方q是比较利的,然后W者写q篇博客Q希望将</span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">自己的研I的东西分n出去Q有哪些不对的地方,或者不好的地方Q请指教Q毕竟当局者迷旁观者清?/span></div><img src ="http://www.tkk7.com/resteater/aggbug/427316.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/resteater/" target="_blank">休息食客</a> 2015-09-15 11:44 <a href="http://www.tkk7.com/resteater/archive/2015/09/15/427316.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>微信现金U包开?QJAVAQ?/title><link>http://www.tkk7.com/resteater/archive/2015/09/14/427301.html</link><dc:creator>休息食客</dc:creator><author>休息食客</author><pubDate>Mon, 14 Sep 2015 04:23:00 GMT</pubDate><guid>http://www.tkk7.com/resteater/archive/2015/09/14/427301.html</guid><wfw:comment>http://www.tkk7.com/resteater/comments/427301.html</wfw:comment><comments>http://www.tkk7.com/resteater/archive/2015/09/14/427301.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/resteater/comments/commentRss/427301.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/resteater/services/trackbacks/427301.html</trackback:ping><description><![CDATA[<span style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">当把要发送的数据准备好之后,接下来是要写httpshQ把它发送给微信服务?/span><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">String reback = HttpClientUtil.sendHttpsUrl("<a style="background-color: inherit; cursor: pointer;">https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack</a>", data);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">需要抓取异常,q处理好异常</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">写一个HttpClientUtilc?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.io.BufferedReader;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.io.ByteArrayInputStream;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.io.File;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.io.FileInputStream;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.io.IOException;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.io.InputStream;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.io.InputStreamReader;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.io.OutputStream;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.io.OutputStreamWriter;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.net.HttpURLConnection;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.net.URL;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.security.KeyManagementException;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.security.KeyStore;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.security.KeyStoreException;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.security.NoSuchAlgorithmException;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.security.SecureRandom;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.security.UnrecoverableKeyException;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.security.cert.Certificate;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.security.cert.CertificateException;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.security.cert.CertificateFactory;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.security.cert.X509Certificate;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.util.HashMap;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.util.Map;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import javax.net.ssl.HttpsURLConnection;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import javax.net.ssl.KeyManagerFactory;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import javax.net.ssl.SSLContext;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import javax.net.ssl.TrustManagerFactory;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import com.yxht.core.common.tools.LoadProperties;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import com.yxht.core.modules.WechatPay.client.TenpayHttpClient;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">/**</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> * Http客户端工L(fng)<br/></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> * q是内部调用c,请不要在外部调用?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> * @author miklchen</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> *</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> */</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">public class HttpClientUtil {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> /**</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  * 发送请求(微信支付用,发红包等{)(j)</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  * @param url</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  * @param params</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  * @return</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  * @throws Exception</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  */</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public static String sendHttpsUrl(String sendUrl, String params) throws Exception{</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  String jsonStr = "";</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  String certificate_path = "d\:\\<span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">rootca.pem</span>"; //信Q库证?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  String keystore_path = "d\:\\<span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">apiclient_cert.p12</span>"; //密钥库证?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  String password = "xxxxxxxx"; //商户P也是加蝲证书的密?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  // 声明SSL上下? </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        SSLContext sslContext = null;  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        // 实例化主机名验证接口  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        sslContext = getSSLContext(password, keystore_path, certificate_path);  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        if (sslContext != null) {  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            HttpsURLConnection.setDefaultSSLSocketFactory(sslContext  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">                    .getSocketFactory());  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        }  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  URL url = new URL(sendUrl);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  HttpsURLConnection con = (HttpsURLConnection) url.openConnection();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  con.setRequestMethod("POST");</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  con.setDoOutput(true);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  con.setDoInput(true);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  con.setUseCaches(false);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  //讄套接工厂</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  con.setSSLSocketFactory(sslContext.getSocketFactory());</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  OutputStreamWriter writer = new OutputStreamWriter(</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    con.getOutputStream(), "UTF-8");</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  writer.write(params);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  writer.flush();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  writer.close();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  InputStream in = con.getInputStream();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  BufferedReader db = new BufferedReader(new InputStreamReader(in, "UTF-8"));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  String tmp = "";</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  while ((tmp = db.readLine()) != null) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   jsonStr += tmp;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return jsonStr;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> /**</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * 获得SSLSocketFactory.</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @param password</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     *            密码</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @param keyStorePath</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     *            密钥库\?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @param trustStorePath</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     *            信Q库\?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @return SSLSocketFactory</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @throws Exception</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     */  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    public static SSLContext getSSLContext(String password,  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            String keyStorePath, String trustStorePath) throws Exception {  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        // 实例化密钥库  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        KeyManagerFactory keyManagerFactory = KeyManagerFactory  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">                .getInstance(KeyManagerFactory.getDefaultAlgorithm());  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        // 获得密钥? </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        KeyStore keyStore = getKeyStore(password, keyStorePath);  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        // 初始化密钥工? </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        keyManagerFactory.init(keyStore, password.toCharArray());  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        // 实例化信d  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">//        TrustManagerFactory trustManagerFactory = TrustManagerFactory  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">//                .getInstance(TrustManagerFactory.getDefaultAlgorithm());  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">//        // 获得信Q? </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">//        KeyStore trustStore = getKeyStore(password, trustStorePath);  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">//        // 初始化信d  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">//        trustManagerFactory.init(trustStore);  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        // 实例化SSL上下? </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        SSLContext ctx = SSLContext.getInstance("TLS");  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        // 初始化SSL上下? </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        ctx.init(keyManagerFactory.getKeyManagers(),  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">                null, null);  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        // 获得SSLSocketFactory  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        return ctx;  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    }  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    /**</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * 获得KeyStore.</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @param keyStorePath</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     *            密钥库\?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @param password</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     *            密码</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @return 密钥?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @throws Exception</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     */  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    public static KeyStore getKeyStore(String password, String keyStorePath)  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            throws Exception {  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        // 实例化密钥库  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        KeyStore ks = KeyStore.getInstance("PKCS12");  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        // 获得密钥库文件流  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        FileInputStream is = new FileInputStream(keyStorePath);  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        // 加蝲密钥? </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        ks.load(is, password.toCharArray());  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        // 关闭密钥库文件流  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        is.close();  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        return ks;  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    }  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">}</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">有些import的没用,可以删掉Q只要程序代码没有报错的地方p?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">到这里,如果发送请求,?x)失败,它?x)说你没有安装证书Q到商户q_上去下蝲证书Q文里有说?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">下蝲后一共有4个证书,臛_需要密钥库证书<span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">apiclient_cert.p12Q因Zd证书rootca.pem我不?x)用Q哪位大会(x)用教教我Q,</span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">文里也说了(jin)信Q库证书不用也行,证书安装请仔l研I文档,代码上面已经写好?jin)?/span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"><br style="background-color: inherit;" /></span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">最后最后,Q请发送请求吧Q!Q?/span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"><br style="background-color: inherit;" /></span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">声明Q工L(fng)代码参考微信支付开发的demoQ有些自己做?jin)小改动?br style="background-color: inherit;" /></span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"><br style="background-color: inherit;" /></span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">PS:需要引入http相关jar包,httpcore-4.2.3.jar,httpmine-4.2.3.jar,httpclient-4.2.3.jar,httpclient-cache-4.2.3.jar。一P</span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">q是?a style="cursor: pointer; font-family: 微Y雅黑;">https://repository.sonatype.org</a>里面扑֐Q如果是maven建立的项?把他们引入到pom.xml里面dQ?/span></div><img src ="http://www.tkk7.com/resteater/aggbug/427301.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/resteater/" target="_blank">休息食客</a> 2015-09-14 12:23 <a href="http://www.tkk7.com/resteater/archive/2015/09/14/427301.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>微信现金U包开?QJAVAQ?/title><link>http://www.tkk7.com/resteater/archive/2015/09/11/427271.html</link><dc:creator>休息食客</dc:creator><author>休息食客</author><pubDate>Fri, 11 Sep 2015 07:46:00 GMT</pubDate><guid>http://www.tkk7.com/resteater/archive/2015/09/11/427271.html</guid><wfw:comment>http://www.tkk7.com/resteater/comments/427271.html</wfw:comment><comments>http://www.tkk7.com/resteater/archive/2015/09/11/427271.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/resteater/comments/commentRss/427271.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/resteater/services/trackbacks/427271.html</trackback:ping><description><![CDATA[<span style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">W一节讲?jin)怎么准备所有的参数Q这里讲怎么这些参数组成xmlQ即要通过HTTPS发送的数据Q?/span><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">大家可以先在|上?jin)解一下java bean转xml的相关知?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">1、我Z(jin)里一个请求参数类</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">public class WechatCashHongbaoSendReq {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String nonce_str;             //随机字符?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String sign;                  //{֐</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String mch_billno;            //商户订单?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String mch_id;                //商户?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String wxappid;               //公众账号appid</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String send_name;             //商户名称</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String re_openid;             //用户openid</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private int total_amount;          //付款金额</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private int total_num;             //U包发放Mh?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String wishing;               //U包福?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String client_ip;             //Ip地址</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String act_name;              //zd名称</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private String remark;                //备注</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getNonce_str() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return nonce_str;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setNonce_str(String nonce_str) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.nonce_str = nonce_str;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getSign() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return sign;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setSign(String sign) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.sign = sign;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getMch_billno() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return mch_billno;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setMch_billno(String mch_billno) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.mch_billno = mch_billno;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getMch_id() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return mch_id;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setMch_id(String mch_id) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.mch_id = mch_id;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getWxappid() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return wxappid;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setWxappid(String wxappid) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.wxappid = wxappid;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getSend_name() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return send_name;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setSend_name(String send_name) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.send_name = send_name;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getRe_openid() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return re_openid;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setRe_openid(String re_openid) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.re_openid = re_openid;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public int getTotal_amount() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return total_amount;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setTotal_amount(int total_amount) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.total_amount = total_amount;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public int getTotal_num() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return total_num;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setTotal_num(int total_num) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.total_num = total_num;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getWishing() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return wishing;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setWishing(String wishing) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.wishing = wishing;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getClient_ip() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return client_ip;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setClient_ip(String client_ip) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.client_ip = client_ip;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getAct_name() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return act_name;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setAct_name(String act_name) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.act_name = act_name;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public String getRemark() {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  return remark;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> public void setRemark(String remark) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  this.remark = remark;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">}</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="background-color: inherit; line-height: 1.5;"><br style="background-color: inherit;" /></span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="background-color: inherit; line-height: 1.5;">2、然后把13个参数都setq去</span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">WechatCashHongbaoSendReq sendReq = new WechatCashHongbaoSendReq();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  sendReq.setNonce_str(nonce_str);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  sendReq.setSign(sign);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  sendReq.setMch_billno(mch_billno);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  sendReq.setMch_id(mch_id);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  sendReq.setWxappid(wxappid);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  sendReq.setSend_name(send_name);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  sendReq.setRe_openid(re_openid);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  sendReq.setTotal_amount(total_amount);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  sendReq.setTotal_num(total_num);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  sendReq.setWishing(wishing);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  sendReq.setClient_ip(client_ip);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  sendReq.setAct_name(act_name);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  sendReq.setRemark(remark);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">3、将hc{为xml</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">String data = Util.bean2XML(req).replaceAll("__", "_");    //Z么要加一个replaceAll("__", "_"),如果不加Q会(x)有什么情况,大家可以试试</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">写一个Utilc,代码如下Q?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import com.thoughtworks.xstream.XStream;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import com.thoughtworks.xstream.core.util.QuickWriter;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import com.thoughtworks.xstream.io.HierarchicalStreamWriter;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import com.thoughtworks.xstream.io.xml.PrettyPrintWriter;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import com.thoughtworks.xstream.io.xml.XppDriver;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.io.*;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.lang.reflect.Field;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.util.Map;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">/**</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> * User: rizenguo</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> * Date: 2014/10/23</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> * Time: 14:59</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> */</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">public class Util {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    //打log?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    /**</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * 通过反射的方式遍历对象的属性和属性|方便调试</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     *</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @param o 要遍历的对象</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @throws Exception</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     */</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    public static void reflect(Object o) throws Exception {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        Class cls = o.getClass();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        Field[] fields = cls.getDeclaredFields();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        for (int i = 0; i < fields.length; i++) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            Field f = fields[i];</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            f.setAccessible(true);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            Util.log(f.getName() + " -> " + f.get(o));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    public static byte[] readInput(InputStream in) throws IOException {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        ByteArrayOutputStream out = new ByteArrayOutputStream();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        int len = 0;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        byte[] buffer = new byte[1024];</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        while ((len = in.read(buffer)) > 0) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            out.write(buffer, 0, len);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        out.close();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        in.close();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        return out.toByteArray();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    public static String inputStreamToString(InputStream is) throws IOException {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        ByteArrayOutputStream baos = new ByteArrayOutputStream();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        int i;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        while ((i = is.read()) != -1) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            baos.write(i);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        return baos.toString();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    public static InputStream getStringStream(String sInputString) throws UnsupportedEncodingException {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        ByteArrayInputStream tInputStringStream = null;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        if (sInputString != null && !sInputString.trim().equals("")) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            tInputStringStream = new ByteArrayInputStream(sInputString.getBytes("UTF-8"));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        return tInputStringStream;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    public static Object getObjectFromXML(String xml, Class tClass) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        //从APIq回的XML数据映射到Java对象</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     xstream.alias("xml", tClass);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        return xstream.fromXML(xml);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    public static String getStringFromMap(Map<String, Object> map, String key, String defaultValue) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        if (key == "" || key == null) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            return defaultValue;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        String result = (String) map.get(key);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        if (result == null) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            return defaultValue;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        } else {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            return result;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    public static int getIntFromMap(Map<String, Object> map, String key) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        if (key == "" || key == null) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            return 0;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        if (map.get(key) == null) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            return 0;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        return Integer.parseInt((String) map.get(key));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    /**</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * 打log接口</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @param log 要打印的log字符?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @return q回log</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     */</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    public static String log(Object log){</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        return log.toString();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    /**</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * d本地的xml数据Q一般用来自用</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @param localPath 本地xml文g路径</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @return d的xml字符?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     */</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    public static String getLocalXMLString(String localPath) throws IOException {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        return Util.inputStreamToString(Util.class.getResourceAsStream(localPath));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    /**</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * java对象转ؓ(f)xml字符?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @param clazz</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @return</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     */</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    public static String bean2XML(Object o){</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     xstream.alias("xml", o.getClass());</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     return xstream.toXML(o);</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    /**</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  * 扩展xstreamQ其支持CDATA?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  *  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  * @date 2013-05-19</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">  */  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> private static XStream xstream = new XStream(new XppDriver() {  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     public HierarchicalStreamWriter createWriter(Writer out) {  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">         return new PrettyPrintWriter(out) {  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">             // Ҏ(gu)有xml节点的{换都增加CDATA标记  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">             boolean cdata = true;  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">             @SuppressWarnings("unchecked")  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">             public void startNode(String name, Class clazz) {  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">                 super.startNode(name, clazz);  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">             }  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">             protected void writeText(QuickWriter writer, String text) {  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">                 if (cdata) {  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">                     writer.write("<![CDATA[");  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">                     writer.write(text);  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">                     writer.write("]]>");  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">                 } else {  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">                     writer.write(text);  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">                 }  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">             }  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">         };  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     }  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> });  </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">   </div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">}</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">到这一步,已经完成?jin)最l要发送出ȝ数据Q然后是写httphҎ(gu)?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">声明Q工L(fng)代码参考微信支付开发的demoQ有些自己做?jin)小改动?/span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">PS:需要引入xstream-1.3.1.jar包,大家可以去apache中央仓库?a style="cursor: pointer;">https://repository.sonatype.org</a>Q输入xstream可以搜索到Qƈ下蝲出来Q如果你的项目是maven建立的,直接在pom.xml里面加上p</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><dependency></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     <groupId>com.thoughtworks.xstream</groupId></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     <artifactId>xstream</artifactId></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     <version>1.3.1</version></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></dependency></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><img src ="http://www.tkk7.com/resteater/aggbug/427271.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/resteater/" target="_blank">休息食客</a> 2015-09-11 15:46 <a href="http://www.tkk7.com/resteater/archive/2015/09/11/427271.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>微信现金U包开?QJAVAQ?/title><link>http://www.tkk7.com/resteater/archive/2015/09/10/427248.html</link><dc:creator>休息食客</dc:creator><author>休息食客</author><pubDate>Thu, 10 Sep 2015 07:35:00 GMT</pubDate><guid>http://www.tkk7.com/resteater/archive/2015/09/10/427248.html</guid><wfw:comment>http://www.tkk7.com/resteater/comments/427248.html</wfw:comment><comments>http://www.tkk7.com/resteater/archive/2015/09/10/427248.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/resteater/comments/commentRss/427248.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/resteater/services/trackbacks/427248.html</trackback:ping><description><![CDATA[<span style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">开发之前,最好有一些微信开发的l验Q先看一下文,?jin)解一?/span><a style="cursor: pointer; font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">https://pay.weixin.qq.com/wiki/doc/api/cash_coupon.php?chapter=13_5</a><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">文q了(jin)一遍之后,脑v里应该有些印象了(jin)Q废话不_(d)q入开发?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">准备参数Q一个一个来?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">参数1Q随机字W串    <span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">nonce_str</span><br style="background-color: inherit;" /><div style="background-color: inherit;"></div></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">//获取随机?q里讑֮长度20,只要不成长于32?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">String nonce_str = RandomStringGenerator.getRandomStringByLength(20); </span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"><br style="background-color: inherit;" /></span></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">写一个RandomStringGeneratorc,写一个getRandomStringByLength?rn)态方?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">import java.util.Random;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">/**</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> * User: rizenguo</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> * Date: 2014/10/29</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"> */</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">public class RandomStringGenerator {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    /**</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * 获取一定长度的随机字符?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @param length 指定字符串长?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     * @return 一定长度的字符?/div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">     */</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    public static String getRandomStringByLength(int length) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        String base = "abcdefghijklmnopqrstuvwxyz0123456789";</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        Random random = new Random();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        StringBuffer sb = new StringBuffer();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        for (int i = 0; i < length; i++) {</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            int number = random.nextInt(base.length());</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">            sb.append(base.charAt(number));</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">        return sb.toString();</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">    }</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">}</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">参数2 Q?nbsp;商户?  mch_id</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;">String mch_id = “xxxxxxxx”;</div><div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><div style="background-color: inherit;"><img src="file:///C:/Documents%20and%20Settings/lb/Local%20Settings/Application%20Data/YNote/data/tclobbyer@163.com/ee8fd967b8764c46a330ebc1c59424ff/j%25sbr5%5Bm40nw.png" data-media-type="image" data-attr-org-src-id="91F0A2992DFC4197A82799ADEEE8812B" data-attr-org-img-file="file:///C:/Documents%20and%20Settings/lb/Local%20Settings/Application%20Data/YNote/data/tclobbyer@163.com/ee8fd967b8764c46a330ebc1c59424ff/j%25sbr5%5Bm40nw.png" style="background-color: inherit; cursor: default; display: inline-block; margin-top: 8px; max-width: 800px;" alt="" /></div><div style="background-color: inherit;"></div><div style="background-color: inherit;"><img src="http://www.tkk7.com/images/blogjava_net/resteater/QQ囄20150910153338.png" width="768" height="653" alt="" /></div><div style="background-color: inherit;"><br />参数3 Q?nbsp;<span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">商户订单? mch_billno</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"><br style="background-color: inherit;" /></span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">String mch_billno = mch_id + GenerateSequenceUtil.generateSequenceNo();</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"><br style="background-color: inherit;" /></span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">些一个GenerateSequenceUtilc,写一个generateSequenceNoҎ(gu)</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"><br style="background-color: inherit;" /></span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">import java.text.DecimalFormat;</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">import java.text.FieldPosition;</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">import java.text.Format;</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">import java.text.NumberFormat;</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">import java.text.SimpleDateFormat;</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">import java.util.Calendar;</span></div><div style="background-color: inherit;"> </div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">import org.apache.log4j.Logger;</span></div><div style="background-color: inherit;"> </div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">public class GenerateSequenceUtil {</span></div><div style="background-color: inherit;"> </div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> /** .log */</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> private static final Logger logger = Logger.getLogger(GenerateSequenceUtil.class);</span></div><div style="background-color: inherit;"> </div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> /** The FieldPosition. */</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> private static final FieldPosition HELPER_POSITION = new FieldPosition(0);</span></div><div style="background-color: inherit;"> </div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> /** This Format for format the data to special format. */</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> private final static Format dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");</span></div><div style="background-color: inherit;"> </div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> /** This Format for format the number to special format. */</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> private final static NumberFormat numberFormat = new DecimalFormat("0000");</span></div><div style="background-color: inherit;"> </div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> /** This int is the sequence number ,the default value is 0. */</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> private static int seq = 0;</span></div><div style="background-color: inherit;"> </div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> private static final int MAX = 9999;</span></div><div style="background-color: inherit;"> </div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> /**</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> * 旉格式生成序列</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> * @return String</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> */</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> public static synchronized String generateSequenceNo() {</span></div><div style="background-color: inherit;"> </div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">  Calendar rightNow = Calendar.getInstance();</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">   </span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">  StringBuffer sb = new StringBuffer();</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">   </span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">  dateFormat.format(rightNow.getTime(), sb, HELPER_POSITION);</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">   </span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">  numberFormat.format(seq, sb, HELPER_POSITION);</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">   </span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">  if (seq == MAX) {</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">   seq = 0;</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">  } else {</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">   seq++;</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">  }</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">   </span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">  logger.info("THE SQUENCE IS :" + sb.toString());</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">   </span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">  return sb.toString();</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"> }</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"><br style="background-color: inherit;" /></span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">参数4Q?nbsp;公众账号appid   wxappid</span></div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;"><br style="background-color: inherit;" /></span></div><div style="background-color: inherit;">q个参数可以在微信开发者中?j)里面看?/div><div style="background-color: inherit;"><span style="color: #222222; font-family: 'Helvetica Neue', 'Hiragino Sans GB', 'Microsoft YaHei', 黑体, Arial, sans-serif;">//微信分配的公众̎号ID</span></div><div style="background-color: inherit;">String wxappid = "wx8888888888888888";</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">参数5 Q?nbsp;商户名称   send_name</div><div style="background-color: inherit;">随便?/div><div style="background-color: inherit;">String send_name = "试?;   </div><div style="background-color: inherit;"></div><div style="background-color: inherit;">参数6 Q?nbsp;用户openid   re_openid</div><div style="background-color: inherit;">微信号和公众号对应的唯一的加密过的字W串</div><div style="background-color: inherit;">String re_openid = "xxxxxxxxxxxxxxxxxxxxxxx";</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">参数7Q?nbsp;付款金额   total_amount</div><div style="background-color: inherit;">int total_amount = 100;    单位?/div><div style="background-color: inherit;"></div><div style="background-color: inherit;">参数8 Q?nbsp;U包发放Mh? total_num</div><div style="background-color: inherit;">int total_num = 1;</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">参数9 Q?nbsp;U包福?  wishing</div><div style="background-color: inherit;">随便?/div><div style="background-color: inherit;">String wishing = "试";</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">参数10 Q?nbsp;Ip地址   client_ip</div><div style="background-color: inherit;">String client_ip = InetAddress.getLocalHost().getHostAddress().toString();</div><div style="background-color: inherit;">q里可能报异常,需要抓取一?/div><div style="background-color: inherit;"></div><div style="background-color: inherit;">参数11 Q?nbsp;zd名称   act_name</div><div style="background-color: inherit;">随便?/div><div style="background-color: inherit;">String act_name = "试创徏20150906";</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">参数12 Q?nbsp;备注  remark</div><div style="background-color: inherit;">随便?/div><div style="background-color: inherit;">String remark = "试";</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">最后一个参数sign</div><div style="background-color: inherit;">//{֐</div><div style="background-color: inherit;">  Map<String,Object> map = new HashMap<String,Object>();</div><div style="background-color: inherit;">  map.put("nonce_str", nonce_str);</div><div style="background-color: inherit;">  map.put("mch_billno", mch_billno);</div><div style="background-color: inherit;">  map.put("mch_id", mch_id);</div><div style="background-color: inherit;">  map.put("wxappid", wxappid);</div><div style="background-color: inherit;">  map.put("send_name", send_name);</div><div style="background-color: inherit;">  map.put("re_openid", re_openid);</div><div style="background-color: inherit;">  map.put("total_amount", total_amount);</div><div style="background-color: inherit;">  map.put("total_num", total_num);</div><div style="background-color: inherit;">  map.put("wishing", wishing);</div><div style="background-color: inherit;">  map.put("client_ip", client_ip);</div><div style="background-color: inherit;">  map.put("act_name", act_name);</div><div style="background-color: inherit;">  map.put("remark", remark);</div><div style="background-color: inherit;">  String sign = Signature.getSign(map);</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">写一个Signaturec,代码如下Q?/div><div style="background-color: inherit;"></div><div style="background-color: inherit;">import org.xml.sax.SAXException;</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">import com.yxht.core.common.tools.LoadProperties;</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">import javax.xml.parsers.ParserConfigurationException;</div><div style="background-color: inherit;">import java.io.IOException;</div><div style="background-color: inherit;">import java.lang.reflect.Field;</div><div style="background-color: inherit;">import java.util.ArrayList;</div><div style="background-color: inherit;">import java.util.Arrays;</div><div style="background-color: inherit;">import java.util.Map;</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">/**</div><div style="background-color: inherit;"> * User: rizenguo</div><div style="background-color: inherit;"> * Date: 2014/10/29</div><div style="background-color: inherit;"> * Time: 15:23</div><div style="background-color: inherit;"> */</div><div style="background-color: inherit;">public class Signature {</div><div style="background-color: inherit;">    /**</div><div style="background-color: inherit;">     * {֐法</div><div style="background-color: inherit;">     * @param o 要参与签名的数据对象</div><div style="background-color: inherit;">     * @return {֐</div><div style="background-color: inherit;">     * @throws IllegalAccessException</div><div style="background-color: inherit;">     */</div><div style="background-color: inherit;">    public static String getSign(Object o) throws IllegalAccessException {</div><div style="background-color: inherit;">        ArrayList<String> list = new ArrayList<String>();</div><div style="background-color: inherit;">        Class cls = o.getClass();</div><div style="background-color: inherit;">        Field[] fields = cls.getDeclaredFields();</div><div style="background-color: inherit;">        for (Field f : fields) {</div><div style="background-color: inherit;">            f.setAccessible(true);</div><div style="background-color: inherit;">            if (f.get(o) != null && f.get(o) != "") {</div><div style="background-color: inherit;">                list.add(f.getName() + "=" + f.get(o) + "&");</div><div style="background-color: inherit;">            }</div><div style="background-color: inherit;">        }</div><div style="background-color: inherit;">        int size = list.size();</div><div style="background-color: inherit;">        String [] arrayToSort = list.toArray(new String[size]);</div><div style="background-color: inherit;">        Arrays.sort(arrayToSort, String.CASE_INSENSITIVE_ORDER);</div><div style="background-color: inherit;">        StringBuilder sb = new StringBuilder();</div><div style="background-color: inherit;">        for(int i = 0; i < size; i ++) {</div><div style="background-color: inherit;">            sb.append(arrayToSort[i]);</div><div style="background-color: inherit;">        }</div><div style="background-color: inherit;">        String result = sb.toString();</div><div style="background-color: inherit;">        result += "key=" + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";   //q里是开发者中?j)里面服务器配置里面的消息加解密密?/div><div style="background-color: inherit;">        Util.log("Sign Before MD5:" + result);</div><div style="background-color: inherit;">        result = MD5.MD5Encode(result).toUpperCase();</div><div style="background-color: inherit;">        Util.log("Sign Result:" + result);</div><div style="background-color: inherit;">        return result;</div><div style="background-color: inherit;">    }</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">    public static String getSign(Map<String,Object> map){</div><div style="background-color: inherit;">        ArrayList<String> list = new ArrayList<String>();</div><div style="background-color: inherit;">        for(Map.Entry<String,Object> entry:map.entrySet()){</div><div style="background-color: inherit;">            if(entry.getValue()!=""){</div><div style="background-color: inherit;">                list.add(entry.getKey() + "=" + entry.getValue() + "&");</div><div style="background-color: inherit;">            }</div><div style="background-color: inherit;">        }</div><div style="background-color: inherit;">        int size = list.size();</div><div style="background-color: inherit;">        String [] arrayToSort = list.toArray(new String[size]);</div><div style="background-color: inherit;">        Arrays.sort(arrayToSort, String.CASE_INSENSITIVE_ORDER);</div><div style="background-color: inherit;">        StringBuilder sb = new StringBuilder();</div><div style="background-color: inherit;">        for(int i = 0; i < size; i ++) {</div><div style="background-color: inherit;">            sb.append(arrayToSort[i]);</div><div style="background-color: inherit;">        }</div><div style="background-color: inherit;">        String result = sb.toString();</div><div style="background-color: inherit;">        result += "key=" + LoadProperties.getSystemdefaultValue("APP_KEY");</div><div style="background-color: inherit;">        result = MD5.MD5Encode(result).toUpperCase();</div><div style="background-color: inherit;">        return result;</div><div style="background-color: inherit;">    }</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">    /**</div><div style="background-color: inherit;">     * 从APIq回的XML数据里面重新计算一ơ签?/div><div style="background-color: inherit;">     * @param responseString APIq回的XML数据</div><div style="background-color: inherit;">     * @return 新鲜出炉的签?/div><div style="background-color: inherit;">     * @throws ParserConfigurationException</div><div style="background-color: inherit;">     * @throws IOException</div><div style="background-color: inherit;">     * @throws SAXException</div><div style="background-color: inherit;">     */</div><div style="background-color: inherit;">    public static String getSignFromResponseString(String responseString) throws IOException, SAXException, ParserConfigurationException {</div><div style="background-color: inherit;">        Map<String,Object> map = XMLParser.getMapFromXML(responseString);</div><div style="background-color: inherit;">        //清掉q回数据对象里面的Sign数据Q不能把q个数据也加q去q行{֐Q,然后用签名算法进行签?/div><div style="background-color: inherit;">        map.put("sign","");</div><div style="background-color: inherit;">        //APIq回的数据根据用{֐法q行计算新的{֐Q用来跟APIq回的签名进行比?/div><div style="background-color: inherit;">        return Signature.getSign(map);</div><div style="background-color: inherit;">    }</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">    /**</div><div style="background-color: inherit;">     * (g)验APIq回的数据里面的{֐是否合法Q避免数据在传输的过E中被第三方改</div><div style="background-color: inherit;">     * @param responseString APIq回的XML数据字符?/div><div style="background-color: inherit;">     * @return API{֐是否合法</div><div style="background-color: inherit;">     * @throws ParserConfigurationException</div><div style="background-color: inherit;">     * @throws IOException</div><div style="background-color: inherit;">     * @throws SAXException</div><div style="background-color: inherit;">     */</div><div style="background-color: inherit;">    public static boolean checkIsSignValidFromResponseString(String responseString) throws ParserConfigurationException, IOException, SAXException {</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">        Map<String,Object> map = XMLParser.getMapFromXML(responseString);</div><div style="background-color: inherit;">        Util.log(map.toString());</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">        String signFromAPIResponse = map.get("sign").toString();</div><div style="background-color: inherit;">        if(signFromAPIResponse=="" || signFromAPIResponse == null){</div><div style="background-color: inherit;">            Util.log("APIq回的数据签名数据不存在Q有可能被第三方改!!!");</div><div style="background-color: inherit;">            return false;</div><div style="background-color: inherit;">        }</div><div style="background-color: inherit;">        Util.log("服务器回包里面的{֐?" + signFromAPIResponse);</div><div style="background-color: inherit;">        //清掉q回数据对象里面的Sign数据Q不能把q个数据也加q去q行{֐Q,然后用签名算法进行签?/div><div style="background-color: inherit;">        map.put("sign","");</div><div style="background-color: inherit;">        //APIq回的数据根据用{֐法q行计算新的{֐Q用来跟APIq回的签名进行比?/div><div style="background-color: inherit;">        String signForAPIResponse = Signature.getSign(map);</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">        if(!signForAPIResponse.equals(signFromAPIResponse)){</div><div style="background-color: inherit;">            //{֐验不q,表示q个APIq回的数据有可能已经被篡改了(jin)</div><div style="background-color: inherit;">            Util.log("APIq回的数据签名验证不通过Q有可能被第三方改!!!");</div><div style="background-color: inherit;">            return false;</div><div style="background-color: inherit;">        }</div><div style="background-color: inherit;">        Util.log("恭喜QAPIq回的数据签名验证通过!!!");</div><div style="background-color: inherit;">        return true;</div><div style="background-color: inherit;">    }</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">}</div><div style="background-color: inherit;"></div><div style="background-color: inherit;"></div><div style="background-color: inherit;">先讲到这里,所有参数都准备好了(jin)Q下一步是l成xml</div><div style="background-color: inherit;"></div><div style="background-color: inherit;"></div><div style="background-color: inherit;">声明Q工L(fng)代码参考微信支付开发的demoQ有些自己做?jin)小改动?/div></div><img src ="http://www.tkk7.com/resteater/aggbug/427248.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/resteater/" target="_blank">休息食客</a> 2015-09-10 15:35 <a href="http://www.tkk7.com/resteater/archive/2015/09/10/427248.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java解析xml文gQdom4j方式Q?/title><link>http://www.tkk7.com/resteater/archive/2015/02/11/422872.html</link><dc:creator>休息食客</dc:creator><author>休息食客</author><pubDate>Wed, 11 Feb 2015 09:23:00 GMT</pubDate><guid>http://www.tkk7.com/resteater/archive/2015/02/11/422872.html</guid><wfw:comment>http://www.tkk7.com/resteater/comments/422872.html</wfw:comment><comments>http://www.tkk7.com/resteater/archive/2015/02/11/422872.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/resteater/comments/commentRss/422872.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/resteater/services/trackbacks/422872.html</trackback:ping><description><![CDATA[     摘要: java解析xml文g的方式有几种Q下面介l用dom4j方式解析1、先看一Dxml内容 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->  1 <configs>  2 &nb...  <a href='http://www.tkk7.com/resteater/archive/2015/02/11/422872.html'>阅读全文</a><img src ="http://www.tkk7.com/resteater/aggbug/422872.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/resteater/" target="_blank">休息食客</a> 2015-02-11 17:23 <a href="http://www.tkk7.com/resteater/archive/2015/02/11/422872.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux启动桌面pȝhttp://www.tkk7.com/resteater/archive/2015/02/11/422865.html休息食客休息食客Wed, 11 Feb 2015 03:01:00 GMThttp://www.tkk7.com/resteater/archive/2015/02/11/422865.htmlhttp://www.tkk7.com/resteater/comments/422865.htmlhttp://www.tkk7.com/resteater/archive/2015/02/11/422865.html#Feedback1http://www.tkk7.com/resteater/comments/commentRss/422865.htmlhttp://www.tkk7.com/resteater/services/trackbacks/422865.html启动pȝ后,没有桌面Q只是一个控制台Q如果要启动桌面pȝQ如下步骤:(x)
1、启动系l,d
2、vi /etc/inittab
3、将最后一行的id:3:initdefault:中的3换成5Q即id:5:initdefault:.
4、wq保存退?br />5、重启系l即可?br />
说明Q如果将桌面pȝ切换成控制台Q反q来?换成3重启卛_?此方法只在上面说的发行版试通过?img src ="http://www.tkk7.com/resteater/aggbug/422865.html" width = "1" height = "1" />

休息食客 2015-02-11 11:01 发表评论
]]>
db2插入I置错误http://www.tkk7.com/resteater/archive/2015/02/05/422770.html休息食客休息食客Thu, 05 Feb 2015 07:50:00 GMThttp://www.tkk7.com/resteater/archive/2015/02/05/422770.htmlhttp://www.tkk7.com/resteater/comments/422770.htmlhttp://www.tkk7.com/resteater/archive/2015/02/05/422770.html#Feedback0http://www.tkk7.com/resteater/comments/commentRss/422770.htmlhttp://www.tkk7.com/resteater/services/trackbacks/422770.html不允许将 NULL Dl?NOT NULL ?TBSPACEID=3, TABLEID=34, COLNO=29"?br />
SELECT C.TABSCHEMA, C.TABNAME, C.COLNAME   FROM SYSCAT.TABLES AS T,SYSCAT.COLUMNS AS C WHERE T.TBSPACEID = 3 AND T.TABLEID = 34 AND C.COLNO = 29 AND C.TABSCHEMA = T.TABSCHEMA AND C.TABNAME = T.TABNAME

扑և是哪一列不能插入空倹{?br />

休息食客 2015-02-05 15:50 发表评论
]]>
Java获取根目录,d配置文ghttp://www.tkk7.com/resteater/archive/2015/01/30/422583.html休息食客休息食客Fri, 30 Jan 2015 07:01:00 GMThttp://www.tkk7.com/resteater/archive/2015/01/30/422583.htmlhttp://www.tkk7.com/resteater/comments/422583.htmlhttp://www.tkk7.com/resteater/archive/2015/01/30/422583.html#Feedback1http://www.tkk7.com/resteater/comments/commentRss/422583.htmlhttp://www.tkk7.com/resteater/services/trackbacks/422583.htmlJava获取根目录\径有很多U方法,但是Ҏ(gu)应用E序所部v的环境和中间件不同,获取的\径可能也不同。下面我提供一U方法,解决q个问题?br />
         String path = InterfaceConfig.class.getResource("").getPath().toString();//获取cL在\?br />         if (path.contains(".jar")) {
             path = path.replace("/", File.separator);//?换成\Q如果是linux环境Q还?
             path = path.replace("file:", "");//Lfile
             path = path.replace("classes\\", "");//Lclasses\
             if (path.startsWith("\\")) {
                 path = path.substring(1);//LW一个\,如:(x)、\D:\TongWeb...  ,在linux上没有这U情?br />             }
             path = path.split("WEB-INF")[0]+"WEB-INF"+File.separator+"classes";
        } else {
             path = InterfaceConfig.class.getResource("/").getPath().toString();//获取根\?br />        }
        File file = new File(path + File.separator + "InterfaceConfig.xml");

q段代码什么意思呢Q?br />1、第一行是获取InterfaceConfig.classq个cL在的路径Q这个InterfaceConfig.class可以换成你这D代码所在的cR?br />2、判断\径中是否包含.jarQ就是说q段代码所在的cLl构建的时候是不是打入jar包里Q如果在jar包里Q就L一些内容,如file: ,classes\\,
    然后Ҏ(gu)WEB-INF切割Qƈ拼出根目录?br />3、如果没有打入jar包,那更单了(jin)Q直接通过获取根\径方法就解决?jin)?br />4、最后读取classes路径下的InterfaceConfig.xml配置文g?br />


休息食客 2015-01-30 15:01 发表评论
]]>
Oracle触发器阻止删除表数据http://www.tkk7.com/resteater/archive/2014/12/25/421811.html休息食客休息食客Thu, 25 Dec 2014 02:15:00 GMThttp://www.tkk7.com/resteater/archive/2014/12/25/421811.htmlhttp://www.tkk7.com/resteater/comments/421811.htmlhttp://www.tkk7.com/resteater/archive/2014/12/25/421811.html#Feedback0http://www.tkk7.com/resteater/comments/commentRss/421811.htmlhttp://www.tkk7.com/resteater/services/trackbacks/421811.htmlcreate or replace trigger preventdeleted502
before delete on d502_mzdetail
for each row
begin
if deleting then raise_application_error(-200001,'不允许删除数?');
dbms_output.PUT_LINE('不允许删除数?');
end if;
end;

解释说明Qpreventdeleted502触发器名Uͼd502_mzdetail名,对于表d502_mzdetail如果一有删除动作,马上提示溢出错误Q同时打印错误信息,那么删除动作卛_停止Q?/div>

休息食客 2014-12-25 10:15 发表评论
]]>linux安装f(xi)tphttp://www.tkk7.com/resteater/archive/2014/11/12/419943.html休息食客休息食客Wed, 12 Nov 2014 02:00:00 GMThttp://www.tkk7.com/resteater/archive/2014/11/12/419943.htmlhttp://www.tkk7.com/resteater/comments/419943.htmlhttp://www.tkk7.com/resteater/archive/2014/11/12/419943.html#Feedback0http://www.tkk7.com/resteater/comments/commentRss/419943.htmlhttp://www.tkk7.com/resteater/services/trackbacks/419943.html1、安装f(xi)tp
sudo yum install vsftpd   (注:(x)如果你用的是UbuntuQ命令:(x)sudo apt-get install vsftpd)

2、配|vsftpd.conf
sudo vim /etc/vsftpd.conf (注:(x)q里的vim是编辑器Q如果没有安装,请先sudo yum install vim安装q个~辑器,当然也可以用pȝ自动的vi)

#止匿名讉K 
anonymous_enable=NO
#接受本地用户
local_enable=YES
#允许上传
write_enable=YES
#用户只能讉K限制的目?
chroot_local_user=YES
#讄固定目录Q在l尾d。如果不dq一行,各用户对应自q目录Q当然这个文件夹自己?
local_root=/home/ftp

3、添加用?br />
sudo useradd -d /home/ftp -M loub 
sudo passwd loub

4、给文gҎ(gu)?br />
sudo chmod a-w /home/ftp 
sudo mkdir /home/ftp/upload
sudo mkdir /home/ftp/download
sudo chmod -R 777 /home/ftp/upload
sudo chmod -R 777 /home/ftp/download

5?br />命o(h)Q?/span>sudo vim /etc/pam.d/vsftpd
注释?br />
#auth    required pam_shells.so

6、重启服?br />
sudo service vsftpd restart

安装f(xi)tp服务器到q里差不多?jin),然后在客h上安装一个FileZilla软gQ输入服务器ip,用户名和密码Q端口默?1p?jin)?br />如果想了(jin)解vsftpd更多信息|上有很多,但我觉得有这几个步骤差不多?jin),能用pQ没必要搞清楚原理?br />
我用ftp遇到的问题,每次当我启动?jin)CentOS后,然后用FileZillaq上服务器,拒l访问,因ؓ(f)CentOS上的ftp没有启动Q于是输?br />sudo /etc/init.d/vsftpd start ׃(x)报错Q?00 oops :connot read config file....
q是因ؓ(f)没有Ȁzvsftpd,q要讄q行U别Q那么就用root用户d
命o(h)Qsu root
命o(h)Qchkconfig --level 35 vsftpd on
命o(h)Qservice vsftpd restart
可以用FileZillaq上?jin)?/pre>


休息食客 2014-11-12 10:00 发表评论
]]> վ֩ģ壺 AëƬþ| ޹߹ۿ| ˴ֳսŮ2021ƷƵ | 91㽹߹ۿ| ۺɫһ| þþþƷ޳18վ| aaaëƬѹۿ| AVһ| þAV| AVH߹ۿ| Ļ| H⶯߹ۿ鶹| ͵ƷƵ| avҹƷһ| ޹˾Ʒþþþþۺ| 13һ14ëƬ| һۺƵ | պѸƬ| è˳վ| ޾Ʒŷ߹ۿ| ҹ޾Ʒ| պ| ƵѲ| Ѷ| ޸Ů侫| AV˾Ʒպ | ĻMVƵ3| ԲƵ| ۺ| Ʒձ777| ҳڻӭ| Ʒ| ŮˮƵwww| ˮwww| ߳˾Ʒ| þùƷ| 18δֹѹۿ| ղƵ߹ۿ| ֻ߹ۿƵ | ɫ͵͵ɫݺ99| ɫˬ1000|