Java tutorial
/** * Project: guahao-portal-biz-core * * File Created at 2012-12-13 * * Copyright 2012 Greenline.com Corporation Limited. * All rights reserved. * * This software is the confidential and proprietary information of * Greenline Company. ("Confidential Information"). You shall not * disclose such Confidential Information and shall use it only in * accordance with the terms of the license agreement you entered into * with Greenline.com. */ package com.greenline.guahao.biz.manager.partners.unicom.impl; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.commons.lang.RandomStringUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.message.BasicNameValuePair; import org.springframework.stereotype.Service; import com.greenline.common.util.MD5Util; import com.greenline.framework.http.HttpClientManager; import com.greenline.guahao.biz.manager.cache.JackJsonUtil; import com.greenline.guahao.biz.manager.common.LocalResponseDO; import com.greenline.guahao.biz.manager.partners.unicom.UnicomManager; import com.greenline.guahao.biz.util.HttpClientUtil; /** * @Type UnicomManagerImpl * @Desc ?net?? * @author jianyun.zheng * @date 2012-12-13 * @Version V1.0 */ @Service public class UnicomManagerImpl implements UnicomManager { private static final Log log = LogFactory.getLog(UnicomManagerImpl.class); private final String unicomurl = "http://www.ishwap.com"; private final String neturl = unicomurl + "/net"; private final String orderurl = unicomurl + "/netjifei/"; private final String spID = "21011"; private final String spPassWord = "njaction"; @Resource private HttpClientManager httpClientManager; @Resource private JackJsonUtil jackjson; @Override public String getNetCGurl(String ip) { return this.getNetCGurl(this.setParams(ip)); } @Override public String getSpPassWord() { return spPassWord; } private String getNetCGurl(final List<NameValuePair> params) { HttpClient client = null; try { client = httpClientManager.getHttpClient(); LocalResponseDO<Object> lrd = new LocalResponseDO<Object>(); // ?? String res = HttpClientUtil.httpSendByGet(lrd, neturl, params, "?net??", client, "GBK"); log.info("______________?net??:" + res + "______________"); if (StringUtils.isBlank(res)) { return null; } @SuppressWarnings("unchecked") Map<String, String> map = jackjson.read(res, Map.class); // ?? String netCGurl = map.get("url"); return netCGurl; } catch (Exception e) { log.error("?net??" + "", e); return null; } } private List<NameValuePair> setParams(String ip) { List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("spID", spID)); String timestamp = String.valueOf((new Date().getTime()) / 1000); String response = MD5Util.getMD5Format("http://" + spID + timestamp + spPassWord); params.add(new BasicNameValuePair("timestamp", timestamp)); params.add(new BasicNameValuePair("sourceIP", ip)); params.add(new BasicNameValuePair("response", response)); log.info("______________getNetCGurl:" + neturl + "?spID=" + spID + "×tamp=" + timestamp + "&sourceIP=" + ip + "&response=" + response + "______________"); return params; } @Override public String getorderMessageURL(String productid, String backurl) { String gettime = String.valueOf((new Date().getTime()) / 1000); String rand = RandomStringUtils.randomNumeric(5); String key = MD5Util.getMD5Format(spID + productid + gettime + spPassWord + rand); StringBuffer buffer = new StringBuffer(); buffer.append(orderurl).append("?spid=").append(spID).append("&productid=").append(productid) .append("&gettime=").append(gettime).append("&rand=").append(rand).append("&key=").append(key) .append("&backurl=").append(backurl); log.info("______________orderMessageurl:" + buffer.toString() + "______________"); return buffer.toString(); } @Override public String orderMessage(String productid, String backurl) { try { List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("spid", spID)); params.add(new BasicNameValuePair("productid", productid)); String gettime = String.valueOf((new Date().getTime()) / 1000); params.add(new BasicNameValuePair("gettime", gettime)); String rand = RandomStringUtils.randomNumeric(5); params.add(new BasicNameValuePair("rand", rand)); String key = MD5Util.getMD5Format(spID + productid + gettime + spPassWord + rand); params.add(new BasicNameValuePair("key", key)); params.add(new BasicNameValuePair("backurl", backurl)); log.info("______________orderMessageurl:" + orderurl + "?spid=" + spID + "&productid=" + productid + "&gettime=" + gettime + "&rand=" + rand + "&key=" + key + "&backurl=" + backurl + "______________"); HttpClient client = httpClientManager.getHttpClient(); LocalResponseDO<Object> lrd = new LocalResponseDO<Object>(); // ?? String res = HttpClientUtil.httpSendByPost(lrd, orderurl, params, "??", client, "GBK"); log.info("______________??:" + res + "______________"); if (StringUtils.isBlank(res)) { return null; } @SuppressWarnings("unchecked") Map<String, String> map = jackjson.read(res, Map.class); // ? 1-? 0- 2- return map.get("pay"); } catch (Exception e) { log.error("??" + "", e); return null; } } }