package edu.fudan.weixin.entity.payment; import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; import edu.fudan.eservice.common.utils.CommonUtil; import edu.fudan.eservice.common.utils.Config; import edu.fudan.eservice.common.utils.EncodeHelper; import edu.fudan.eservice.common.utils.PaymentUtil; public abstract class PaymentRequest implements Serializable{ /** * */ private static final long serialVersionUID = 8777998961581111274L; /** * 编码参数需顺序严格按照数组顺序组装, */ private String[] signParameters; private String[] otherParameters; private String sign; public String getSign() { setSign(PaymentUtil.createSign(sysCert, signParameters, values)); return sign; } public void setSign(String sign) { this.sign = sign; } public String[] getSignParameters() { return signParameters; } public void setSignParameters(String[] signParameters) { this.signParameters = signParameters; } public String[] getOtherParameters() { return otherParameters; } public void setOtherParameters(String[] otherParameters) { this.otherParameters = otherParameters; } private Map<String, Object> values; public Map<String, Object> getValues() { return values; } public void setValues(Map<String, Object> values) { this.values = values; } private String sysCert = "0"; public String getSysCert() { return sysCert; } public void setSysCert(String sysCert) { if(!CommonUtil.isEmpty(sysCert)) this.sysCert = sysCert; } public PaymentRequest(String[] signParameters, String[] otherParameters) { this.signParameters = signParameters; this.otherParameters = otherParameters; setSysCert(Config.getInstance().get("PAYMENT.SYSCERT")); initValues(); } private void initValues() { values = new HashMap<String, Object>(); //默认返回数据为 data 方式 setReturnType("data"); } public void setValue(String key, String value) { if(!CommonUtil.isEmpty(value)) values.put(key, value); } public void setSysId(String sysId) { setValue("sysId", sysId); } public void setItemId(String itemId) { setValue("itemId", itemId); } public String getReturnType() { return values.get("returnType").toString(); } public void setReturnType(String returnType) { setValue("returnType", returnType); } }