mirror of
https://gitee.com/egzosn/pay-java-parent.git
synced 2026-05-31 21:09:40 +08:00
退款结果集统一处理
This commit is contained in:
@@ -17,6 +17,7 @@ import com.egzosn.pay.common.util.sign.encrypt.RSA2;
|
||||
import com.egzosn.pay.common.util.str.StringUtils;
|
||||
import com.egzosn.pay.union.bean.SDKConstants;
|
||||
import com.egzosn.pay.union.bean.UnionPayMessage;
|
||||
import com.egzosn.pay.union.bean.UnionRefundResult;
|
||||
import com.egzosn.pay.union.bean.UnionTransactionType;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
@@ -591,7 +592,7 @@ public class UnionPayService extends BasePayService<UnionPayConfigStorage> {
|
||||
* @param type UnionTransactionType.REFUND 或者UnionTransactionType.CONSUME_UNDO
|
||||
* @return 返回支付方申请退款后的结果
|
||||
*/
|
||||
public Map<String, Object> unionRefundOrConsumeUndo(RefundOrder refundOrder, UnionTransactionType type) {
|
||||
public UnionRefundResult unionRefundOrConsumeUndo(RefundOrder refundOrder, UnionTransactionType type) {
|
||||
Map<String, Object> params = this.getCommonParam();
|
||||
type.convertMap(params);
|
||||
params.put(SDKConstants.param_orderId, refundOrder.getRefundNo());
|
||||
@@ -601,12 +602,11 @@ public class UnionPayService extends BasePayService<UnionPayConfigStorage> {
|
||||
this.setSign(params);
|
||||
String responseStr = getHttpRequestTemplate().postForObject(this.getBackTransUrl(), params, String.class);
|
||||
JSONObject response = UriVariables.getParametersToMap(responseStr);
|
||||
|
||||
if (this.verify(response)) {
|
||||
if (SDKConstants.OK_RESP_CODE.equals(response.getString(SDKConstants.param_respCode))) {
|
||||
// String origRespCode = response.getString(SDKConstants.param_origRespCode);
|
||||
//交易成功,更新商户订单状态
|
||||
//TODO
|
||||
return response;
|
||||
final UnionRefundResult refundResult = UnionRefundResult.create(response);
|
||||
if (SDKConstants.OK_RESP_CODE.equals(refundResult.getRespCode())) {
|
||||
return refundResult;
|
||||
|
||||
}
|
||||
throw new PayErrorException(new PayException(response.getString(SDKConstants.param_respCode), response.getString(SDKConstants.param_respMsg), response.toJSONString()));
|
||||
@@ -628,7 +628,7 @@ public class UnionPayService extends BasePayService<UnionPayConfigStorage> {
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> refund(RefundOrder refundOrder) {
|
||||
public UnionRefundResult refund(RefundOrder refundOrder) {
|
||||
return unionRefundOrConsumeUndo(refundOrder, UnionTransactionType.REFUND);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,326 @@
|
||||
package com.egzosn.pay.union.bean;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Map;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.egzosn.pay.common.bean.BaseRefundResult;
|
||||
import com.egzosn.pay.common.bean.CurType;
|
||||
|
||||
/**
|
||||
* 银联退款结果
|
||||
*
|
||||
* @author Egan
|
||||
* email egzosn@gmail.com
|
||||
* date 2020/8/16 22:15
|
||||
*/
|
||||
public class UnionRefundResult extends BaseRefundResult {
|
||||
|
||||
/**
|
||||
* 二维码数据
|
||||
*/
|
||||
private String qrCode;
|
||||
/**
|
||||
* 签名
|
||||
*/
|
||||
private String signature;
|
||||
/**
|
||||
* 签名方法
|
||||
*/
|
||||
private String signMethod;
|
||||
/**
|
||||
* 应答码
|
||||
*/
|
||||
private String respCode;
|
||||
/**
|
||||
* 应答信息
|
||||
*/
|
||||
private String respMsg;
|
||||
/**
|
||||
* 签名公钥证书
|
||||
*/
|
||||
private String signPubKeyCert;
|
||||
/**
|
||||
* 版本号
|
||||
*/
|
||||
private String version;
|
||||
/**
|
||||
* 编码方式
|
||||
*/
|
||||
private String encoding;
|
||||
/**
|
||||
* 产品类型
|
||||
*/
|
||||
private String bizType;
|
||||
/**
|
||||
* 订单发送时间
|
||||
*/
|
||||
private String txnTime;
|
||||
|
||||
/**
|
||||
* 交易类型
|
||||
*/
|
||||
private String txnType;
|
||||
/**
|
||||
* 交易子类
|
||||
*/
|
||||
private String txnSubType;
|
||||
/**
|
||||
* 接入类型
|
||||
* 0:商户直连接入
|
||||
* 1:收单机构接入
|
||||
* 2:平台商户接入
|
||||
*/
|
||||
private String accessType;
|
||||
/**
|
||||
* 请求方保留域
|
||||
*/
|
||||
private String reqReserved;
|
||||
/**
|
||||
* 商户代码
|
||||
*/
|
||||
private String merId;
|
||||
/**
|
||||
* 商户订单号
|
||||
*/
|
||||
private String orderId;
|
||||
/**
|
||||
* 保留域
|
||||
*/
|
||||
private String reserved;
|
||||
|
||||
|
||||
/**
|
||||
* 获取退款请求结果状态码
|
||||
*
|
||||
* @return 状态码
|
||||
*/
|
||||
@Override
|
||||
public String getCode() {
|
||||
return respCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取退款请求结果状态提示信息
|
||||
*
|
||||
* @return 提示信息
|
||||
*/
|
||||
@Override
|
||||
public String getMsg() {
|
||||
return respMsg;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回业务结果状态码
|
||||
*
|
||||
* @return 业务结果状态码
|
||||
*/
|
||||
@Override
|
||||
public String getResultCode() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回业务结果状态提示信息
|
||||
*
|
||||
* @return 业务结果状态提示信息
|
||||
*/
|
||||
@Override
|
||||
public String getResultMsg() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 退款金额
|
||||
*
|
||||
* @return 退款金额
|
||||
*/
|
||||
@Override
|
||||
public BigDecimal getRefundFee() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 退款币种信息
|
||||
*
|
||||
* @return 币种信息
|
||||
*/
|
||||
@Override
|
||||
public CurType getRefundCurrency() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付平台交易号
|
||||
* 发起支付时 支付平台(如支付宝)返回的交易订单号
|
||||
*
|
||||
* @return 支付平台交易号
|
||||
*/
|
||||
@Override
|
||||
public String getTradeNo() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付订单号
|
||||
* 发起支付时,用户系统的订单号
|
||||
*
|
||||
* @return 支付订单号
|
||||
*/
|
||||
@Override
|
||||
public String getOutTradeNo() {
|
||||
return orderId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 商户退款单号
|
||||
*
|
||||
* @return 商户退款单号
|
||||
*/
|
||||
@Override
|
||||
public String getRefundNo() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getQrCode() {
|
||||
return qrCode;
|
||||
}
|
||||
|
||||
public void setQrCode(String qrCode) {
|
||||
this.qrCode = qrCode;
|
||||
}
|
||||
|
||||
public String getSignature() {
|
||||
return signature;
|
||||
}
|
||||
|
||||
public void setSignature(String signature) {
|
||||
this.signature = signature;
|
||||
}
|
||||
|
||||
public String getSignMethod() {
|
||||
return signMethod;
|
||||
}
|
||||
|
||||
public void setSignMethod(String signMethod) {
|
||||
this.signMethod = signMethod;
|
||||
}
|
||||
|
||||
public String getRespCode() {
|
||||
return respCode;
|
||||
}
|
||||
|
||||
public void setRespCode(String respCode) {
|
||||
this.respCode = respCode;
|
||||
}
|
||||
|
||||
public String getRespMsg() {
|
||||
return respMsg;
|
||||
}
|
||||
|
||||
public void setRespMsg(String respMsg) {
|
||||
this.respMsg = respMsg;
|
||||
}
|
||||
|
||||
public String getSignPubKeyCert() {
|
||||
return signPubKeyCert;
|
||||
}
|
||||
|
||||
public void setSignPubKeyCert(String signPubKeyCert) {
|
||||
this.signPubKeyCert = signPubKeyCert;
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setVersion(String version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
public String getEncoding() {
|
||||
return encoding;
|
||||
}
|
||||
|
||||
public void setEncoding(String encoding) {
|
||||
this.encoding = encoding;
|
||||
}
|
||||
|
||||
public String getBizType() {
|
||||
return bizType;
|
||||
}
|
||||
|
||||
public void setBizType(String bizType) {
|
||||
this.bizType = bizType;
|
||||
}
|
||||
|
||||
public String getTxnTime() {
|
||||
return txnTime;
|
||||
}
|
||||
|
||||
public void setTxnTime(String txnTime) {
|
||||
this.txnTime = txnTime;
|
||||
}
|
||||
|
||||
public String getTxnType() {
|
||||
return txnType;
|
||||
}
|
||||
|
||||
public void setTxnType(String txnType) {
|
||||
this.txnType = txnType;
|
||||
}
|
||||
|
||||
public String getTxnSubType() {
|
||||
return txnSubType;
|
||||
}
|
||||
|
||||
public void setTxnSubType(String txnSubType) {
|
||||
this.txnSubType = txnSubType;
|
||||
}
|
||||
|
||||
public String getAccessType() {
|
||||
return accessType;
|
||||
}
|
||||
|
||||
public void setAccessType(String accessType) {
|
||||
this.accessType = accessType;
|
||||
}
|
||||
|
||||
public String getReqReserved() {
|
||||
return reqReserved;
|
||||
}
|
||||
|
||||
public void setReqReserved(String reqReserved) {
|
||||
this.reqReserved = reqReserved;
|
||||
}
|
||||
|
||||
public String getMerId() {
|
||||
return merId;
|
||||
}
|
||||
|
||||
public void setMerId(String merId) {
|
||||
this.merId = merId;
|
||||
}
|
||||
|
||||
public String getOrderId() {
|
||||
return orderId;
|
||||
}
|
||||
|
||||
public void setOrderId(String orderId) {
|
||||
this.orderId = orderId;
|
||||
}
|
||||
|
||||
public String getReserved() {
|
||||
return reserved;
|
||||
}
|
||||
|
||||
public void setReserved(String reserved) {
|
||||
this.reserved = reserved;
|
||||
}
|
||||
|
||||
public static final UnionRefundResult create(Map<String, Object> result){
|
||||
UnionRefundResult refundResult = new JSONObject(result).toJavaObject(UnionRefundResult.class);
|
||||
refundResult.setAttrs(result);
|
||||
return refundResult;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user