更新统一使用 PHPDoc + PSR-19 标准注释

This commit is contained in:
技术老胡
2026-04-21 08:38:59 +08:00
parent dcd58e24ce
commit 9a16a88640
252 changed files with 9218 additions and 659 deletions

View File

@@ -4,58 +4,88 @@ declare(strict_types=1);
namespace app\common\interface;
/**
* 支付插件基础契约接口
* 支付插件基础契约接口
*
* 职责边界:
* - `PayPluginInterface`:插件生命周期 + 元信息(后台展示/可配置/可路由
* - `PaymentInterface`:支付动作能力下单/查询/关单/退款/回调
* - `PayPluginInterface`:插件生命周期和元信息,用于后台展示、配置和路由。
* - `PaymentInterface`:支付动作能力,用于下单查询关单退款回调。
*
* 约定:
* - `init()` 会在每次发起支付/退款等动作前由服务层调用,用于注入该通道对应的插件配置。
* - 元信息方法应为纯读取,不要依赖外部状态或数据库。
* - `init()` 会在每次发起支付退款前由服务层调用,用于注入该通道对应的插件配置。
* - 元信息方法应为纯读取,不要依赖外部状态或数据库。
*/
interface PayPluginInterface
{
/**
* 初始化插件注入通道配置
* 初始化插件注入通道配置
*
* 典型来源:`ma_payment_plugin_conf.config`,并由服务层额外合并通道信息、支付方式声明等上下文。
* 插件应在这里完成:缓存配置、初始化 SDK/HTTP 客户端等。
*
* @param array<string, mixed> $channelConfig
* @param array $channelConfig 渠道配置
* @return void
*/
public function init(array $channelConfig): void;
/** 插件代码(与 ma_payment_plugin.code 对应) */
/**
* 获取插件代码。
*
* @return string 插件代码
*/
public function getCode(): string;
/** 插件名称(用于后台展示) */
/**
* 获取插件名称。
*
* @return string 插件名称
*/
public function getName(): string;
/** 插件作者名称(用于后台展示) */
/**
* 获取作者名称。
*
* @return string 作者名称
*/
public function getAuthorName(): string;
/** 插件作者链接(用于后台展示) */
/**
* 获取作者链接。
*
* @return string 作者链接
*/
public function getAuthorLink(): string;
/** 插件版本号(用于后台展示) */
/**
* 获取版本号。
*
* @return string 版本号
*/
public function getVersion(): string;
/**
* 插件声明支持的支付方式编码
* 获取插件声明支持的支付方式编码
*
* @return array<string>
* @return array 支持的支付方式编码
*/
public function getEnabledPayTypes(): array;
/** 插件声明支持的转账方式编码 */
/**
* 获取插件声明支持的转账方式编码。
*
* @return array 支持的转账方式编码
*/
public function getEnabledTransferTypes(): array;
/**
* 插件配置结构(用于后台渲染表单/校验)
* 获取插件配置结构
*
* @return array<string, mixed>
* @return array 配置结构
*/
public function getConfigSchema(): array;
}

View File

@@ -9,91 +9,74 @@ use support\Request;
use support\Response;
/**
* 支付插件接口
* 支付动作能力接口
*
* 所有支付插件必须实现此接口,用于统一下单、订单查询、关闭、退款回调通知等核心能力
* 建议继承 BasePayment 获 HTTP 请求等通用能力,再实现本接口。
* 所有支付插件必须实现此接口,用于统一下单、订单查询、关闭、退款回调通知。
* 建议继承 `BasePayment` HTTP 请求等通用能力,再实现本接口。
*
* 异常约定:实现类在业务失败时应抛出 PaymentException便于统一处理和返回。
* 异常约定:实现类在业务失败时应抛出 `PaymentException`,便于统一处理和返回。
*/
interface PaymentInterface
{
// ==================== 订单操作 ====================
/**
* 统一下单
* 发起支付下单
*
* @param array<string, mixed> $order 订单数据,通常包含:
* - order_id: 系统支付单号,建议直接使用 pay_no
* - amount: 金额(分)
* - subject: 商品标题
* - body: 商品描述
* - callback_url: 第三方异步回调地址(回调到本系统)
* - return_url: 支付完成跳转地址
* @return array<string, mixed> 支付参数,需包含 pay_params、chan_order_no、chan_trade_no
* @throws PaymentException 下单失败、渠道异常、参数错误等
* @param array $order 订单
* @return array 下单结果
*/
public function pay(array $order): array;
/**
* 查询订单状态
* 查询订单状态
*
* @param array<string, mixed> $order 订单数据(至少含 order_id、chan_order_no
* @return array<string, mixed> 订单状态信息,通常包含:
* - status: 订单状态
* - chan_trade_no: 渠道交易号
* - pay_amount: 实付金额
* @throws PaymentException 查询失败、渠道异常等
* @param array $order 订单参数
* @return array 查询结果
*/
public function query(array $order): array;
/**
* 关闭订单
* 关闭订单
*
* @param array<string, mixed> $order 订单数据(至少含 order_id、chan_order_no
* @return array<string, mixed> 关闭结果,通常包含 success、msg
* @throws PaymentException 关闭失败、渠道异常等
* @param array $order 订单参数
* @return array 关闭结果
*/
public function close(array $order): array;
/**
* 申请退款
* 申请退款
*
* @param array<string, mixed> $order 退款数据,通常包含:
* - order_id: 原支付单号
* - chan_order_no: 渠道订单号
* - refund_amount: 退款金额(分)
* - refund_no: 退款单号
* @return array<string, mixed> 退款结果,通常包含 success、chan_refund_no、msg
* @throws PaymentException 退款失败、渠道异常等
* @param array $order 订单参数
* @return array 退款结果
*/
public function refund(array $order): array;
// ==================== 异步通知 ====================
/**
* 解析并验证支付回调通知
* 解析并验证支付回调通知
*
* @param Request $request 支付渠道的异步通知请求GET/POST 参数)
* @return array<string, mixed> 解析结果,通常包含:
* - success: 是否支付成功
* - status: 插件解析出的渠道状态文本
* - pay_order_id: 系统支付单号
* - chan_trade_no: 渠道交易号
* - chan_order_no: 渠道订单号
* - amount: 支付金额(分)
* - paid_at: 支付成功时间
* @throws PaymentException 验签失败、数据异常等
* @param Request $request 请求对象
* @return array 回调结果
*/
public function notify(Request $request): array;
/**
* 回调处理成功时返回给第三方的平台响应。
*
* @return string|Response 响应内容
*/
public function notifySuccess(): string|Response;
/**
* 回调处理失败时返回给第三方的平台响应。
*
* @return string|Response 响应内容
*/
public function notifyFail(): string|Response;
}