All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hc360.hcpay.payment.util.HCPaySubmit Maven / Gradle / Ivy

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(""); for (int i = 0; i < keys.size(); i++) { String name = (String) keys.get(i); String value = (String) sPara.get(name); sbHtml.append(""); System.out.println(name + " : " + value); } //submit??ť?ؼ??벻Ҫ????name???? 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("
"); for (int i = 0; i < keys.size(); i++) { String name = (String) keys.get(i); String value = (String) sPara.get(name); sbHtml.append(""); } sbHtml.append(""); //submit??ť?ؼ??벻Ҫ????name???? 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; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy