微信支付中xml和map互转
来源:互联网 发布:能挣钱的软件 编辑:程序博客网 时间:2024/05/18 18:21
现在用java做微信公众号的支付,支付过程将参数发给微信是以xml格式发送,接受过来的也是xml格式字符串。感觉网上的xml和map转化复杂就手写了一个,具体代码如下:
package com.ciji.zzaclient.util.weixin;import java.util.HashMap;import java.util.List;import java.util.Map;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;/** * XML与JavaBean相互转换工具类 */public final class XMLBeanUtils { public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); /* * map.put("appid", WeixinUtils.APP_ID); map.put("mch_id", * WeixinUtils.MCH_ID); */ map.put("device_info ", "WEB"); //String nonce_str = RandomStringGenerator.getRandomStringByLength(32); map.put("nonce_str", "5K8264ILTKCH16CQ2502SI8ZNMTM67VS"); map.put("body", "商品描述。XX项目"); map.put("out_trade_no", "001t" + System.currentTimeMillis()); map.put("total_fee", "0.01"); map.put("trade_type", "JSAPI"); map.put("openid", "o4lmljscgZDnjI4xthqMMnEr02fo"); String xmlResult = ""; StringBuffer sb = new StringBuffer(); sb.append("<xml>"); for (String key : map.keySet()) { System.out.println(key + "========" + map.get(key)); sb.append("<" + key + ">" + map.get(key) + "</" + key + ">"); System.out.println(); } sb.append("</xml>"); xmlResult = sb.toString(); System.out.println(xmlResult); } public static String map2XmlString(Map<String, String> map) { String xmlResult = ""; StringBuffer sb = new StringBuffer(); sb.append("<xml>"); for (String key : map.keySet()) { System.out.println(key + "========" + map.get(key)); String value = "<![CDATA[" + map.get(key) + "]]>"; sb.append("<" + key + ">" + value + "</" + key + ">"); System.out.println(); } sb.append("</xml>"); xmlResult = sb.toString(); return xmlResult; } /** * @description 将xml字符串转换成map * @param xml * @return Map */ public static Map<String, String> readStringXmlOut(String xml) { Map<String, String> map = new HashMap<String, String>(); Document doc = null; try { doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 @SuppressWarnings("unchecked") List<Element> list = rootElt.elements();// 获取根节点下所有节点 for (Element element : list) { // 遍历节点 map.put(element.getName(), element.getText()); // 节点的name为map的key,text为map的value } } catch (DocumentException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return map; }}
效果是将map值转为如下的xml:
<xml> <nonce_str>ojc0du21prhs97xsazmjxynhp11oun41</nonce_str> <out_trade_no>001t144740390279</out_trade_no> <device_info>WEB</device_info> <openid>o4lmljscgZDnjI4xthqMMnEr02fo</openid> <total_fee>0.01</total_fee> <trade_type>JSAPI</trade_type> <body>商品描述。xxx项目</body></xml>
0 0
- 微信支付中xml和map互转
- Android 微信支付返回xml转换成map格式
- Android中关于微信支付和支付宝支付
- 微信支付 MD5加密 、xml转Map/Json 、 Map转xml
- 微信支付和支付宝支付
- 支付宝支付和微信支付
- 微信支付和支付宝支付
- android中移动支付 微信支付和支付宝支付的学习
- 微信支付api返回的xml转换为Map的方法
- 微信支付(网站支付,APP支付,扫码支付)并充值钻石 Java服务端代码 xml解析 map排序
- 解析微信返回的xml到map中
- 关于支付(支付宝和微信)
- 支付宝和微信支付封装
- iOS支付宝和微信支付
- 微信和支付宝支付实战
- 微信支付和连连支付
- android微信和支付宝支付
- 微信和支付宝支付开发
- 字符串分割
- 怎样用AT指令查询本机手机号码
- 欢迎使用CSDN-markdown编辑器
- Java使用Pipeline对Redis批量读写(hmset&hgetall)
- cas 部署过程中遇到的一些问题(持续更新)
- 微信支付中xml和map互转
- 各种编程语言查找按钮事件
- android四大组件之Service
- RegexKitLite|IOS正则
- Java NIO教程(六)Selector
- Xcode 失效 修改不起作用 清除缓存
- 最安全的网络验证码防破解系统
- Opencv vs2010实现SURF简单算法
- Android属性动画LayoutTransition(布局容器动画)