admin
2019-11-08 ae6bf015031bd6579cc719ee7689d8160e3d92d2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package com.yeshi.fanli.util.charge;
 
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
 
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.PostMethod;
 
import com.yeshi.fanli.exception.shop.FuLuChargeException;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
 
import net.sf.json.JSONObject;
 
/**
 * 福录开放平台API入口(open.fulu.com)
 * 
 * @author Administrator
 *
 */
public class FuLuChargeApiUtil {
    // 测试
    private final static String APP_KEY = "i4esv1l+76l/7NQCL3QudG90Fq+YgVfFGJAWgT+7qO1Bm9o/adG/1iwO2qXsAXNB";
    private final static String APP_SECRET = "0a091b3aa4324435aab703142518a8f7";
    // 正式
    // private final static String APP_KEY =
    // "CrtDnTh1E5eYY5D42T8uArVrl4GWq9AWR9ZrNC2qvXYIBMwOTuiJQy7YYaJSYlb6";
    // private final static String APP_SECRET =
    // "a5f6c827903e4b1eac6eb2ba2cf715be";
 
    @SuppressWarnings("deprecation")
    private static String post(String url, String body) {
        HttpClient client = new HttpClient();
        // client.getHostConfiguration().setProxy("192.168.1.122", 8888);
        PostMethod method = new PostMethod(url);
        method.addRequestHeader("Content-Type", "application/json;charset=UTF-8");
        method.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
        method.setRequestBody(body);
        try {
            client.executeMethod(method);
            return method.getResponseBodyAsString();
        } catch (HttpException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
 
    private static void baseRequest(String method, JSONObject bizContent) throws FuLuChargeException {
         String url = "http://pre.openapi.fulu.com/api/getway";
//        String url = "http://openapi.fulu.com/api/getway";
        Map<String, String> params = new HashMap<>();
        params.put("app_key", APP_KEY);
        params.put("method", method);
        params.put("timestamp", TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
        params.put("version", "2.0");
        params.put("format", "json");
        params.put("charset", "utf-8");
        params.put("sign_type", "md5");
        params.put("app_auth_token", "");
        params.put("biz_content", bizContent.toString());
        JSONObject resultJson = JSONObject.fromObject(params);
        char[] s = resultJson.toString().toCharArray();
        Arrays.sort(s);
        String outputSignOriginalStr = new String(s) + APP_SECRET;
        String sign = StringUtil.Md5(outputSignOriginalStr);
        params.put("sign", sign);
        String result = post(url, JSONObject.fromObject(params).toString());
        System.out.println(result);
        JSONObject json = JSONObject.fromObject(result);
        {
            if (json.optInt("code") != 0) {// 成功
                throw new FuLuChargeException(json.optInt("code"), json.optString("message"));
            } else {
            }
        }
 
    }
 
    /**
     * 充值
     * 
     * @param goodsNo-商品编号
     * @param orderId-商户订单号
     * @param account-数量
     */
    public static void charge(String goodsNo, String orderId, String account) throws FuLuChargeException {
        JSONObject json = new JSONObject();
        json.put("charge_type", "爱奇艺会员");
        json.put("customer_order_no", orderId);
        json.put("product_id", goodsNo);
        json.put("charge_account", account);
        json.put("buy_num", "1");
        baseRequest("fulu.order.direct.add", json);
    }
 
    /**
     * 沙箱充值
     */
    public static void shaXiangCharge(String goodsNo, String orderId, String account) throws FuLuChargeException {
        JSONObject json = new JSONObject();
        json.put("charge_type", "爱奇艺会员");
        json.put("customer_order_no", orderId);
        json.put("product_id", "10000586 ");
        json.put("charge_account", account);
        json.put("buy_num", "1");
        baseRequest("fulu.order.direct.add", json);
    }
 
}