package com.jshoperx.action.backstage.pay.thirdpartyplatform.alipay;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import java.io.FileWriter;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.*;
public class AlipayFunction {
public static String BuildMysign(Map sArray, String key) {
String prestr = CreateLinkString(sArray);
prestr = prestr + key;
String mysign = Md5Encrypt.md5(prestr);
return mysign;
}
public static Map ParaFilter(Map sArray){
List keys = new ArrayList(sArray.keySet());
Map sArrayNew = new HashMap();
for(int i = 0; i < keys.size(); i++){
String key = (String) keys.get(i);
String value = (String) sArray.get(key);
if(value.equals("") || value == null ||
key.equalsIgnoreCase("sign") || key.equalsIgnoreCase("sign_type")){
continue;
}
sArrayNew.put(key, value);
}
return sArrayNew;
}
public static String CreateLinkString(Map params){
List keys = new ArrayList(params.keySet());
Collections.sort(keys);
String prestr = "";
for (int i = 0; i < keys.size(); i++) {
String key = (String) keys.get(i);
String value = (String) params.get(key);
if (i == keys.size() - 1) {
prestr = prestr + key + "=" + value;
} else {
prestr = prestr + key + "=" + value + "&";
}
}
return prestr;
}
public static void LogResult(String sWord){
try {
FileWriter writer = new FileWriter("D:\\alipay_log" + System.currentTimeMillis() + ".txt");
writer.write(sWord);
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static String query_timestamp(String partner)
throws MalformedURLException, DocumentException, IOException {
String strUrl = "https://mapi.alipay.com/gateway.do?service=query_timestamp&partner="+partner;
StringBuffer buf1 = new StringBuffer();
SAXReader reader = new SAXReader();
Document doc = reader.read(new URL(strUrl).openStream());
List<Node> nodeList = doc.selectNodes("//alipay/*");
for (Node node : nodeList) {
if (node.getName().equals("is_success")
&& node.getText().equals("T")) {
List<Node> nodeList1 = doc.selectNodes("//response/timestamp/*");
for (Node node1 : nodeList1) {
buf1.append(node1.getText());
}
}
}
return buf1.toString();
}
}