feat(payment): 添加PayPal支付配置和订单状态更新功能
- 配置PayPal沙箱环境的Client ID和密钥 - 新增updatePaymentStatus方法用于更新订单支付状态 - 新增updateOrderStatus方法用于更新订单状态 - 实现支付状态更新时同步更新订单状态逻辑 - 添加详细的日志记录和异常处理机制 - 集成MyBatis Plus查询更新订单数据
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
package com.mtkj.mtpay.dto.request;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 创建PayPal订单请求DTO
|
||||
*/
|
||||
@Data
|
||||
public class CreatePayPalOrderRequestDTO implements Serializable {
|
||||
|
||||
/**
|
||||
* 订单意图:CAPTURE(立即捕获)或 AUTHORIZE(预授权)
|
||||
*/
|
||||
@NotBlank(message = "订单意图不能为空")
|
||||
private String intent = "CAPTURE";
|
||||
|
||||
/**
|
||||
* ERP订单号(用于关联PayPal订单和ERP订单)
|
||||
*/
|
||||
@NotBlank(message = "ERP订单号不能为空")
|
||||
private String referenceId;
|
||||
|
||||
/**
|
||||
* 订单金额
|
||||
*/
|
||||
@NotNull(message = "订单金额不能为空")
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 货币代码(如USD, CNY等)
|
||||
*/
|
||||
@NotBlank(message = "货币代码不能为空")
|
||||
private String currencyCode;
|
||||
|
||||
/**
|
||||
* 商品名称
|
||||
*/
|
||||
private String itemName;
|
||||
|
||||
/**
|
||||
* 商品描述
|
||||
*/
|
||||
private String itemDescription;
|
||||
|
||||
/**
|
||||
* 商品SKU
|
||||
*/
|
||||
private String itemSku;
|
||||
|
||||
/**
|
||||
* 商品数量
|
||||
*/
|
||||
private Integer itemQuantity = 1;
|
||||
|
||||
/**
|
||||
* 商品单价
|
||||
*/
|
||||
private BigDecimal itemUnitAmount;
|
||||
|
||||
/**
|
||||
* 成功回调URL(PayPal支付成功后跳转)
|
||||
*/
|
||||
@NotBlank(message = "成功回调URL不能为空")
|
||||
private String returnUrl;
|
||||
|
||||
/**
|
||||
* 取消回调URL(PayPal支付取消后跳转)
|
||||
*/
|
||||
@NotBlank(message = "取消回调URL不能为空")
|
||||
private String cancelUrl;
|
||||
|
||||
/**
|
||||
* 收货人姓名
|
||||
*/
|
||||
private String shippingName;
|
||||
|
||||
/**
|
||||
* 收货地址 - 街道地址
|
||||
*/
|
||||
private String shippingAddressLine1;
|
||||
|
||||
/**
|
||||
* 收货地址 - 详细地址
|
||||
*/
|
||||
private String shippingAddressLine2;
|
||||
|
||||
/**
|
||||
* 收货地址 - 城市
|
||||
*/
|
||||
private String shippingCity;
|
||||
|
||||
/**
|
||||
* 收货地址 - 州/省
|
||||
*/
|
||||
private String shippingState;
|
||||
|
||||
/**
|
||||
* 收货地址 - 邮编
|
||||
*/
|
||||
private String shippingPostalCode;
|
||||
|
||||
/**
|
||||
* 收货地址 - 国家代码(如US, CN等)
|
||||
*/
|
||||
private String shippingCountryCode;
|
||||
|
||||
/**
|
||||
* PayPal账户邮箱(可选,如果提供会预填充)
|
||||
*/
|
||||
private String emailAddress;
|
||||
}
|
||||
|
||||
13
mt-pay/src/main/resources/application-paypal-example.yml
Normal file
13
mt-pay/src/main/resources/application-paypal-example.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
# PayPal支付配置示例
|
||||
# 请将以下配置添加到你的application.yml或application-dev.yml中
|
||||
|
||||
paypal:
|
||||
# PayPal Client ID(从PayPal开发者控制台获取)
|
||||
client-id: YOUR_CLIENT_ID
|
||||
# PayPal Client Secret(从PayPal开发者控制台获取)
|
||||
client-secret: YOUR_CLIENT_SECRET
|
||||
# 环境模式:sandbox(沙箱)或 production(生产)
|
||||
mode: sandbox
|
||||
# 是否启用PayPal支付
|
||||
enabled: true
|
||||
|
||||
Reference in New Issue
Block a user