补充Adapay相关内容

This commit is contained in:
Hawking 2023-05-29 23:26:27 +08:00
parent 842793a74e
commit 82a9d1cdbc
5 changed files with 191 additions and 11 deletions

View File

@ -0,0 +1,68 @@
package com.ghy.common.adapay.model;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
/**
* 支付确认对象
* https://docs.adapay.tech/api/trade.html#payment-confirm-object
*/
@Data
public class PaymentConfirm {
private String id;
@JSONField(name = "order_no")
private String orderNo;
/**
* 创建时的时间戳(Adapay)
*/
@JSONField(name = "created_time")
private String createdTime;
/**
* 确认金额
*/
@JSONField(name = "confirm_amt")
private String confirmAmt;
/**
* 原支付对象已确认金额
*/
@JSONField(name = "confirmed_amt")
private String confirmedAmt;
/**
* 原支付对象已撤销金额包括已撤销完成金额和撤销处理中的金额
*/
@JSONField(name = "reserved_amt")
private String reservedAmt;
/**
* 当前支付确认对象已退款金额包括已退款完成金额和退款处理中的金额
*/
@JSONField(name = "refunded_amt")
private String refundedAmt;
/**
* 支付确认手续费金额
*/
@JSONField(name = "fee_amt")
private String feeAmt;
@JSONField(name = "fee_mode")
private String feeMode;
@JSONField(name = "description")
private String description;
@JSONField(name = "prod_mode")
private String prodMode;
@JSONField(name = "app_id")
private String appId;
@JSONField(name = "status")
private String status;
}

View File

@ -1,27 +1,76 @@
package com.ghy.common.adapay.model; package com.ghy.common.adapay.model;
import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONField;
import com.huifu.adapay.model.Payment;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Data @Data
@EqualsAndHashCode(callSuper = true) public class PaymentDTO {
public class PaymentDTO extends Payment {
/** /**
* 用户账单上的商户订单号 * Adapay 生成的支付对象 id
*/ */
@JSONField(name = "id")
private String id;
/**
* 请求订单号只能为英文数字或者下划线的一种或多种组合保证在app_id下唯一
*/
@JSONField(name = "order_no")
private String orderNo;
@JSONField(name = "prod_mode")
private String prodMode;
/**
* 支付模式delay: 延时分账模式值为空时表示实时分账
*/
@JSONField(name = "pay_mode")
private String payMode;
@JSONField(name = "app_id")
private String appId;
@JSONField(name = "pay_channel")
private String payChannel;
@JSONField(name = "party_order_id") @JSONField(name = "party_order_id")
private String partyOrderId; private String partyOrderId;
@JSONField(name = "query_url")
private String queryUrl;
@JSONField(name = "reason")
private String reason;
/** /**
* 当前交易状态 * 当前交易状态
* pending 交易处理中
* succeeded 交易成功
* failed 交易失败
*/ */
@JSONField(name = "status")
private String status; private String status;
/**
* 若为微信渠道则为微信openid若为支付宝渠道则为buyerid
*/
@JSONField(name = "open_id")
private String openId;
/**
* 交易金额
*/
@JSONField(name = "pay_amt")
private String payAmt;
/**
* 优惠金额
*/
@JSONField(name = "discount_amt")
private String discountAmt;
/** /**
* 手续费 * 手续费
*/ */
@ -29,7 +78,42 @@ public class PaymentDTO extends Payment {
private String feeAmt; private String feeAmt;
/** /**
* 支付时间 * 若为延时分账时已发起支付确认的总金额
*/
@JSONField(name = "confirmed_amt")
private String confirmedAmt;
/**
* 若为延时分账时已发起支付撤销的总金额
*/
@JSONField(name = "reserved_amt")
private String reservedAmt;
/**
* 若为实时分账时已发起退款的总金额
*/
@JSONField(name = "refunded_amt")
private String refundedAmt;
/**
* 创建时间(Adapay)
*/
@JSONField(name = "created_time")
private String createdTime;
/**
* 用户支付完成时间(Adapay)
*/
@JSONField(name = "end_time")
private String endTime;
/**
* 用户支付完成时间(我方生成)
*/ */
private LocalDateTime payTime; private LocalDateTime payTime;
/**
* 更新时间(我方生成/更新)
*/
private LocalDateTime updateTime;
} }

View File

@ -0,0 +1,28 @@
package com.ghy.payment.domain;
import lombok.Data;
/**
* 支付单关联表
*/
@Data
public class PaymentRelation {
/**
* 支付ID
*/
private String paymentId;
/**
* 关联ID
*/
private Long relationId;
/**
* 关联ID类型
* financial_master: 主财务单
* financial_change: 加价单
* order_add: 订单追加单
*/
private String relationIdType;
}

View File

@ -1,7 +1,6 @@
package com.ghy.payment.mapper; package com.ghy.payment.mapper;
import com.ghy.common.adapay.model.PaymentDTO; import com.ghy.common.adapay.model.PaymentDTO;
import com.huifu.adapay.model.Payment;
/** /**
* 支付记录 Mapper * 支付记录 Mapper
@ -10,9 +9,9 @@ import com.huifu.adapay.model.Payment;
*/ */
public interface PaymentMapper { public interface PaymentMapper {
int insertPayment(Payment payment); int insertPayment(PaymentDTO payment);
int updatePayment(Payment payment); int updatePayment(PaymentDTO payment);
PaymentDTO selectById(String id); PaymentDTO selectById(String id);
} }

View File

@ -8,6 +8,7 @@ import com.ghy.common.adapay.model.*;
import com.ghy.common.enums.RefundType; import com.ghy.common.enums.RefundType;
import com.huifu.adapay.core.exception.BaseAdaPayException; import com.huifu.adapay.core.exception.BaseAdaPayException;
import com.huifu.adapay.model.*; import com.huifu.adapay.model.*;
import com.huifu.adapay.model.PaymentConfirm;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -91,9 +92,9 @@ public class AdapayService {
* *
* @param deptId [必填]商户ID * @param deptId [必填]商户ID
* @param paymentId [必填] String(64) Adapay生成的支付对象id * @param paymentId [必填] String(64) Adapay生成的支付对象id
* @return 支付对象 * @return 支付对象 https://docs.adapay.tech/api/trade.html#id21
*/ */
public JSONObject paymentList(@NotNull Long deptId, @NotNull String paymentId) { public JSONObject paymentList(@NotNull Long deptId, String paymentId) {
try { try {
// 获取商户的appId // 获取商户的appId
String appId = AdapayConfig.getAppId(deptId); String appId = AdapayConfig.getAppId(deptId);