<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    休息食客

    隨心而動(dòng)

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      16 隨筆 :: 7 文章 :: 2 評(píng)論 :: 0 Trackbacks
    當(dāng)請(qǐng)求結(jié)束后,會(huì)受到微信服務(wù)器返回給我們的結(jié)果
    處理第三節(jié)中的reback
    //將接收到的返回信息
      Map<String,Object> mso = new HashMap<String,Object>();
       mso = XMLParser.getMapFromXML(reback);
    需要抓取異常
    寫(xiě)一個(gè)XMLParser類
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.HashMap;
    import java.util.Map;
    /**
     * User: rizenguo
     * Date: 2014/11/1
     * Time: 14:06
     */
    public class XMLParser {
        public static Map<String,Object> getMapFromXML(String xmlString) throws ParserConfigurationException, IOException, SAXException {
            //這里用Dom的方式解析回包的最主要目的是防止API新增回包字段
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            InputStream is =  Util.getStringStream(xmlString);
            Document document = builder.parse(is);
            //獲取到document里面的全部結(jié)點(diǎn)
            NodeList allNodes = document.getFirstChild().getChildNodes();
            Node node;
            Map<String, Object> map = new HashMap<String, Object>();
            int i=0;
            while (i < allNodes.getLength()) {
                node = allNodes.item(i);
                if(node instanceof Element){
                    map.put(node.getNodeName(),node.getTextContent());
                }
                i++;
            }
            return map;
        }
       
    }
    好吧,到這里,已經(jīng)將結(jié)果都放入一個(gè)map里面去了,,筆者自己寫(xiě)了一個(gè)返回類,把map里的結(jié)果都set到返回類中,
    最終都返回給調(diào)用這個(gè)現(xiàn)金紅包接口的其他業(yè)務(wù)。
    大家可以參考一下
    寫(xiě)一個(gè)WechatCashHongbaoSendRsp類
    public class WechatCashHongbaoSendRsp {
     
     private String return_code;                 //返回狀態(tài)碼
     private String return_msg;                  //返回信息
     
     //以下字段在return_code為SUCCESS的時(shí)候有返回
     private String sign;                        //簽名
     private String result_code;                 //業(yè)務(wù)結(jié)果
     private String err_code;                    //錯(cuò)誤代碼
     private String err_code_des;                //錯(cuò)誤代碼描述
     
     //以下字段在return_code和result_code都為SUCCESS的時(shí)候有返回
     private String mch_billno;                  //商戶訂單號(hào)
     private String mch_id;                      //商戶號(hào)
     private String wxappid;                     //公眾賬號(hào)appid
     private String re_openid;                   //用戶openid
     private String total_amount;                //付款金額
     private String send_time;                   //發(fā)放成功時(shí)間
     private String send_listid;                 //微信單號(hào)
     
     public String getReturn_code() {
      return return_code;
     }
     public void setReturn_code(String return_code) {
      this.return_code = return_code;
     }
     public String getReturn_msg() {
      return return_msg;
     }
     public void setReturn_msg(String return_msg) {
      this.return_msg = return_msg;
     }
     public String getSign() {
      return sign;
     }
     public void setSign(String sign) {
      this.sign = sign;
     }
     public String getResult_code() {
      return result_code;
     }
     public void setResult_code(String result_code) {
      this.result_code = result_code;
     }
     public String getErr_code() {
      return err_code;
     }
     public void setErr_code(String err_code) {
      this.err_code = err_code;
     }
     public String getErr_code_des() {
      return err_code_des;
     }
     public void setErr_code_des(String err_code_des) {
      this.err_code_des = err_code_des;
     }
     public String getMch_billno() {
      return mch_billno;
     }
     public void setMch_billno(String mch_billno) {
      this.mch_billno = mch_billno;
     }
     public String getMch_id() {
      return mch_id;
     }
     public void setMch_id(String mch_id) {
      this.mch_id = mch_id;
     }
     public String getWxappid() {
      return wxappid;
     }
     public void setWxappid(String wxappid) {
      this.wxappid = wxappid;
     }
     public String getRe_openid() {
      return re_openid;
     }
     public void setRe_openid(String re_openid) {
      this.re_openid = re_openid;
     }
     public String getTotal_amount() {
      return total_amount;
     }
     public void setTotal_amount(String total_amount) {
      this.total_amount = total_amount;
     }
     public String getSend_time() {
      return send_time;
     }
     public void setSend_time(String send_time) {
      this.send_time = send_time;
     }
     public String getSend_listid() {
      return send_listid;
     }
     public void setSend_listid(String send_listid) {
      this.send_listid = send_listid;
     }
    }
    將map里的值都set進(jìn)來(lái)
    WechatCashHongbaoSendRsp rsp = new WechatCashHongbaoSendRsp();
      rsp.setReturn_code(String.valueOf(mso.get("return_code")));
      rsp.setReturn_msg(String.valueOf(mso.get("return_msg")));
     
      //以下字段在return_code為SUCCESS的時(shí)候有返回
      if(String.valueOf(mso.get("return_code")).equals("SUCCESS")){
       rsp.setSign(String.valueOf(mso.get("sign")));
       rsp.setResult_code(String.valueOf(mso.get("result_code")));
       rsp.setErr_code(String.valueOf(mso.get("err_code")));
       rsp.setErr_code_des(String.valueOf(mso.get("err_code_des")));
       
       //以下字段在return_code為SUCCESS的時(shí)候有返回
       if(String.valueOf(mso.get("result_code")).equals("SUCCESS")) {
        rsp.setMch_billno(String.valueOf(mso.get("mch_billno")));
        rsp.setMch_id(String.valueOf(mso.get("mch_id")));
        rsp.setWxappid(String.valueOf(mso.get("wxappid")));
        rsp.setRe_openid(String.valueOf(mso.get("re_openid")));
        rsp.setTotal_amount(String.valueOf(mso.get("total_amount")));
        rsp.setSend_time(String.valueOf(mso.get("send_time")));
        rsp.setSend_listid(String.valueOf(mso.get("send_listid")));
       }
      }
    將此結(jié)果返回出去吧!
    聲明:工具類代碼參考微信支付開(kāi)發(fā)的demo,有些自己做了小改動(dòng)。

    最后說(shuō)一點(diǎn)點(diǎn),開(kāi)發(fā)這個(gè)應(yīng)用接口,除了在加載證書(shū)那里遇到困難,其他地方還是比較順利的,然后筆者寫(xiě)這篇博客,希望將
    自己的研究的東西分享出去,有哪些不對(duì)的地方,或者不好的地方,請(qǐng)指教,畢竟當(dāng)局者迷旁觀者清。
    posted on 2015-09-15 11:44 休息食客 閱讀(305) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产线视频精品免费观看视频| 亚洲欧美日韩中文无线码| 一个人免费观看日本www视频 | 亚洲丶国产丶欧美一区二区三区| 免费成人福利视频| 久久精品国产亚洲AV嫖农村妇女| 国产精品免费看久久久| 亚洲成色在线影院| 五月婷婷在线免费观看| 亚洲免费一级视频| 青青青国产在线观看免费| 国产精品亚洲精品青青青| 成人在线免费观看| 精品国产亚洲AV麻豆| www亚洲精品少妇裸乳一区二区| 激情吃奶吻胸免费视频xxxx| 亚洲伦乱亚洲h视频| 91在线免费观看| 久久精品国产亚洲av成人| 57pao一国产成视频永久免费| 亚洲国产人成在线观看| 日韩在线视频免费看| 日本黄页网址在线看免费不卡 | 日本不卡高清中文字幕免费| 国产精品亚洲二区在线| 国产性爱在线观看亚洲黄色一级片| 成人免费区一区二区三区 | 亚洲午夜精品久久久久久人妖| 3344永久在线观看视频免费首页| 亚洲精品国产精品国自产网站 | 久久国产乱子伦精品免费不卡 | 蜜桃精品免费久久久久影院| 香蕉视频免费在线| 亚洲av无码精品网站| 蜜桃视频在线观看免费网址入口| 美女黄色免费网站| 亚洲天堂男人天堂| 国产免费变态视频网址网站| 成人影片一区免费观看| 亚洲av纯肉无码精品动漫| 亚洲国产精品乱码一区二区|