订单属性接口化,暂时用做自定义属性使用,下一步具体化支付订单对象

This commit is contained in:
egzosn
2020-01-05 22:38:50 +08:00
parent f5accfbf60
commit afd3797f03
11 changed files with 56 additions and 647 deletions

View File

@@ -0,0 +1,22 @@
package com.egzosn.pay.common.bean;
import java.util.Map;
/**
* 支付订单信息
*
* @author egan
* <pre>
* email egzosn@gmail.com
* date 2020/01/05 13:34
* </pre>
*/
public interface Order {
/**
* 获取订单属性 这里可用做覆盖已设置的订单信息属性,订单信息在签名前进行覆盖。
* @return 属性
*/
Map<String, Object> getAttr();
}

View File

@@ -2,6 +2,8 @@ package com.egzosn.pay.common.bean;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* 支付订单信息
@@ -12,7 +14,7 @@ import java.util.Date;
* date 2016/10/19 22:34
* </pre>
*/
public class PayOrder {
public class PayOrder implements Order {
/**
* 商品名称
*/
@@ -82,6 +84,11 @@ public class PayOrder {
*/
private Date expirationTime;
/**
* 订单附加信息,可用于预设未提供的参数,这里会覆盖以上所有的订单信息,
*/
private Map<String, Object> attr;
public PayOrder() {
}
@@ -248,6 +255,24 @@ public class PayOrder {
this.expirationTime = expirationTime;
}
@Override
public Map<String, Object> getAttr() {
if (null == attr){
attr = new HashMap<>();
}
return attr;
}
/**
* 添加订单信息
* @param key key
* @param value 值
*/
public void addAttr(String key, Object value) {
getAttr().put(key, value);
}
/**
* 对 subject body 进行 trim 运算,
* 以防止在签名是可能造成的签名错误问题