mirror of
https://gitee.com/egzosn/pay-java-parent.git
synced 2026-09-03 13:27:43 +08:00
新增 辅助订单实体并对其所有支付实现
This commit is contained in:
@@ -30,8 +30,9 @@ import com.egzosn.pay.ali.bean.AliTransferType;
|
||||
import com.egzosn.pay.ali.bean.CertEnvironment;
|
||||
import com.egzosn.pay.ali.bean.OrderSettle;
|
||||
import com.egzosn.pay.common.api.BasePayService;
|
||||
import com.egzosn.pay.common.bean.AssistOrder;
|
||||
import com.egzosn.pay.common.bean.BillType;
|
||||
import com.egzosn.pay.common.bean.CloseOrder;
|
||||
|
||||
import com.egzosn.pay.common.bean.MethodType;
|
||||
import com.egzosn.pay.common.bean.NoticeParams;
|
||||
import com.egzosn.pay.common.bean.Order;
|
||||
@@ -256,7 +257,7 @@ public class AliPayService extends BasePayService<AliPayConfigStorage> {
|
||||
//产品码。
|
||||
//商家和支付宝签约的产品码。 枚举值(点击查看签约情况):
|
||||
//QUICK_WAP_WAY:无线快捷支付产品。
|
||||
//默认值为QUICK_WAP_PAY。
|
||||
//默认值为QUICK_WAP_PAY。
|
||||
bizContent.put(PRODUCT_CODE, "QUICK_WAP_PAY");
|
||||
OrderParaStructure.loadParameters(bizContent, PRODUCT_CODE, order);
|
||||
setReturnUrl(orderInfo, order);
|
||||
@@ -470,6 +471,18 @@ public class AliPayService extends BasePayService<AliPayConfigStorage> {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易查询接口
|
||||
*
|
||||
* @param assistOrder 查询条件
|
||||
* @return 返回查询回来的结果集,支付方原值返回
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> query(AssistOrder assistOrder) {
|
||||
return secondaryInterface(assistOrder.getTradeNo(), assistOrder.getOutTradeNo(), AliTransactionType.QUERY);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 交易关闭接口
|
||||
@@ -486,12 +499,12 @@ public class AliPayService extends BasePayService<AliPayConfigStorage> {
|
||||
/**
|
||||
* 交易关闭接口
|
||||
*
|
||||
* @param closeOrder 关闭订单
|
||||
* @param assistOrder 关闭订单
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> close(CloseOrder closeOrder){
|
||||
return secondaryInterface(closeOrder.getTradeNo(), closeOrder.getOutTradeNo(), AliTransactionType.CLOSE);
|
||||
public Map<String, Object> close(AssistOrder assistOrder){
|
||||
return secondaryInterface(assistOrder.getTradeNo(), assistOrder.getOutTradeNo(), AliTransactionType.CLOSE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -23,9 +23,9 @@ import com.egzosn.pay.baidu.bean.BaiduTransactionType;
|
||||
import com.egzosn.pay.baidu.bean.type.AuditStatus;
|
||||
import com.egzosn.pay.baidu.util.Asserts;
|
||||
import com.egzosn.pay.common.api.BasePayService;
|
||||
import com.egzosn.pay.common.bean.AssistOrder;
|
||||
import com.egzosn.pay.common.bean.BaseRefundResult;
|
||||
import com.egzosn.pay.common.bean.BillType;
|
||||
import com.egzosn.pay.common.bean.CloseOrder;
|
||||
import com.egzosn.pay.common.bean.CurType;
|
||||
import com.egzosn.pay.common.bean.MethodType;
|
||||
import com.egzosn.pay.common.bean.NoticeParams;
|
||||
@@ -428,6 +428,17 @@ public class BaiduPayService extends BasePayService<BaiduPayConfigStorage> {
|
||||
return secondaryInterface(tradeNo, outTradeNo, BaiduTransactionType.PAY_QUERY);
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易查询接口
|
||||
*
|
||||
* @param assistOrder 查询条件
|
||||
* @return 返回查询回来的结果集,支付方原值返回
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> query(AssistOrder assistOrder) {
|
||||
return secondaryInterface(assistOrder.getTradeNo(), assistOrder.getOutTradeNo(), BaiduTransactionType.PAY_QUERY);
|
||||
}
|
||||
|
||||
/**
|
||||
* 百度不支持该操作
|
||||
*
|
||||
@@ -442,11 +453,11 @@ public class BaiduPayService extends BasePayService<BaiduPayConfigStorage> {
|
||||
/**
|
||||
* 交易关闭接口
|
||||
*
|
||||
* @param closeOrder 关闭订单
|
||||
* @param assistOrder 关闭订单
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> close(CloseOrder closeOrder){
|
||||
public Map<String, Object> close(AssistOrder assistOrder){
|
||||
throw new UnsupportedOperationException("不支持该操作");
|
||||
}
|
||||
|
||||
|
||||
@@ -257,6 +257,7 @@ public abstract class BasePayService<PC extends PayConfigStorage> implements Pay
|
||||
* @param <T> 返回类型
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
*/
|
||||
@Deprecated
|
||||
@Override
|
||||
public <T> T close(String tradeNo, String outTradeNo, Callback<T> callback) {
|
||||
return callback.perform(close(tradeNo, outTradeNo));
|
||||
@@ -431,7 +432,6 @@ public abstract class BasePayService<PC extends PayConfigStorage> implements Pay
|
||||
return payBack(new DefaultNoticeRequest(parameterMap, is));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 回调处理
|
||||
*
|
||||
@@ -448,31 +448,7 @@ public abstract class BasePayService<PC extends PayConfigStorage> implements Pay
|
||||
return getPayOutMessage("fail", "失败");
|
||||
}
|
||||
PayMessage payMessage = this.createMessage(noticeParams.getBody());
|
||||
Map<String, Object> context = new HashMap<String, Object>();
|
||||
for (PayMessageInterceptor interceptor : interceptors) {
|
||||
if (!interceptor.intercept(payMessage, context, this)) {
|
||||
return successPayOutMessage(payMessage);
|
||||
}
|
||||
}
|
||||
return getPayMessageHandler().handle(payMessage, context, this);
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用转换过的参数进行回调处理
|
||||
*
|
||||
* @param data 转化后的参数Map
|
||||
* @return 获得回调响应信息
|
||||
*/
|
||||
@Override
|
||||
public PayOutMessage payBack(Map<String, Object> data) {
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("回调响应:" + JSON.toJSONString(data));
|
||||
}
|
||||
if (!verify(data)) {
|
||||
return getPayOutMessage("fail", "失败");
|
||||
}
|
||||
PayMessage payMessage = this.createMessage(data);
|
||||
Map<String, Object> context = new HashMap<String, Object>();
|
||||
Map<String, Object> context = new HashMap<>();
|
||||
for (PayMessageInterceptor interceptor : interceptors) {
|
||||
if (!interceptor.intercept(payMessage, context, this)) {
|
||||
return successPayOutMessage(payMessage);
|
||||
|
||||
@@ -5,8 +5,9 @@ import java.io.InputStream;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import com.egzosn.pay.common.bean.AssistOrder;
|
||||
import com.egzosn.pay.common.bean.BillType;
|
||||
import com.egzosn.pay.common.bean.CloseOrder;
|
||||
|
||||
import com.egzosn.pay.common.bean.MethodType;
|
||||
import com.egzosn.pay.common.bean.NoticeParams;
|
||||
import com.egzosn.pay.common.bean.NoticeRequest;
|
||||
@@ -67,6 +68,7 @@ public interface PayService<PC extends PayConfigStorage> {
|
||||
* 已过时方法,详情{@link #verify(NoticeParams)}
|
||||
* @param params 回调回来的参数集
|
||||
* @return 签名校验 true通过
|
||||
* @see #verify(NoticeParams)
|
||||
*/
|
||||
@Deprecated
|
||||
boolean verify(Map<String, Object> params);
|
||||
@@ -124,6 +126,7 @@ public interface PayService<PC extends PayConfigStorage> {
|
||||
* @param parameterMap 请求参数
|
||||
* @param is 请求流
|
||||
* @return 获得回调的请求参数
|
||||
* @see #getNoticeParams(NoticeRequest)
|
||||
*/
|
||||
@Deprecated
|
||||
Map<String, Object> getParameter2Map(Map<String, String[]> parameterMap, InputStream is);
|
||||
@@ -199,7 +202,9 @@ public interface PayService<PC extends PayConfigStorage> {
|
||||
* @param tradeNo 支付平台订单号
|
||||
* @param outTradeNo 商户单号
|
||||
* @return 返回查询回来的结果集,支付方原值返回
|
||||
* @see #query(AssistOrder)
|
||||
*/
|
||||
@Deprecated
|
||||
Map<String, Object> query(String tradeNo, String outTradeNo);
|
||||
|
||||
/**
|
||||
@@ -211,25 +216,38 @@ public interface PayService<PC extends PayConfigStorage> {
|
||||
* @param <T> 返回类型
|
||||
* @return 返回查询回来的结果集
|
||||
*/
|
||||
@Deprecated
|
||||
<T> T query(String tradeNo, String outTradeNo, Callback<T> callback);
|
||||
|
||||
|
||||
/**
|
||||
* 交易查询接口
|
||||
*
|
||||
* @param assistOrder 查询条件
|
||||
* @return 返回查询回来的结果集,支付方原值返回
|
||||
*/
|
||||
Map<String, Object> query(AssistOrder assistOrder);
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 交易关闭接口
|
||||
*
|
||||
* @param tradeNo 支付平台订单号
|
||||
* @param outTradeNo 商户单号
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
* @see #close(CloseOrder)
|
||||
* @see #close(AssistOrder)
|
||||
*/
|
||||
@Deprecated
|
||||
Map<String, Object> close(String tradeNo, String outTradeNo);
|
||||
/**
|
||||
* 交易关闭接口
|
||||
*
|
||||
* @param closeOrder 关闭订单
|
||||
* @param assistOrder 关闭订单
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
*/
|
||||
Map<String, Object> close(CloseOrder closeOrder);
|
||||
Map<String, Object> close(AssistOrder assistOrder);
|
||||
|
||||
|
||||
/**
|
||||
@@ -241,8 +259,10 @@ public interface PayService<PC extends PayConfigStorage> {
|
||||
* @param <T> 返回类型
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
*/
|
||||
@Deprecated
|
||||
<T> T close(String tradeNo, String outTradeNo, Callback<T> callback);
|
||||
|
||||
|
||||
/**
|
||||
* 交易交易撤销
|
||||
*
|
||||
@@ -261,6 +281,7 @@ public interface PayService<PC extends PayConfigStorage> {
|
||||
* @param <T> 返回类型
|
||||
* @return 返回支付方交易撤销后的结果
|
||||
*/
|
||||
@Deprecated
|
||||
<T> T cancel(String tradeNo, String outTradeNo, Callback<T> callback);
|
||||
|
||||
|
||||
@@ -280,6 +301,7 @@ public interface PayService<PC extends PayConfigStorage> {
|
||||
* @param <T> 返回类型
|
||||
* @return 返回支付方申请退款后的结果
|
||||
*/
|
||||
@Deprecated
|
||||
<T> T refund(RefundOrder refundOrder, Callback<T> callback);
|
||||
|
||||
|
||||
@@ -299,6 +321,7 @@ public interface PayService<PC extends PayConfigStorage> {
|
||||
* @param <T> 返回类型
|
||||
* @return 返回支付方查询退款后的结果
|
||||
*/
|
||||
@Deprecated
|
||||
<T> T refundquery(RefundOrder refundOrder, Callback<T> callback);
|
||||
|
||||
/**
|
||||
@@ -337,6 +360,7 @@ public interface PayService<PC extends PayConfigStorage> {
|
||||
* @param <T> 返回类型
|
||||
* @return 对应的转账结果
|
||||
*/
|
||||
@Deprecated
|
||||
<T> T transfer(TransferOrder order, Callback<T> callback);
|
||||
|
||||
|
||||
@@ -358,6 +382,7 @@ public interface PayService<PC extends PayConfigStorage> {
|
||||
* @param <T> 返回类型
|
||||
* @return 对应的转账订单
|
||||
*/
|
||||
@Deprecated
|
||||
<T> T transferQuery(String outNo, String tradeNo, Callback<T> callback);
|
||||
|
||||
/**
|
||||
@@ -377,13 +402,7 @@ public interface PayService<PC extends PayConfigStorage> {
|
||||
*/
|
||||
PayOutMessage payBack(NoticeRequest request);
|
||||
|
||||
/**
|
||||
* 使用转换过的参数进行回调处理
|
||||
*
|
||||
* @param data 转化后的参数Map
|
||||
* @return 获得回调响应信息
|
||||
*/
|
||||
PayOutMessage payBack(Map<String, Object> data);
|
||||
|
||||
|
||||
/**
|
||||
* 设置支付消息处理器,这里用于处理具体的支付业务
|
||||
@@ -431,6 +450,7 @@ public interface PayService<PC extends PayConfigStorage> {
|
||||
* @param <O> 预订单类型
|
||||
* @return 处理后订单信息
|
||||
*/
|
||||
@Deprecated
|
||||
<O extends PayOrder> Map<String, Object> preOrderHandler(Map<String, Object> orderInfo, O payOrder);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
package com.egzosn.pay.common.bean;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
|
||||
/**
|
||||
* 辅助订单实体
|
||||
*
|
||||
* @author egan
|
||||
* <pre>
|
||||
* email egan@egzosn.com
|
||||
* date 2021/10/6
|
||||
* </pre>
|
||||
*/
|
||||
public class AssistOrder implements Order {
|
||||
|
||||
|
||||
/**
|
||||
* 支付平台订单号,交易号
|
||||
*/
|
||||
private String tradeNo;
|
||||
/**
|
||||
* 商户订单号
|
||||
*/
|
||||
private String outTradeNo;
|
||||
/**
|
||||
* 交易类型
|
||||
*/
|
||||
private TransactionType transactionType;
|
||||
/**
|
||||
* 订单附加信息,可用于预设未提供的参数,这里会覆盖以上所有的订单信息,
|
||||
*/
|
||||
@JSONField(serialize = false)
|
||||
private volatile Map<String, Object> attr;
|
||||
|
||||
public AssistOrder() {
|
||||
}
|
||||
|
||||
public AssistOrder(String outTradeNo) {
|
||||
this.outTradeNo = outTradeNo;
|
||||
}
|
||||
|
||||
public AssistOrder(String tradeNo, String outTradeNo) {
|
||||
this.tradeNo = tradeNo;
|
||||
this.outTradeNo = outTradeNo;
|
||||
}
|
||||
|
||||
public AssistOrder(String tradeNo, TransactionType transactionType) {
|
||||
this.tradeNo = tradeNo;
|
||||
this.transactionType = transactionType;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付平台订单号,交易号
|
||||
*
|
||||
* @return 支付平台订单号, 交易号
|
||||
*/
|
||||
public String getTradeNo() {
|
||||
return tradeNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付平台订单号,交易号
|
||||
*
|
||||
* @param tradeNo 支付平台订单号,交易号
|
||||
*/
|
||||
public void setTradeNo(String tradeNo) {
|
||||
this.tradeNo = tradeNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商户订单号
|
||||
*
|
||||
* @return 商户订单号
|
||||
*/
|
||||
public String getOutTradeNo() {
|
||||
return outTradeNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置商户订单号
|
||||
*
|
||||
* @param outTradeNo 商户订单号
|
||||
*/
|
||||
public void setOutTradeNo(String outTradeNo) {
|
||||
this.outTradeNo = outTradeNo;
|
||||
}
|
||||
|
||||
public TransactionType getTransactionType() {
|
||||
return transactionType;
|
||||
}
|
||||
|
||||
public void setTransactionType(TransactionType transactionType) {
|
||||
this.transactionType = transactionType;
|
||||
}
|
||||
|
||||
|
||||
@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 值
|
||||
*/
|
||||
@Override
|
||||
public void addAttr(String key, Object value) {
|
||||
getAttrs().put(key, value);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
package com.egzosn.pay.common.bean;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 关闭订单
|
||||
* @author Egan
|
||||
@@ -10,85 +8,7 @@ import java.util.Map;
|
||||
* date 2021/10/6
|
||||
* </pre>
|
||||
*/
|
||||
public class CloseOrder implements Order {
|
||||
@Deprecated
|
||||
public class CloseOrder extends AssistOrder {
|
||||
|
||||
/**
|
||||
* 支付平台订单号,交易号
|
||||
*/
|
||||
private String tradeNo;
|
||||
/**
|
||||
* 商户单号
|
||||
*/
|
||||
private String outTradeNo;
|
||||
|
||||
|
||||
/**
|
||||
* 订单附加信息,可用于预设未提供的参数,这里会覆盖以上所有的订单信息,
|
||||
*/
|
||||
private Map<String, Object> attr;
|
||||
|
||||
public CloseOrder() {
|
||||
}
|
||||
|
||||
public CloseOrder(String outTradeNo) {
|
||||
this.outTradeNo = outTradeNo;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 添加订单信息
|
||||
*
|
||||
* @param key key
|
||||
* @param value 值
|
||||
*/
|
||||
@Override
|
||||
public void addAttr(String key, Object value) {
|
||||
attr.put(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取属性 这里可用做覆盖已设置的信息属性,订单信息在签名前进行覆盖。
|
||||
*
|
||||
* @return 属性
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> getAttrs() {
|
||||
return attr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取属性 这里可用做覆盖已设置的订单信息属性,订单信息在签名前进行覆盖。
|
||||
*
|
||||
* @param key 属性名
|
||||
* @return 属性
|
||||
*/
|
||||
@Override
|
||||
public Object getAttr(String key) {
|
||||
return attr.get(key);
|
||||
}
|
||||
|
||||
public String getTradeNo() {
|
||||
return tradeNo;
|
||||
}
|
||||
|
||||
public void setTradeNo(String tradeNo) {
|
||||
this.tradeNo = tradeNo;
|
||||
}
|
||||
|
||||
public String getOutTradeNo() {
|
||||
return outTradeNo;
|
||||
}
|
||||
|
||||
public void setOutTradeNo(String outTradeNo) {
|
||||
this.outTradeNo = outTradeNo;
|
||||
}
|
||||
|
||||
public Map<String, Object> getAttr() {
|
||||
return attr;
|
||||
}
|
||||
|
||||
public void setAttr(Map<String, Object> attr) {
|
||||
this.attr = attr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
package com.egzosn.pay.common.bean;
|
||||
|
||||
import com.egzosn.pay.common.util.str.StringUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.egzosn.pay.common.util.str.StringUtils;
|
||||
|
||||
/**
|
||||
* 支付订单信息
|
||||
@@ -16,7 +14,7 @@ import java.util.Map;
|
||||
* date 2016/10/19 22:34
|
||||
* </pre>
|
||||
*/
|
||||
public class PayOrder implements Order {
|
||||
public class PayOrder extends AssistOrder {
|
||||
/**
|
||||
* 商品名称
|
||||
*/
|
||||
@@ -33,14 +31,7 @@ public class PayOrder implements Order {
|
||||
* 价格
|
||||
*/
|
||||
private BigDecimal price;
|
||||
/**
|
||||
* 支付平台订单号,交易号
|
||||
*/
|
||||
private String tradeNo;
|
||||
/**
|
||||
* 商户订单号
|
||||
*/
|
||||
private String outTradeNo;
|
||||
|
||||
/**
|
||||
* 银行卡类型
|
||||
*/
|
||||
@@ -63,12 +54,13 @@ public class PayOrder implements Order {
|
||||
* 微信专用,,,,
|
||||
* WAP支付链接
|
||||
*/
|
||||
@Deprecated
|
||||
private String wapUrl;
|
||||
/**
|
||||
* 微信专用,,,,
|
||||
* WAP支付网页名称
|
||||
*/
|
||||
|
||||
@Deprecated
|
||||
private String wapName;
|
||||
/**
|
||||
* 用户唯一标识
|
||||
@@ -76,10 +68,7 @@ public class PayOrder implements Order {
|
||||
* 支付宝 buyer_id
|
||||
*/
|
||||
private String openid;
|
||||
/**
|
||||
* 交易类型
|
||||
*/
|
||||
private TransactionType transactionType;
|
||||
|
||||
/**
|
||||
* 支付币种
|
||||
*/
|
||||
@@ -89,11 +78,6 @@ public class PayOrder implements Order {
|
||||
*/
|
||||
private Date expirationTime;
|
||||
|
||||
/**
|
||||
* 订单附加信息,可用于预设未提供的参数,这里会覆盖以上所有的订单信息,
|
||||
*/
|
||||
private volatile Map<String, Object> attr;
|
||||
|
||||
|
||||
public PayOrder() {
|
||||
}
|
||||
@@ -107,8 +91,8 @@ public class PayOrder implements Order {
|
||||
this.subject = StringUtils.tryTrim(subject);
|
||||
this.body = StringUtils.tryTrim(body);
|
||||
this.price = price;
|
||||
this.outTradeNo = StringUtils.tryTrim(outTradeNo);
|
||||
this.transactionType = transactionType;
|
||||
setOutTradeNo(StringUtils.tryTrim(outTradeNo));
|
||||
setTransactionType(transactionType);
|
||||
}
|
||||
|
||||
|
||||
@@ -152,49 +136,6 @@ public class PayOrder implements Order {
|
||||
this.price = price;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付平台订单号,交易号
|
||||
*
|
||||
* @return 支付平台订单号, 交易号
|
||||
*/
|
||||
public String getTradeNo() {
|
||||
return tradeNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付平台订单号,交易号
|
||||
*
|
||||
* @param tradeNo 支付平台订单号,交易号
|
||||
*/
|
||||
public void setTradeNo(String tradeNo) {
|
||||
this.tradeNo = tradeNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商户订单号
|
||||
*
|
||||
* @return 商户订单号
|
||||
*/
|
||||
public String getOutTradeNo() {
|
||||
return outTradeNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置商户订单号
|
||||
*
|
||||
* @param outTradeNo 商户订单号
|
||||
*/
|
||||
public void setOutTradeNo(String outTradeNo) {
|
||||
this.outTradeNo = outTradeNo;
|
||||
}
|
||||
|
||||
public TransactionType getTransactionType() {
|
||||
return transactionType;
|
||||
}
|
||||
|
||||
public void setTransactionType(TransactionType transactionType) {
|
||||
this.transactionType = transactionType;
|
||||
}
|
||||
|
||||
public String getBankType() {
|
||||
return bankType;
|
||||
@@ -260,48 +201,4 @@ public class PayOrder implements Order {
|
||||
this.expirationTime = expirationTime;
|
||||
}
|
||||
|
||||
@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 值
|
||||
*/
|
||||
@Override
|
||||
public void addAttr(String key, Object value) {
|
||||
getAttrs().put(key, value);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "PayOrder{" +
|
||||
"subject='" + subject + '\'' +
|
||||
", body='" + body + '\'' +
|
||||
", price=" + price +
|
||||
", outTradeNo='" + outTradeNo + '\'' +
|
||||
", bankType='" + bankType + '\'' +
|
||||
", deviceInfo='" + deviceInfo + '\'' +
|
||||
", spbillCreateIp='" + spbillCreateIp + '\'' +
|
||||
", authCode='" + authCode + '\'' +
|
||||
", wapUrl='" + wapUrl + '\'' +
|
||||
", wapName='" + wapName + '\'' +
|
||||
", openid='" + openid + '\'' +
|
||||
", transactionType=" + transactionType +
|
||||
", curType=" + curType +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,6 @@ package com.egzosn.pay.common.bean;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 退款订单信息
|
||||
@@ -14,19 +12,11 @@ import java.util.Map;
|
||||
* date 2018/1/15 21:40
|
||||
* </pre>
|
||||
*/
|
||||
public class RefundOrder implements Order {
|
||||
public class RefundOrder extends AssistOrder {
|
||||
/**
|
||||
* 退款单号,每次进行退款的单号,此处唯一
|
||||
*/
|
||||
private String refundNo;
|
||||
/**
|
||||
* 支付平台订单号,交易号
|
||||
*/
|
||||
private String tradeNo;
|
||||
/**
|
||||
* 商户单号
|
||||
*/
|
||||
private String outTradeNo;
|
||||
/**
|
||||
* 退款金额
|
||||
*/
|
||||
@@ -54,10 +44,6 @@ public class RefundOrder implements Order {
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 订单附加信息,可用于预设未提供的参数,这里会覆盖以上所有的订单信息,
|
||||
*/
|
||||
private Map<String, Object> attr;
|
||||
|
||||
public String getRefundNo() {
|
||||
return refundNo;
|
||||
@@ -67,22 +53,6 @@ public class RefundOrder implements Order {
|
||||
this.refundNo = refundNo;
|
||||
}
|
||||
|
||||
public String getTradeNo() {
|
||||
return tradeNo;
|
||||
}
|
||||
|
||||
public void setTradeNo(String tradeNo) {
|
||||
this.tradeNo = tradeNo;
|
||||
}
|
||||
|
||||
public String getOutTradeNo() {
|
||||
return outTradeNo;
|
||||
}
|
||||
|
||||
public void setOutTradeNo(String outTradeNo) {
|
||||
this.outTradeNo = outTradeNo;
|
||||
}
|
||||
|
||||
public BigDecimal getRefundAmount() {
|
||||
return refundAmount;
|
||||
}
|
||||
@@ -136,47 +106,23 @@ public class RefundOrder implements Order {
|
||||
|
||||
public RefundOrder(String refundNo, String tradeNo, BigDecimal refundAmount) {
|
||||
this.refundNo = refundNo;
|
||||
this.tradeNo = tradeNo;
|
||||
setTradeNo(tradeNo);
|
||||
this.refundAmount = refundAmount;
|
||||
}
|
||||
|
||||
public RefundOrder(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount) {
|
||||
this.tradeNo = tradeNo;
|
||||
this.outTradeNo = outTradeNo;
|
||||
setTradeNo(tradeNo);
|
||||
setOutTradeNo(outTradeNo);
|
||||
this.refundAmount = refundAmount;
|
||||
this.totalAmount = totalAmount;
|
||||
}
|
||||
|
||||
public RefundOrder(String refundNo, String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount) {
|
||||
this.refundNo = refundNo;
|
||||
this.tradeNo = tradeNo;
|
||||
this.outTradeNo = outTradeNo;
|
||||
setTradeNo(tradeNo);
|
||||
setOutTradeNo(outTradeNo);
|
||||
this.refundAmount = refundAmount;
|
||||
this.totalAmount = totalAmount;
|
||||
}
|
||||
|
||||
@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 值
|
||||
*/
|
||||
@Override
|
||||
public void addAttr(String key, Object value) {
|
||||
getAttrs().put(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ import com.egzosn.pay.wx.v3.bean.combine.CombineSubOrder;
|
||||
import com.egzosn.pay.wx.v3.bean.order.H5Info;
|
||||
import com.egzosn.pay.wx.v3.bean.order.SceneInfo;
|
||||
import com.egzosn.pay.wx.v3.bean.order.SubOrder;
|
||||
import com.egzosn.pay.wx.v3.bean.response.WxRefundResult;
|
||||
|
||||
/**
|
||||
* 微信V3合单发起支付入口
|
||||
|
||||
@@ -25,7 +25,6 @@ import com.egzosn.pay.web.support.HttpRequestNoticeParams;
|
||||
import com.egzosn.pay.wx.v3.api.WxPayConfigStorage;
|
||||
import com.egzosn.pay.wx.v3.api.WxPayService;
|
||||
import com.egzosn.pay.wx.v3.bean.WxTransactionType;
|
||||
import com.egzosn.pay.wx.v3.bean.response.WxRefundResult;
|
||||
|
||||
/**
|
||||
* 微信V3发起支付入口
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.egzosn.pay.fuiou.api;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@@ -9,10 +8,11 @@ import java.util.Map;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.egzosn.pay.common.api.BasePayService;
|
||||
import com.egzosn.pay.common.bean.AssistOrder;
|
||||
import com.egzosn.pay.common.bean.BillType;
|
||||
import com.egzosn.pay.common.bean.CloseOrder;
|
||||
import com.egzosn.pay.common.bean.MethodType;
|
||||
import com.egzosn.pay.common.bean.NoticeParams;
|
||||
import com.egzosn.pay.common.bean.NoticeRequest;
|
||||
import com.egzosn.pay.common.bean.PayMessage;
|
||||
import com.egzosn.pay.common.bean.PayOrder;
|
||||
import com.egzosn.pay.common.bean.PayOutMessage;
|
||||
@@ -125,6 +125,7 @@ public class FuiouPayService extends BasePayService<FuiouPayConfigStorage> {
|
||||
|
||||
return verify(new NoticeParams(params));
|
||||
}
|
||||
|
||||
/**
|
||||
* 回调校验
|
||||
*
|
||||
@@ -143,10 +144,11 @@ public class FuiouPayService extends BasePayService<FuiouPayConfigStorage> {
|
||||
return (signVerify(params, (String) params.remove("md5")) && verifySource((String) params.get("order_id")));
|
||||
}
|
||||
catch (PayErrorException e) {
|
||||
LOG.error("", e);
|
||||
LOG.error("", e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 回调签名校验
|
||||
*
|
||||
@@ -254,15 +256,16 @@ public class FuiouPayService extends BasePayService<FuiouPayConfigStorage> {
|
||||
return SignUtils.valueOf(payConfigStorage.getSignType().toUpperCase()).createSign(content, "|" + payConfigStorage.getKeyPrivate(), characterEncoding);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 将请求参数或者请求流转化为 Map
|
||||
*
|
||||
* @param parameterMap 请求参数
|
||||
* @param is 请求流
|
||||
* @return 返回参数集合
|
||||
* @param request 通知请求
|
||||
* @return 获得回调的请求参数
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> getParameter2Map(Map<String, String[]> parameterMap, InputStream is) {
|
||||
public NoticeParams getNoticeParams(NoticeRequest request) {
|
||||
Map<String, String[]> parameterMap = request.getParameterMap();
|
||||
Map<String, Object> params = conversion(parameterMap, new LinkedHashMap<String, Object>(), "mchnt_cd");
|
||||
conversion(parameterMap, params, "order_id");
|
||||
conversion(parameterMap, params, "order_date");
|
||||
@@ -273,7 +276,7 @@ public class FuiouPayService extends BasePayService<FuiouPayConfigStorage> {
|
||||
conversion(parameterMap, params, "resv1");
|
||||
conversion(parameterMap, params, "fy_ssn");
|
||||
conversion(parameterMap, params, "md5");
|
||||
return params;
|
||||
return new NoticeParams(params);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -393,12 +396,23 @@ public class FuiouPayService extends BasePayService<FuiouPayConfigStorage> {
|
||||
@Override
|
||||
public Map<String, Object> query(String tradeNo, String outTradeNo) {
|
||||
|
||||
return query(new AssistOrder(tradeNo, outTradeNo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易查询接口
|
||||
*
|
||||
* @param assistOrder 查询条件
|
||||
* @return 返回查询回来的结果集,支付方原值返回
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> query(AssistOrder assistOrder) {
|
||||
|
||||
LinkedHashMap<String, Object> params = new LinkedHashMap<>();
|
||||
params.put("mchnt_cd", payConfigStorage.getPid());
|
||||
params.put("order_id", outTradeNo);
|
||||
params.put("order_id", assistOrder.getOutTradeNo());
|
||||
params.put("md5", createSign(SignTextUtils.parameters2Md5Str(params, "|"), payConfigStorage.getInputCharset()));
|
||||
JSONObject resultJson = getHttpRequestTemplate().postForObject(getReqUrl() + URL_FuiouSmpAQueryGate + "?" + UriVariables.getMapToParameters(params), null, JSONObject.class);
|
||||
return resultJson;
|
||||
return getHttpRequestTemplate().postForObject(getReqUrl() + URL_FuiouSmpAQueryGate + "?" + UriVariables.getMapToParameters(params), null, JSONObject.class);
|
||||
}
|
||||
|
||||
|
||||
@@ -411,16 +425,17 @@ public class FuiouPayService extends BasePayService<FuiouPayConfigStorage> {
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> close(String tradeNo, String outTradeNo) {
|
||||
return Collections.EMPTY_MAP;
|
||||
throw new UnsupportedOperationException("不支持该操作");
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易关闭接口
|
||||
*
|
||||
* @param closeOrder 关闭订单
|
||||
* @param assistOrder 关闭订单
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> close(CloseOrder closeOrder){
|
||||
public Map<String, Object> close(AssistOrder assistOrder) {
|
||||
throw new UnsupportedOperationException("不支持该操作");
|
||||
}
|
||||
|
||||
|
||||
@@ -15,9 +15,10 @@ import org.apache.http.message.BasicHeader;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.egzosn.pay.common.api.BasePayService;
|
||||
import com.egzosn.pay.common.bean.AssistOrder;
|
||||
import com.egzosn.pay.common.bean.BaseRefundResult;
|
||||
import com.egzosn.pay.common.bean.BillType;
|
||||
import com.egzosn.pay.common.bean.CloseOrder;
|
||||
|
||||
import com.egzosn.pay.common.bean.CurType;
|
||||
import com.egzosn.pay.common.bean.DefaultCurType;
|
||||
import com.egzosn.pay.common.bean.MethodType;
|
||||
@@ -294,6 +295,17 @@ public class PayoneerPayService extends BasePayService<PayoneerConfigStorage> im
|
||||
return secondaryInterface(tradeNo, outTradeNo, PayoneerTransactionType.CHARGE_STATUS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易查询接口
|
||||
*
|
||||
* @param assistOrder 查询条件
|
||||
* @return 返回查询回来的结果集,支付方原值返回
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> query(AssistOrder assistOrder) {
|
||||
return secondaryInterface(assistOrder.getTradeNo(), assistOrder.getOutTradeNo(), PayoneerTransactionType.CHARGE_STATUS);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 交易关闭接口
|
||||
@@ -309,12 +321,12 @@ public class PayoneerPayService extends BasePayService<PayoneerConfigStorage> im
|
||||
/**
|
||||
* 交易关闭接口
|
||||
*
|
||||
* @param closeOrder 关闭订单
|
||||
* @param assistOrder 关闭订单
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> close(CloseOrder closeOrder){
|
||||
return secondaryInterface(closeOrder.getTradeNo(), closeOrder.getOutTradeNo(), PayoneerTransactionType.CHARGE_CANCEL);
|
||||
public Map<String, Object> close(AssistOrder assistOrder){
|
||||
return secondaryInterface(assistOrder.getTradeNo(), assistOrder.getOutTradeNo(), PayoneerTransactionType.CHARGE_CANCEL);
|
||||
}
|
||||
/**
|
||||
* 交易交易撤销
|
||||
|
||||
@@ -19,9 +19,9 @@ import org.apache.http.message.BasicHeader;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.egzosn.pay.common.api.BasePayService;
|
||||
import com.egzosn.pay.common.bean.AssistOrder;
|
||||
import com.egzosn.pay.common.bean.BaseRefundResult;
|
||||
import com.egzosn.pay.common.bean.BillType;
|
||||
import com.egzosn.pay.common.bean.CloseOrder;
|
||||
import com.egzosn.pay.common.bean.CurType;
|
||||
import com.egzosn.pay.common.bean.DefaultCurType;
|
||||
import com.egzosn.pay.common.bean.MethodType;
|
||||
@@ -263,8 +263,19 @@ public class PayPalPayService extends BasePayService<PayPalConfigStorage> {
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> query(String tradeNo, String outTradeNo) {
|
||||
JSONObject resp = getHttpRequestTemplate().getForObject(getReqUrl(PayPalTransactionType.ORDERS), authHeader(), JSONObject.class, tradeNo);
|
||||
return resp;
|
||||
|
||||
return query(new AssistOrder(tradeNo, outTradeNo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易查询接口
|
||||
*
|
||||
* @param assistOrder 查询条件
|
||||
* @return 返回查询回来的结果集,支付方原值返回
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> query(AssistOrder assistOrder) {
|
||||
return getHttpRequestTemplate().getForObject(getReqUrl(PayPalTransactionType.ORDERS), authHeader(), JSONObject.class, assistOrder.getTradeNo());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -275,13 +286,14 @@ public class PayPalPayService extends BasePayService<PayPalConfigStorage> {
|
||||
/**
|
||||
* 交易关闭接口
|
||||
*
|
||||
* @param closeOrder 关闭订单
|
||||
* @param assistOrder 关闭订单
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> close(CloseOrder closeOrder){
|
||||
public Map<String, Object> close(AssistOrder assistOrder) {
|
||||
throw new UnsupportedOperationException("不支持该操作");
|
||||
}
|
||||
|
||||
/**
|
||||
* 申请退款接口
|
||||
*
|
||||
@@ -363,12 +375,10 @@ public class PayPalPayService extends BasePayService<PayPalConfigStorage> {
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> refundquery(RefundOrder refundOrder) {
|
||||
JSONObject resp = getHttpRequestTemplate().getForObject(getReqUrl(PayPalTransactionType.REFUND_QUERY), authHeader(), JSONObject.class, refundOrder.getTradeNo());
|
||||
return resp;
|
||||
return getHttpRequestTemplate().getForObject(getReqUrl(PayPalTransactionType.REFUND_QUERY), authHeader(), JSONObject.class, refundOrder.getTradeNo());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> downloadBill(Date billDate, BillType billType) {
|
||||
return Collections.emptyMap();
|
||||
|
||||
@@ -21,8 +21,9 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.egzosn.pay.common.api.BasePayService;
|
||||
import com.egzosn.pay.common.bean.AssistOrder;
|
||||
import com.egzosn.pay.common.bean.BillType;
|
||||
import com.egzosn.pay.common.bean.CloseOrder;
|
||||
|
||||
import com.egzosn.pay.common.bean.CurType;
|
||||
import com.egzosn.pay.common.bean.DefaultCurType;
|
||||
import com.egzosn.pay.common.bean.MethodType;
|
||||
@@ -351,6 +352,17 @@ public class PayPalPayService extends BasePayService<PayPalConfigStorage> implem
|
||||
return getHttpRequestTemplate().getForObject(getReqUrl(PayPalTransactionType.ORDERS_GET), authHeader(), JSONObject.class, tradeNo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易查询接口
|
||||
*
|
||||
* @param assistOrder 查询条件
|
||||
* @return 返回查询回来的结果集,支付方原值返回
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> query(AssistOrder assistOrder) {
|
||||
return getHttpRequestTemplate().getForObject(getReqUrl(PayPalTransactionType.ORDERS_GET), authHeader(), JSONObject.class, assistOrder.getTradeNo());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> close(String tradeNo, String outTradeNo) {
|
||||
return null;
|
||||
@@ -358,11 +370,11 @@ public class PayPalPayService extends BasePayService<PayPalConfigStorage> implem
|
||||
/**
|
||||
* 交易关闭接口
|
||||
*
|
||||
* @param closeOrder 关闭订单
|
||||
* @param assistOrder 关闭订单
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> close(CloseOrder closeOrder){
|
||||
public Map<String, Object> close(AssistOrder assistOrder){
|
||||
throw new UnsupportedOperationException("不支持该操作");
|
||||
}
|
||||
/**
|
||||
@@ -512,38 +524,7 @@ public class PayPalPayService extends BasePayService<PayPalConfigStorage> implem
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 将请求参数或者请求流转化为 Map
|
||||
*
|
||||
* @param parameterMap 请求参数
|
||||
* @param is 请求流
|
||||
* @return 获得回调的请求参数
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> getParameter2Map(Map<String, String[]> parameterMap, InputStream is) {
|
||||
|
||||
Map<String, Object> params = new LinkedHashMap<>();
|
||||
for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
|
||||
String name = entry.getKey();
|
||||
String[] values = entry.getValue();
|
||||
String valueStr = "";
|
||||
for (int i = 0, len = values.length; i < len; i++) {
|
||||
valueStr += (i == len - 1) ? values[i] : values[i] + ",";
|
||||
}
|
||||
if (StringUtils.isNotEmpty(payConfigStorage.getInputCharset()) && !valueStr.matches("\\w+")) {
|
||||
try {
|
||||
if (valueStr.equals(new String(valueStr.getBytes("iso8859-1"), "iso8859-1"))) {
|
||||
valueStr = new String(valueStr.getBytes("iso8859-1"), payConfigStorage.getInputCharset());
|
||||
}
|
||||
}
|
||||
catch (UnsupportedEncodingException e) {
|
||||
LOG.error("", e);
|
||||
}
|
||||
}
|
||||
params.put(name, valueStr);
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -26,8 +26,9 @@ import java.util.TreeMap;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.egzosn.pay.common.api.BasePayService;
|
||||
import com.egzosn.pay.common.bean.AssistOrder;
|
||||
import com.egzosn.pay.common.bean.BillType;
|
||||
import com.egzosn.pay.common.bean.CloseOrder;
|
||||
|
||||
import com.egzosn.pay.common.bean.MethodType;
|
||||
import com.egzosn.pay.common.bean.NoticeParams;
|
||||
import com.egzosn.pay.common.bean.PayMessage;
|
||||
@@ -224,6 +225,7 @@ public class UnionPayService extends BasePayService<UnionPayConfigStorage> {
|
||||
}
|
||||
return this.signVerify(result, (String) result.get(SDKConstants.param_signature));
|
||||
}
|
||||
|
||||
/**
|
||||
* 签名校验
|
||||
*
|
||||
@@ -581,25 +583,35 @@ public class UnionPayService extends BasePayService<UnionPayConfigStorage> {
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> query(String tradeNo, String outTradeNo) {
|
||||
return query(new AssistOrder(tradeNo, outTradeNo));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易查询接口
|
||||
*
|
||||
* @param assistOrder 查询条件
|
||||
* @return 返回查询回来的结果集,支付方原值返回
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> query(AssistOrder assistOrder) {
|
||||
Map<String, Object> params = this.getCommonParam();
|
||||
UnionTransactionType.QUERY.convertMap(params);
|
||||
params.put(SDKConstants.param_orderId, outTradeNo);
|
||||
params.put(SDKConstants.param_orderId, assistOrder.getOutTradeNo());
|
||||
this.setSign(params);
|
||||
String responseStr = getHttpRequestTemplate().postForObject(this.getSingleQueryUrl(), params, String.class);
|
||||
JSONObject response = UriVariables.getParametersToMap(responseStr);
|
||||
if (this.verify(response)) {
|
||||
if (this.verify(new NoticeParams(response))) {
|
||||
if (SDKConstants.OK_RESP_CODE.equals(response.getString(SDKConstants.param_respCode))) {
|
||||
String origRespCode = response.getString(SDKConstants.param_origRespCode);
|
||||
if ((SDKConstants.OK_RESP_CODE).equals(origRespCode)) {
|
||||
//交易成功,更新商户订单状态
|
||||
//TODO
|
||||
return response;
|
||||
}
|
||||
}
|
||||
throw new PayErrorException(new PayException(response.getString(SDKConstants.param_respCode), response.getString(SDKConstants.param_respMsg), response.toJSONString()));
|
||||
}
|
||||
throw new PayErrorException(new PayException("failure", "验证签名失败", response.toJSONString()));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -657,14 +669,15 @@ public class UnionPayService extends BasePayService<UnionPayConfigStorage> {
|
||||
public Map<String, Object> close(String tradeNo, String outTradeNo) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易关闭接口
|
||||
*
|
||||
* @param closeOrder 关闭订单
|
||||
* @param assistOrder 关闭订单
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> close(CloseOrder closeOrder){
|
||||
public Map<String, Object> close(AssistOrder assistOrder) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
|
||||
@@ -12,12 +12,14 @@ import java.util.concurrent.locks.Lock;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.egzosn.pay.common.api.BasePayService;
|
||||
import com.egzosn.pay.common.bean.AssistOrder;
|
||||
import com.egzosn.pay.common.bean.BaseRefundResult;
|
||||
import com.egzosn.pay.common.bean.BillType;
|
||||
import com.egzosn.pay.common.bean.CloseOrder;
|
||||
|
||||
import com.egzosn.pay.common.bean.CurType;
|
||||
import com.egzosn.pay.common.bean.MethodType;
|
||||
import com.egzosn.pay.common.bean.NoticeParams;
|
||||
import com.egzosn.pay.common.bean.NoticeRequest;
|
||||
import com.egzosn.pay.common.bean.PayMessage;
|
||||
import com.egzosn.pay.common.bean.PayOrder;
|
||||
import com.egzosn.pay.common.bean.PayOutMessage;
|
||||
@@ -298,15 +300,17 @@ public class WxYouDianPayService extends BasePayService<WxYouDianPayConfigStorag
|
||||
return SignUtils.valueOf(payConfigStorage.getSignType().toUpperCase()).createSign(content, "&source=http://life.51youdian.com", characterEncoding);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 将请求参数或者请求流转化为 Map
|
||||
*
|
||||
* @param parameterMap 请求参数
|
||||
* @param is 请求流
|
||||
* @param request 通知请求
|
||||
* @return 获得回调的请求参数
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> getParameter2Map(Map<String, String[]> parameterMap, InputStream is) {
|
||||
public NoticeParams getNoticeParams(NoticeRequest request) {
|
||||
final Map<String, String[]> parameterMap = request.getParameterMap();
|
||||
Map<String, Object> params = new TreeMap<String, Object>();
|
||||
for (Iterator iter = parameterMap.keySet().iterator(); iter.hasNext(); ) {
|
||||
String name = (String) iter.next();
|
||||
@@ -318,7 +322,7 @@ public class WxYouDianPayService extends BasePayService<WxYouDianPayConfigStorag
|
||||
params.put(name, valueStr.trim());
|
||||
}
|
||||
|
||||
return params;
|
||||
return new NoticeParams(params);
|
||||
|
||||
}
|
||||
|
||||
@@ -402,15 +406,26 @@ public class WxYouDianPayService extends BasePayService<WxYouDianPayConfigStorag
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> query(String tradeNo, String outTradeNo) {
|
||||
return query(new AssistOrder(tradeNo, outTradeNo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易查询接口
|
||||
*
|
||||
* @param assistOrder 查询条件
|
||||
* @return 返回查询回来的结果集,支付方原值返回
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> query(AssistOrder assistOrder) {
|
||||
String apbNonce = SignTextUtils.randomStr();
|
||||
TreeMap<String, String> data = new TreeMap<>();
|
||||
data.put("access_token", payConfigStorage.getAccessToken());
|
||||
|
||||
if (StringUtils.isEmpty(tradeNo)) {
|
||||
data.put("order_sn", outTradeNo);
|
||||
if (StringUtils.isEmpty(assistOrder.getTradeNo())) {
|
||||
data.put("order_sn", assistOrder.getOutTradeNo());
|
||||
}
|
||||
else {
|
||||
data.put("order_sn", tradeNo);
|
||||
data.put("order_sn", assistOrder.getTradeNo());
|
||||
}
|
||||
String sign = createSign(SignTextUtils.parameterText(data, "") + apbNonce, payConfigStorage.getInputCharset());
|
||||
String queryParam = SignTextUtils.parameterText(data) + "&apb_nonce=" + apbNonce + "&sign=" + sign;
|
||||
@@ -426,11 +441,11 @@ public class WxYouDianPayService extends BasePayService<WxYouDianPayConfigStorag
|
||||
/**
|
||||
* 交易关闭接口
|
||||
*
|
||||
* @param closeOrder 关闭订单
|
||||
* @param assistOrder 关闭订单
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> close(CloseOrder closeOrder){
|
||||
public Map<String, Object> close(AssistOrder assistOrder){
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,6 @@ public interface WxConst {
|
||||
String NONCE_STR = "nonce_str";
|
||||
String OUT_TRADE_NO = "out_trade_no";
|
||||
String GZIP = "GZIP";
|
||||
|
||||
String BILL_DATE = "bill_date";
|
||||
|
||||
}
|
||||
|
||||
@@ -38,10 +38,12 @@ import static com.egzosn.pay.wx.bean.WxTransferType.TRANSFERS;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.egzosn.pay.common.api.BasePayService;
|
||||
import com.egzosn.pay.common.bean.AssistOrder;
|
||||
import com.egzosn.pay.common.bean.BillType;
|
||||
import com.egzosn.pay.common.bean.CloseOrder;
|
||||
|
||||
import com.egzosn.pay.common.bean.MethodType;
|
||||
import com.egzosn.pay.common.bean.NoticeParams;
|
||||
import com.egzosn.pay.common.bean.NoticeRequest;
|
||||
import com.egzosn.pay.common.bean.Order;
|
||||
import com.egzosn.pay.common.bean.OrderParaStructure;
|
||||
import com.egzosn.pay.common.bean.PayMessage;
|
||||
@@ -389,25 +391,25 @@ public class WxPayService extends BasePayService<WxPayConfigStorage> implements
|
||||
return signType.createSign(content + "&key=" + (signType == SignUtils.MD5 ? "" : keyPrivate), keyPrivate, characterEncoding).toUpperCase();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 将请求参数或者请求流转化为 Map
|
||||
*
|
||||
* @param parameterMap 请求参数
|
||||
* @param is 请求流
|
||||
* @param request 通知请求
|
||||
* @return 获得回调的请求参数
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> getParameter2Map(Map<String, String[]> parameterMap, InputStream is) {
|
||||
public NoticeParams getNoticeParams(NoticeRequest request) {
|
||||
|
||||
TreeMap<String, Object> map = new TreeMap<String, Object>();
|
||||
try {
|
||||
return XML.inputStream2Map(is, map);
|
||||
return new NoticeParams(XML.inputStream2Map(request.getInputStream(), map));
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new PayErrorException(new PayException("IOException", e.getMessage()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取输出消息,用户返回给支付端
|
||||
*
|
||||
@@ -502,6 +504,17 @@ public class WxPayService extends BasePayService<WxPayConfigStorage> implements
|
||||
return secondaryInterface(transactionId, outTradeNo, WxTransactionType.QUERY);
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易查询接口
|
||||
*
|
||||
* @param assistOrder 查询条件
|
||||
* @return 返回查询回来的结果集,支付方原值返回
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> query(AssistOrder assistOrder) {
|
||||
return secondaryInterface(assistOrder.getTradeNo(), assistOrder.getOutTradeNo(), WxTransactionType.QUERY);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 交易关闭接口
|
||||
@@ -518,12 +531,12 @@ public class WxPayService extends BasePayService<WxPayConfigStorage> implements
|
||||
/**
|
||||
* 交易关闭接口
|
||||
*
|
||||
* @param closeOrder 关闭订单
|
||||
* @param assistOrder 关闭订单
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> close(CloseOrder closeOrder){
|
||||
return secondaryInterface(closeOrder.getTradeNo(), closeOrder.getOutTradeNo(), WxTransactionType.CLOSE);
|
||||
public Map<String, Object> close(AssistOrder assistOrder){
|
||||
return secondaryInterface(assistOrder.getTradeNo(), assistOrder.getOutTradeNo(), WxTransactionType.CLOSE);
|
||||
}
|
||||
|
||||
|
||||
@@ -626,7 +639,7 @@ public class WxPayService extends BasePayService<WxPayConfigStorage> implements
|
||||
Map<String, Object> parameters = getPublicParameters();
|
||||
parameters.put("bill_type", billType);
|
||||
//目前只支持日账单
|
||||
parameters.put("bill_date", DateUtils.formatDate(billDate, DateUtils.YYYYMMDD));
|
||||
parameters.put(WxConst.BILL_DATE, DateUtils.formatDate(billDate, DateUtils.YYYYMMDD));
|
||||
String fileType = billType.getFileType();
|
||||
OrderParaStructure.loadParameters(parameters, "tar_type", fileType);
|
||||
//设置签名
|
||||
@@ -753,7 +766,7 @@ public class WxPayService extends BasePayService<WxPayConfigStorage> implements
|
||||
Map<String, Object> parameters = getPublicParameters();
|
||||
parameters.put("bill_type", billType);
|
||||
//目前只支持日账单
|
||||
parameters.put("bill_date", DateUtils.formatDate(billDate, DateUtils.YYYYMMDD));
|
||||
parameters.put(WxConst.BILL_DATE, DateUtils.formatDate(billDate, DateUtils.YYYYMMDD));
|
||||
if (tarType) {
|
||||
parameters.put("tar_type", "GZIP");
|
||||
}
|
||||
|
||||
@@ -8,9 +8,10 @@ import java.util.TreeMap;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.egzosn.pay.common.api.BasePayService;
|
||||
import com.egzosn.pay.common.bean.AssistOrder;
|
||||
import com.egzosn.pay.common.bean.BaseRefundResult;
|
||||
import com.egzosn.pay.common.bean.BillType;
|
||||
import com.egzosn.pay.common.bean.CloseOrder;
|
||||
|
||||
import com.egzosn.pay.common.bean.CurType;
|
||||
import com.egzosn.pay.common.bean.DefaultCurType;
|
||||
import com.egzosn.pay.common.bean.MethodType;
|
||||
@@ -287,6 +288,17 @@ public class YiJiPayService extends BasePayService<YiJiPayConfigStorage> {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易查询接口
|
||||
*
|
||||
* @param assistOrder 查询条件
|
||||
* @return 返回查询回来的结果集,支付方原值返回
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> query(AssistOrder assistOrder) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 交易关闭接口
|
||||
@@ -302,11 +314,11 @@ public class YiJiPayService extends BasePayService<YiJiPayConfigStorage> {
|
||||
/**
|
||||
* 交易关闭接口
|
||||
*
|
||||
* @param closeOrder 关闭订单
|
||||
* @param assistOrder 关闭订单
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> close(CloseOrder closeOrder){
|
||||
public Map<String, Object> close(AssistOrder assistOrder){
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user