com.greenline.guahao.biz.manager.partners.unicom.impl.UnicomManagerImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.greenline.guahao.biz.manager.partners.unicom.impl.UnicomManagerImpl.java

Source

/**
 * 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 + "&timestamp=" + 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;
        }
    }
}