// payment_api.dart — /v1/pay 代理端点封装(JWT 经 ApiClient 自动注入)。 import '../models/payment.dart'; import 'api_client.dart'; class PaymentApi { PaymentApi(this._c); final ApiClient _c; Future> catalog() async { final body = await _c.getJson('/v1/pay/catalog'); final items = (body['items'] as List?) ?? const []; return [for (final it in items) PayCatalogItem.fromJson(it as Map)]; } Future createOrder({ required String sku, required String method, Map? metadata, }) async => PayOrder.fromJson(await _c.postJson('/v1/pay/orders', { 'sku': sku, 'method': method, if (metadata != null && metadata.isNotEmpty) 'metadata': metadata, })); Future orderStatus(String orderNo) async => PayOrderStatus.fromJson(await _c.getJson('/v1/pay/orders/$orderNo')); Future retry(String orderNo, {required String method, Map? metadata}) async => PayOrder.fromJson(await _c.postJson('/v1/pay/orders/$orderNo/retry', { 'method': method, if (metadata != null && metadata.isNotEmpty) 'metadata': metadata, })); Future cancel(String orderNo) async { await _c.postJson('/v1/pay/orders/$orderNo/cancel'); } }