
com.hc360.hcpay.payment.util.HCPaySubmit Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of payment-util Show documentation
Show all versions of payment-util Show documentation
hcpay payment-util java sdk
The newest version!
package com.hc360.hcpay.payment.util;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.commons.httpclient.NameValuePair;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import com.hc360.hcpay.payment.config.HCPayConfig;
import com.hc360.hcpay.payment.sign.SignVerifyFactory;
import com.hc360.hcpay.payment.util.httpClient.HttpProtocolHandler;
import com.hc360.hcpay.payment.util.httpClient.HttpRequest;
import com.hc360.hcpay.payment.util.httpClient.HttpResponse;
import com.hc360.hcpay.payment.util.httpClient.HttpResultType;
/* *
*??????HcpaySubmit
*???ܣ??۸??????ӿ??????ύ??
*??ϸ??????۸??????ӿڱ???HTML?ı?????ȡԶ??HTTP????
*?汾??3.3
*???ڣ?2012-08-13
*˵????
*???´???ֻ??Ϊ?˷????̻????Զ??ṩ?????????룬?̻????Ը????Լ???վ????Ҫ?????ռ????ĵ???д,????һ??Ҫʹ?øô??롣
*?ô??????ѧϰ???о??۸????ӿ?ʹ?ã?ֻ???ṩһ???ο???
*/
public class HCPaySubmit {
/**
* ?۸????ṩ???̻??ķ??????????URL(??)
*/
static String HCPAY_GATEWAY_URL = "http://cashier.hc360pay.com/hcpaycashier/cashier/pay.html";//???ϵ?ַ
/**
* ????ǩ?????
* @param sPara Ҫǩ????????
* @return ǩ??????ַ???
*/
public static String buildRequestMysign(Map sPara) {
String prestr = HCPayCore.createLinkString(sPara); //??????????Ԫ?أ????ա?????=????ֵ????ģʽ?á?&???ַ?ƴ?ӳ??ַ???
System.out.println("text =" + prestr);
String mysign = SignVerifyFactory.createSignAndVerify(HCPayConfig.sign_type).sign(prestr, HCPayConfig.key, HCPayConfig.input_charset);
return mysign;
}
/**
* ????????ǩ???????????map
* 1 ȥ??ֵΪ?յ????????map??MapWithoutNullValue
* 2 ??MapWithoutNullValueʹ???̻?????Կ????ǩ?????õ?ǩ???ַ???sign
* 3 ??sign???????????map
* @param sParaTemp ????ǰ?IJ???????
* @return Ҫ????IJ???????
*/
public static Map buildRequestPara(Map sParaTemp) {
//??ȥ?????еĿ?ֵ??ǩ??????
Map sPara = HCPayCore.paraFilter(sParaTemp);
//????ǩ?????
String mysign = buildRequestMysign(sPara);
//ǩ???????ǩ????ʽ?????????ύ????????
sParaTemp.put("sign", mysign);
sParaTemp.put("signType", HCPayConfig.sign_type.name());
return sParaTemp;
}
/**
* ?????????Ա???HTML??ʽ???죨?ύ??Ĭ?ϵ?ַ??
* @param sParaTemp ???????????
* @param strMethod ?ύ??ʽ??????ֵ??ѡ??post??get
* @param strButtonName ȷ?ϰ?ť??ʾ????
* @return ?ύ????HTML?ı?
*/
public static String buildRequest(Map sParaTemp, String strMethod, String strButtonName) {
return buildRequest(HCPAY_GATEWAY_URL,sParaTemp,strMethod,strButtonName);
}
/**
* ?????????Ա???HTML??ʽ????
* @param uri form??????action
* @param sParaTemp
* @param strMethod
* @param strButtonName
* @return
*/
public static String buildRequest(String uri, Map sParaTemp, String strMethod, String strButtonName) {
//?????????????
Map sPara = buildRequestPara(sParaTemp);
List keys = new ArrayList(sPara.keySet());
StringBuffer sbHtml = new StringBuffer();
sbHtml.append("");
sbHtml.append("");
return sbHtml.toString();
}
/**
* ?????????Ա???HTML??ʽ???죬???ļ??ϴ?????
* @param sParaTemp ???????????
* @param strMethod ?ύ??ʽ??????ֵ??ѡ??post??get
* @param strButtonName ȷ?ϰ?ť??ʾ????
* @param strParaFileName ?ļ??ϴ??IJ?????
* @return ?ύ????HTML?ı?
*/
public static String buildRequest(Map sParaTemp, String strMethod, String strButtonName, String strParaFileName) {
//?????????????
Map sPara = buildRequestPara(sParaTemp);
List keys = new ArrayList(sPara.keySet());
StringBuffer sbHtml = new StringBuffer();
sbHtml.append("");
return sbHtml.toString();
}
/**
* ??㸶ר??
* @param url
* @param strParaFileName
* @param strFilePath
* @param sParaTemp
* @return
* @throws Exception
*/
public static String buildRequest(String url,String strParaFileName, String strFilePath,Map sParaTemp) throws Exception {
//?????????????
Map sPara = buildRequestPara(sParaTemp);
HttpProtocolHandler httpProtocolHandler = HttpProtocolHandler.getInstance();
HttpRequest request = new HttpRequest(HttpResultType.BYTES);
//???ñ??뼯
request.setCharset(HCPayConfig.input_charset);
request.setParameters(generatNameValuePair(sPara));
request.setUrl(url);
HttpResponse response = httpProtocolHandler.execute(request,strParaFileName,strFilePath);
if (response == null) {
return null;
}
String strResult = response.getStringResult();
return strResult;
}
/**
* ??????????ģ??Զ??HTTP??POST????ʽ???첢??ȡ?۸????Ĵ??????
* ????ӿ???û???ϴ??ļ?????????ôstrParaFileName??strFilePath????Ϊ??ֵ
* ?磺buildRequest("", "",sParaTemp)
* @param strParaFileName ?ļ????͵IJ?????
* @param strFilePath ?ļ?·??
* @param sParaTemp ???????????
* @return ?۸??????????
* @throws Exception
*/
public static String buildRequest(String strParaFileName, String strFilePath,Map sParaTemp) throws Exception {
//?????????????
Map sPara = buildRequestPara(sParaTemp);
HttpProtocolHandler httpProtocolHandler = HttpProtocolHandler.getInstance();
HttpRequest request = new HttpRequest(HttpResultType.BYTES);
//???ñ??뼯
request.setCharset(HCPayConfig.input_charset);
request.setParameters(generatNameValuePair(sPara));
request.setUrl(HCPAY_GATEWAY_URL+"?input_charset="+HCPayConfig.input_charset);
HttpResponse response = httpProtocolHandler.execute(request,strParaFileName,strFilePath);
if (response == null) {
return null;
}
String strResult = response.getStringResult();
return strResult;
}
/**
* MAP????????ת????NameValuePair????
* @param properties MAP????????
* @return NameValuePair????????
*/
public static NameValuePair[] generatNameValuePair(Map properties) {
NameValuePair[] nameValuePair = new NameValuePair[properties.size()];
int i = 0;
for (Map.Entry entry : properties.entrySet()) {
nameValuePair[i++] = new NameValuePair(entry.getKey(), entry.getValue());
}
return nameValuePair;
}
/**
* ???ڷ????㣬???ýӿ?query_timestamp????ȡʱ????Ĵ???????
* ע?⣺Զ?̽???XML??????????????Ƿ?֧??SSL???????й?
* @return ʱ????ַ???
* @throws IOException
* @throws DocumentException
* @throws MalformedURLException
*/
@SuppressWarnings("unchecked")
public static String query_timestamp() throws MalformedURLException,
DocumentException, IOException {
//???????query_timestamp?ӿڵ?URL??
String strUrl = HCPAY_GATEWAY_URL + "service=query_timestamp&partner=" + HCPayConfig.partner + "&_input_charset" +HCPayConfig.input_charset;
StringBuffer result = new StringBuffer();
SAXReader reader = new SAXReader();
Document doc = reader.read(new URL(strUrl).openStream());
List nodeList = doc.selectNodes("//alipay/*");
for (Node node : nodeList) {
// ??ȡ???ֲ???Ҫ????????Ϣ
if (node.getName().equals("is_success") && node.getText().equals("T")) {
// ?ж??Ƿ??гɹ???ʾ
List nodeList1 = doc.selectNodes("//response/timestamp/*");
for (Node node1 : nodeList1) {
result.append(node1.getText());
}
}
}
return result.toString();
}
/**
* ????????ǩ???????????map
* 1 ȥ??ֵΪ?յ????????map??MapWithoutNullValue
* 2 ??MapWithoutNullValueʹ???̻?????Կ????ǩ?????õ?ǩ???ַ???sign
* 3 ??sign???????????map
* @param sParaTemp ????ǰ?IJ???????
* @return Ҫ????IJ???????
*/
public static Map buildGateWayParaRequest(Map sParaTemp) {
//??ȥ?????еĿ?ֵ??ǩ??????
Map sPara = HCPayCore.paraFilter(sParaTemp);
//????ǩ?????
String mysign = buildRequestMysign(sPara);
//ǩ???????ǩ????ʽ?????????ύ????????
sParaTemp.put("sign", mysign);
sParaTemp.put("signType", HCPayConfig.sign_type.name());
sParaTemp.put("charset", HCPayConfig.input_charset);
return sParaTemp;
}
}