generated from root/miduo_server
疯体游戏支付sign问题解决
parent
0214291769
commit
9604639706
|
@ -48,11 +48,13 @@ public class ChengfengRechargeController {
|
||||||
|
|
||||||
String ntData = requestMap.get("nt_data");
|
String ntData = requestMap.get("nt_data");
|
||||||
String decode = FengTiDesUtil.decode(ntData, Callback_Key);
|
String decode = FengTiDesUtil.decode(ntData, Callback_Key);
|
||||||
HashMap<String, String> data = (HashMap<String, String>) XmlUtil.readStringXmlOut(decode);
|
|
||||||
LOGGER.info("疯体,解析xml参数:{}",data);
|
Map<String, String> map = new HashMap<>();
|
||||||
String orderno = data.get("order_no"); // 支付订单号
|
Map<String, String> data = XmlUtil.parseXml2Map(decode, map);
|
||||||
double amount = Double.parseDouble(data.get("amount")) * 100; //充值金额(单位:元)(需要换算成分)
|
LOGGER.info("疯体xml参数,解析前:{},解析后:{}",decode, data);
|
||||||
String gameExt = data.get("extras_params"); //透传参数,如CP下单有值提交,则会原样回传,不得超过255个字符
|
String orderno = data.get("message.order_no"); // 支付订单号
|
||||||
|
double amount = Double.parseDouble(data.get("message.amount")) * 100; //充值金额(单位:元)(需要换算成分)
|
||||||
|
String gameExt = data.get("message.extras_params"); //透传参数,如CP下单有值提交,则会原样回传,不得超过255个字符
|
||||||
String[] callback = gameExt.split("_");
|
String[] callback = gameExt.split("_");
|
||||||
return payLogic.initOrder(gameExt, orderno, String.valueOf(amount), new Date(), callback[0], PaySdkEnum.FENGTIIOS);
|
return payLogic.initOrder(gameExt, orderno, String.valueOf(amount), new Date(), callback[0], PaySdkEnum.FENGTIIOS);
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,11 +46,14 @@ public class FengtiIOSRechargeController {
|
||||||
|
|
||||||
String ntData = requestMap.get("nt_data");
|
String ntData = requestMap.get("nt_data");
|
||||||
String decode = FengTiDesUtil.decode(ntData, Callback_Key);
|
String decode = FengTiDesUtil.decode(ntData, Callback_Key);
|
||||||
HashMap<String, String> data = (HashMap<String, String>) XmlUtil.readStringXmlOut(decode);
|
|
||||||
LOGGER.info("疯体,解析xml参数:{}",data);
|
Map<String, String> map = new HashMap<>();
|
||||||
String orderno = data.get("out_order_no"); // 支付订单号
|
Map<String, String> data = XmlUtil.parseXml2Map(decode, map);
|
||||||
double amount = Double.parseDouble(data.get("amount")) * 100; //充值金额(单位:元)(需要换算成分)
|
LOGGER.info("疯体xml参数,解析前:{},解析后:{}",decode, data);
|
||||||
String gameExt = data.get("extras_params"); //透传参数,如CP下单有值提交,则会原样回传,不得超过255个字符
|
String orderno = data.get("message.order_no"); // 支付订单号
|
||||||
|
double amount = Double.parseDouble(data.get("message.amount")) * 100; //充值金额(单位:元)(需要换算成分)
|
||||||
|
String gameExt = data.get("message.extras_params"); //透传参数,如CP下单有值提交,则会原样回传,不得超过255个字符
|
||||||
|
|
||||||
String[] callback = gameExt.split("_");
|
String[] callback = gameExt.split("_");
|
||||||
return payLogic.initOrder(gameExt, orderno, String.valueOf(amount), new Date(), callback[0], PaySdkEnum.FENGTIIOS);
|
return payLogic.initOrder(gameExt, orderno, String.valueOf(amount), new Date(), callback[0], PaySdkEnum.FENGTIIOS);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,9 @@ import org.dom4j.Document;
|
||||||
import org.dom4j.DocumentException;
|
import org.dom4j.DocumentException;
|
||||||
import org.dom4j.DocumentHelper;
|
import org.dom4j.DocumentHelper;
|
||||||
import org.dom4j.Element;
|
import org.dom4j.Element;
|
||||||
|
import org.dom4j.io.SAXReader;
|
||||||
|
|
||||||
|
import java.io.StringReader;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -78,6 +80,42 @@ public class XmlUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将xml转换为Map。 支持xml标签多层嵌套,并以"."分隔多级标签(不包括根节点)。 不支持XML标签重复时的情况
|
||||||
|
*
|
||||||
|
* @param xml
|
||||||
|
* @param map
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static Map<String, String> parseXml2Map(String xml, Map<String, String> map) {
|
||||||
|
try {
|
||||||
|
SAXReader reader = new SAXReader();
|
||||||
|
Document doc = reader.read(new StringReader(xml));
|
||||||
|
Element root = doc.getRootElement();
|
||||||
|
String path = "";
|
||||||
|
if (map.containsKey(root.getName().trim())) {
|
||||||
|
path = map.get(root.getName().trim());
|
||||||
|
map.remove(root.getName().trim());
|
||||||
|
}
|
||||||
|
for (Iterator i = root.elementIterator(); i.hasNext();) {
|
||||||
|
Element element = (Element) i.next();
|
||||||
|
if (element.isTextOnly()) {
|
||||||
|
if (path.length() > 0) {
|
||||||
|
map.put(path + element.getName().trim(), element.getTextTrim());
|
||||||
|
} else {
|
||||||
|
map.put(element.getName().trim(), element.getTextTrim());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
map.put(element.getName().trim(), path+ element.getName().trim() + ".");
|
||||||
|
parseXml2Map(element.asXML(), map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 将xml字符串转换成map
|
* @description 将xml字符串转换成map
|
||||||
* @param xml
|
* @param xml
|
||||||
|
|
Loading…
Reference in New Issue