feat:支付宝分账
This commit is contained in:
1 parent
388ef914fc
commit
14c2acb6c2
62 files changed
+4095
-1403
No files matched your search
+59
@@ -0,0 +1,59 @@
|
||||
package com.bsd.pjcloud.thirdparty.dto.pay;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 商户分账关系管理参数。
|
||||
*
|
||||
* <p>租户和支付平台由 thirdparty 根据 {@code paySettingId} 重新读取;二级商户、
|
||||
* 支付宝平台账号业务标识及授权上下文属于关系事实,由管理端在该子资源中维护;
|
||||
* SDK 私钥和支付宝公钥仍由 thirdparty 平台统一配置持有。</p>
|
||||
*/
|
||||
@Data
|
||||
public class ThirdMchFzRelationSaveDto {
|
||||
/** 已有关系主键;新增时为空。 */
|
||||
private Long id;
|
||||
|
||||
/** 关系所属商户主键,必须与支付配置所属商户一致。 */
|
||||
@NotNull(message = "商户不能为空")
|
||||
private Long mchId;
|
||||
|
||||
/** 关系使用的支付配置主键,决定渠道、二级商户和平台账号。 */
|
||||
@NotNull(message = "支付配置不能为空")
|
||||
private Long paySettingId;
|
||||
|
||||
/** 微信 sub_mchid 或支付宝直付通 smid/ip_role_id;编辑后变化时服务端创建新关系版本。 */
|
||||
@Size(max = 64, message = "二级商户标识不能超过64个字符")
|
||||
private String channelSubMchId;
|
||||
|
||||
/** 支付宝平台账号业务标识,仅用于关系审计;空字符串表示使用平台默认标识。 */
|
||||
@Size(max = 64, message = "平台账号键不能超过64个字符")
|
||||
private String accountKey;
|
||||
|
||||
/** 支付宝第三方代调用授权令牌;为空表示新增时不使用、编辑时保留原值。 */
|
||||
@Size(max = 512, message = "支付宝授权令牌不能超过512个字符")
|
||||
private String appAuthToken;
|
||||
|
||||
/** 渠道接收方类型;新增时必填,编辑后变化时必须同时提交完整新标识并创建新关系版本。 */
|
||||
private String receiverType;
|
||||
|
||||
/** 渠道接收方账号、登录号、openId 或卡别名号;编辑时为空表示保留原完整值,非空变化时创建新关系版本。 */
|
||||
@Size(max = 128, message = "接收方标识不能超过128个字符")
|
||||
private String receiverAccount;
|
||||
|
||||
/** 渠道展示的接收方名称;支付宝和微信均允许为空,变化后原关系会使用新请求号重新绑定。 */
|
||||
@Size(max = 128, message = "接收方名称不能超过128个字符")
|
||||
private String receiverName;
|
||||
|
||||
/** 平台抽佣比例,单位为百分比,最多保留三位小数;新增关系时必填,修改默认关系时可省略。 */
|
||||
private Double fzRatio;
|
||||
|
||||
/** 微信分账关系类型;支付宝关系不使用,变化后原关系会使用新请求号重新绑定。 */
|
||||
@Size(max = 64, message = "关系类型不能超过64个字符")
|
||||
private String channelRelationType;
|
||||
|
||||
/** 是否设为当前支付配置默认关系,1为是、0为否。 */
|
||||
private String isDefault;
|
||||
}
|
||||
+6
-2
@@ -40,14 +40,18 @@ public class ThirdMchFzRelationEntity extends Model<ThirdMchFzRelationEntity> {
|
||||
private String channelAppId;
|
||||
/** 微信 sub_mchid 或支付宝 smid/ip_role_id,用于绑定关系与商户支付配置对应。 */
|
||||
private String channelSubMchId;
|
||||
/** 支付宝命名平台账号键;默认支付宝账号及微信关系为空。 */
|
||||
/** 支付宝平台账号业务标识,仅用于关系审计;SDK 密钥统一读取服务端支付宝平台配置,微信关系为空。 */
|
||||
private String accountKey;
|
||||
/** 渠道接收方类型,微信为 MERCHANT_ID,支付宝为 userId 或 loginName。 */
|
||||
/** 支付宝第三方代调用授权令牌;仅服务端渠道调用使用,管理接口不得返回完整值。 */
|
||||
private String appAuthToken;
|
||||
/** 渠道接收方类型,微信使用 SDK ReceiverType,支付宝支持 userId、loginName、openId、cardAliasNo。 */
|
||||
private String receiverType;
|
||||
/** 平台分佣接收账号,发起渠道请求时使用;管理端展示必须脱敏。 */
|
||||
private String receiverAccount;
|
||||
/** 平台分佣接收方名称快照,渠道不要求时允许为空。 */
|
||||
private String receiverName;
|
||||
/** 当前关系的平台抽佣比例,单位为百分比,范围为0到100,持久化精度为0.001%;新支付和分账金额只读取该关系快照。 */
|
||||
private Double fzRatio;
|
||||
/** 渠道关系类型,微信默认 SERVICE_PROVIDER,支付宝关系允许为空。 */
|
||||
private String channelRelationType;
|
||||
/** 渠道绑定稳定幂等号;支付宝重试必须保持不变,微信用于本地审计。 */
|
||||
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
package com.bsd.pjcloud.thirdparty.vo.pay;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 管理端展示的商户分账关系。
|
||||
*
|
||||
* <p>接收方账号已脱敏,绑定请求和响应快照不返回浏览器,避免把渠道报文
|
||||
* 或内部配置暴露给管理端页面。</p>
|
||||
*/
|
||||
@Data
|
||||
public class ThirdMchFzRelationVo {
|
||||
/** 关系主键。 */
|
||||
private Long id;
|
||||
/** 关系所属商户主键。 */
|
||||
private Long mchId;
|
||||
/** 关系使用的支付配置主键。 */
|
||||
private Long paySettingId;
|
||||
/** 支付平台编码:10微信、20支付宝。 */
|
||||
private String platformType;
|
||||
/** 微信子商户号或支付宝直付通 smid/ip_role_id。 */
|
||||
private String channelSubMchId;
|
||||
/** 支付宝平台账号业务标识,仅用于关系审计;微信为空。 */
|
||||
private String accountKey;
|
||||
/** 是否已配置支付宝授权令牌;管理端只接收布尔状态,绝不返回完整令牌。 */
|
||||
private Boolean appAuthTokenConfigured;
|
||||
/** 接收方类型。 */
|
||||
private String receiverType;
|
||||
/** 脱敏后的接收方标识。 */
|
||||
private String receiverAccount;
|
||||
/** 接收方展示名称。 */
|
||||
private String receiverName;
|
||||
/** 当前关系的平台抽佣比例,单位为百分比,最多保留三位小数(0.001%)。 */
|
||||
private Double fzRatio;
|
||||
/** 微信关系类型;支付宝为空。 */
|
||||
private String channelRelationType;
|
||||
/** 当前关系绑定状态。 */
|
||||
private String status;
|
||||
/** 是否为当前支付配置默认关系。 */
|
||||
private String isDefault;
|
||||
/** 渠道确认绑定时间。 */
|
||||
private LocalDateTime boundTime;
|
||||
/** 最近一次渠道状态。 */
|
||||
private String lastExternalStatus;
|
||||
/** 最近一次错误摘要。 */
|
||||
private String bindError;
|
||||
/** 最近一次绑定或查询时间。 */
|
||||
private LocalDateTime lastQueryTime;
|
||||
}
|
||||
Reference in new issue
Block a user