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 org.yeshi.utils.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();
|
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("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);
|
}
|
|
}
|