富友增加,回调参数获取,configStorage增加privateKey取值设置

This commit is contained in:
egzosn@gmail.com
2017-06-23 17:13:08 +08:00
parent d71e7dff12
commit 556b7a7028
2 changed files with 38 additions and 8 deletions

View File

@@ -61,5 +61,6 @@ public class FuiouPayConfigStorage extends BasePayConfigStorage {
public void setSecretKey(String mchntKey){
this.mchntKey = mchntKey;
setKeyPrivate(mchntKey);
}
}

View File

@@ -1,5 +1,4 @@
package com.egzosn.pay.fuiou.api;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.egzosn.pay.common.api.BasePayService;
import com.egzosn.pay.common.api.Callback;
@@ -7,6 +6,7 @@ import com.egzosn.pay.common.api.PayConfigStorage;
import com.egzosn.pay.common.bean.*;
import com.egzosn.pay.common.exception.PayErrorException;
import com.egzosn.pay.common.http.HttpConfigStorage;
import com.egzosn.pay.common.http.UriVariables;
import com.egzosn.pay.common.util.sign.SignUtils;
import com.egzosn.pay.common.util.str.StringUtils;
import org.apache.commons.logging.Log;
@@ -101,8 +101,6 @@ public class FuiouPayService extends BasePayService {
@Override
public boolean signVerify(Map<String, Object> params, String responseSign) {
params = new LinkedHashMap<>(params);
String sign = createSign(SignUtils.parameters2MD5Str(params, "|"), payConfigStorage.getInputCharset());
return responseSign.equals(sign);
@@ -120,10 +118,14 @@ public class FuiouPayService extends BasePayService {
params.put("mchnt_cd", payConfigStorage.getPid());
params.put("order_id", order_id);
params.put("md5", createSign(SignUtils.parameters2MD5Str(params, "|"), payConfigStorage.getInputCharset()));
JSONObject resultJson = getHttpRequestTemplate().postForObject(getReqUrl() + URL_FuiouSmpAQueryGate, params, JSONObject.class);
return "0000".equals(resultJson.getString("order_pay_code"));
JSONObject resultJson = getHttpRequestTemplate().postForObject(getReqUrl() + URL_FuiouSmpAQueryGate + "?" + UriVariables.getMapToParameters(params), null, JSONObject.class);
if (null == resultJson){
return false;
}
return "0000".equals(resultJson.getJSONObject("plain").getString("order_pay_code"));
}
/**
* 将支付请求参数加密成md5
* @param order 支付订单
@@ -168,7 +170,7 @@ public class FuiouPayService extends BasePayService {
*/
@Override
public String createSign(String content, String characterEncoding) {
return SignUtils.valueOf(payConfigStorage.getSignType().toUpperCase()).createSign(content, "|" + payConfigStorage.getSecretKey(), characterEncoding);
return SignUtils.valueOf(payConfigStorage.getSignType().toUpperCase()).createSign(content, "|" + payConfigStorage.getKeyPrivate(), characterEncoding);
}
/**
@@ -179,7 +181,34 @@ public class FuiouPayService extends BasePayService {
*/
@Override
public Map<String, Object> getParameter2Map(Map<String, String[]> parameterMap, InputStream is) {
return null;
Map<String, Object> params = conversion(parameterMap, new LinkedHashMap<String, Object>(), "mchnt_cd");
conversion(parameterMap, params, "order_id");
conversion(parameterMap, params, "order_date");
conversion(parameterMap, params, "order_amt");
conversion(parameterMap, params, "order_st");
conversion(parameterMap, params, "order_pay_code");
conversion(parameterMap, params, "order_pay_error");
conversion(parameterMap, params, "resv1");
conversion(parameterMap, params, "fy_ssn");
conversion(parameterMap, params, "md5");
return params;
}
/**
* 将parameterMap对应的key存放至params
* @param parameterMap 请求参数
* @param params 转化的对象
* @param key 需要取值的key
* @return params
*/
public Map<String, Object> conversion(Map<String, String[]> parameterMap, Map<String, Object> params ,String key){
String[] values = parameterMap.get(key);
String valueStr = "";
for (int i = 0,len = values.length; i < len; i++) {
valueStr += (i == len - 1) ? values[i] : values[i] + ",";
}
params.put(key, valueStr);
return params;
}
/**
@@ -201,7 +230,7 @@ public class FuiouPayService extends BasePayService {
*/
@Override
public PayOutMessage successPayOutMessage(PayMessage payMessage) {
return PayOutMessage.JSON().content("success","成功").build();
return PayOutMessage.TEXT().content("success").build();
}
/**