支付功能对齐网关文档 + 完善管理操作
- GatewayPayService: 新增 remark 字段(传uid/oid), 移除废弃 return_url, 新增 closeOrder/syncOrderStatus - PaymentController: 新增 POST /payment/gateway/sync/:orderNo 和 /close/:id 端点 - Admin 订单页: 待支付订单增加「同步状态」按钮 - OrdersService: 下单时传入 remark 使 webhook 可匹配 - 清理 PaymentService 未使用依赖 - docs/progress.md 更新支付架构
This commit is contained in:
@@ -92,6 +92,27 @@ export default function AdminOrders() {
|
||||
}
|
||||
}
|
||||
|
||||
async function handleSyncOrder(orderNo: string) {
|
||||
try {
|
||||
const res = await fetch(`${API_BASE}/payment/gateway/sync/${orderNo}`, {
|
||||
method: 'POST',
|
||||
headers: { Authorization: `Bearer ${token}` },
|
||||
});
|
||||
if (res.ok) {
|
||||
const data = await res.json();
|
||||
if (data.updated) {
|
||||
alert('订单状态已同步更新为已支付');
|
||||
} else {
|
||||
alert(`状态同步完成:当前状态 ${data.status}`);
|
||||
}
|
||||
loadOrders();
|
||||
} else {
|
||||
const err = await res.json();
|
||||
alert(err.message || '同步失败');
|
||||
}
|
||||
} catch { alert('同步失败,请重试'); }
|
||||
}
|
||||
|
||||
async function handleMarkPaid(orderNo: string) {
|
||||
if (!confirm('确认要将此订单标记为已支付吗?')) return;
|
||||
try {
|
||||
@@ -234,9 +255,14 @@ export default function AdminOrders() {
|
||||
</button>
|
||||
)}
|
||||
{order.status === 'PENDING' && (
|
||||
<button onClick={() => handleMarkPaid(order.orderNo)} className="text-xs text-green-600 hover:text-green-800">
|
||||
标记已付
|
||||
</button>
|
||||
<>
|
||||
<button onClick={() => handleSyncOrder(order.orderNo)} className="text-xs text-blue-600 hover:text-blue-800">
|
||||
同步状态
|
||||
</button>
|
||||
<button onClick={() => handleMarkPaid(order.orderNo)} className="text-xs text-green-600 hover:text-green-800">
|
||||
标记已付
|
||||
</button>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
</td>
|
||||
|
||||
Reference in New Issue
Block a user