feat: 增强玩家 API,新增 locale 和时间字段,更新钱包 API 以支持可用余额计算,添加错误码与多语言支持

This commit is contained in:
2026-05-09 15:05:46 +08:00
parent f1b38ef421
commit a0f86a4e36
36 changed files with 2523 additions and 34 deletions

View File

@@ -0,0 +1,36 @@
<?php
namespace App\Services\Wallet;
use App\Models\TransferOrder;
/**
* 调用主站钱包 HTTP 后的统一结果(转入扣主站 / 转出加主站)。
*/
final readonly class MainSiteWalletResult
{
public function __construct(
public bool $ok,
public ?string $externalRefNo,
/** @var array<string, mixed>|null */
public ?array $responsePayload,
/** 发往主站的 JSON 请求体快照,写入 {@see TransferOrder::external_request_payload} */
public ?array $requestPayload,
public ?string $errorMessage,
/**
* 网络超时/连接类不确定结果:由 {@see HttpMainSiteWalletGateway} 设置,上层将订单标为 pending_reconcile
* 不重复扣加款PRD §6.2 / §6.7)。
*/
public bool $uncertain = false,
) {}
public static function success(?string $ref, ?array $payload = null, ?array $requestPayload = null): self
{
return new self(true, $ref, $payload, $requestPayload, null, false);
}
public static function failure(string $message, ?array $payload = null, bool $uncertain = false, ?array $requestPayload = null): self
{
return new self(false, null, $payload, $requestPayload, $message, $uncertain);
}
}