自定义参数使用

This commit is contained in:
egzosn
2020-03-10 22:41:02 +08:00
parent bf424148d7
commit 0f1255fe06
16 changed files with 228 additions and 157 deletions

View File

@@ -467,4 +467,20 @@ public abstract class BasePayService<PC extends PayConfigStorage> implements Pay
return orderInfo;
}
protected Map<String, Object> setParameters(Map<String, Object> parameters, String key, String value) {
if (StringUtils.isNotEmpty(value)) {
parameters.put(key, value);
}
return parameters;
}
protected Map<String, Object> setParameters(Map<String, Object> parameters, String key, Order order) {
Object attr = order.getAttr(key);
if (null != attr && !"".equals(attr)) {
parameters.put(key, attr);
}
return parameters;
}
}

View File

@@ -17,6 +17,12 @@ public interface Order {
* 获取订单属性 这里可用做覆盖已设置的订单信息属性,订单信息在签名前进行覆盖。
* @return 属性
*/
Map<String, Object> getAttr();
Map<String, Object> getAttrs();
/**
* 获取订单属性 这里可用做覆盖已设置的订单信息属性,订单信息在签名前进行覆盖。
* @param key 属性名
* @return 属性
*/
Object getAttr(String key);
}

View File

@@ -258,20 +258,26 @@ public class PayOrder implements Order {
}
@Override
public Map<String, Object> getAttr() {
public Map<String, Object> getAttrs() {
if (null == attr){
attr = new HashMap<>();
}
return attr;
}
@Override
public Object getAttr(String key) {
return getAttrs().get(key);
}
/**
* 添加订单信息
* @param key key
* @param value 值
*/
public void addAttr(String key, Object value) {
getAttr().put(key, value);
getAttrs().put(key, value);
}

View File

@@ -1,6 +1,8 @@
package com.egzosn.pay.common.bean;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
/**
* 转账订单
@@ -10,7 +12,7 @@ import java.math.BigDecimal;
* date 2018/1/31
* </pre>
*/
public class TransferOrder {
public class TransferOrder implements Order {
/**
* 转账批次订单单号
@@ -79,6 +81,12 @@ public class TransferOrder {
*/
private String ip;
/**
* 订单附加信息,可用于预设未提供的参数,这里会覆盖以上所有的订单信息,
*/
private Map<String, Object> attr;
public String getBatchNo() {
return batchNo;
}
@@ -190,4 +198,28 @@ public class TransferOrder {
public void setIp(String ip) {
this.ip = ip;
}
@Override
public Map<String, Object> getAttrs() {
if (null == attr){
attr = new HashMap<>();
}
return attr;
}
@Override
public Object getAttr(String key) {
return getAttrs().get(key);
}
/**
* 添加订单信息
* @param key key
* @param value 值
*/
public void addAttr(String key, Object value) {
getAttrs().put(key, value);
}
}