疯体游戏支付sign问题解决

master
duhui 2023-05-22 10:54:42 +08:00
parent 0214291769
commit 9604639706
3 changed files with 53 additions and 10 deletions

View File

@ -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);
} }

View File

@ -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);
} }

View File

@ -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 {
} }
} }
/**
* xmlMap 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 xmlmap * @description xmlmap
* @param xml * @param xml