Commit Graph
19 Commits
Author SHA1 Message Date
kate522 815e83bac0 fix(user-center): complete certification and order flows
Fix modal scroll ownership and certification modal styling, store evidence as Media Library attachments, reconcile missed provider callbacks, validate currencies, and complete digital fulfillment only after durable entitlement delivery.
2026-07-29 10:29:59 +08:00
kate522 a7f3caec59 feat(user-center): redesign sidebar and wallet tips 2026-07-28 13:41:00 +08:00
kate522 ad40d9a7ca fix(orders): wire detail progress timeline and two-step cancel
Order progress was stuck on "订单创建" because timeline only read sparse
timestamp columns and status transitions didn't always stamp them.
Drive timeline from current status + related records, backfill lifecycle
timestamps on update_status, and replace window.confirm cancel with a
关闭订单 → 确认取消 button step in the detail modal.
2026-07-27 15:15:35 +08:00
kate522 a1e35a4499 feat(orders): order detail modal, list actions, use configured prefix
Wire admin payment_order_prefix into order number generation (with 32-char
cap for gateways), make 查看 open a full order-detail modal with
status-aware footer actions, keep type badge top-left only, and right-align
unpaid list actions with countdown on the left.
2026-07-27 12:39:21 +08:00
kate522andClaude Fable 5 abc3f1565f fix(payment): reject duplicate provider transactions
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-27 11:31:39 +08:00
kate522andClaude Fable 5 089421cd3e fix(payment): unify and harden payment attempts
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-27 11:29:57 +08:00
kate522andClaude Fable 5 53933988bf fix(payment): resolve provider out_trade_no on Alipay refund query
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 13:29:47 +08:00
kate522andClaude Fable 5 ed55d302e9 fix(payment): re-pay with fresh provider out_trade_no
WeChat/Alipay/Epay reject reusing the same merchant order number when
params change. Allocate attempt-suffixed out_trade_no on resume pay,
map callbacks back to the local order, and best-effort close prior trades.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 13:28:45 +08:00
kate522andClaude Fable 5 723dd180e4 feat(payment): tighten gateways and implement Epay
Keep only balance, Alipay, WeChat, PayPal, Stripe, Epay, and card-pass
channels; remove placeholder aggregators. Add dual-channel Epay gateway
with MD5 notify/return, register cashier methods, and gate card-pass
redeem behind the payment channel switch.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 12:59:28 +08:00
kate522 53ff99f343 fix(payment): harden payment and refund chains 2026-07-26 02:29:46 +08:00
kate522 a8d99b200b refactor(payment): migrate SDK to yansongda pay 2026-07-26 00:09:38 +08:00
kate522 9277674da0 fix(orders): restore frontend pay REST and harden order-center client
Add AKSRT\Payment\OrderCenterRest so /shop/frontend/orders/{n}/pay|cancel
always register on rest_api_init; widen order_number route charset; make
order-center.js use credentials, encodeURIComponent, and clearer 404 errors.
2026-07-25 14:12:40 +08:00
kate522 3baa8573c9 feat(orders): full-chain My Orders for all product types
Unify front-end order center across shop, content, VIP, recharge,
points, and plate-follow with type filters, stats, and type-aware
cards; keep shop-only fulfillment actions; ensure 权益与消费 entry URL.
2026-07-25 13:33:43 +08:00
kate522 3267bee71e fix(payment): wire balance wallet end-to-end when pay_balance_s is on
Opening 余额功能 alone now enables cash-wallet pay (unless 余额支付 is explicitly off). Drop points-as-balance fallback, stop fake method injection, expose real wallet in cashiers, and honor auto_to_balance on recharge fulfill.
2026-07-25 12:46:38 +08:00
kate522 69836154fd fix(vip): Batch 0 wiring for VIP settings, URLs, and order meta
Wire get_vip_settings alias, tab aliases for vip/assets, expired-level meta,
VIP2 order-level fallback, JSON-safe order notes, and header/float pay-vip CTAs.
2026-07-21 16:16:43 +08:00
kate522 1337664ed3 feat(ux): after-sale multi-step, ban appeal, message types, coupon wallet
Orders center gains after-sale tickets (return ship/cancel/timeline),
coupon wallet list, ban-appeal page, and expanded message center tabs.
2026-07-18 22:48:08 +08:00
kate522 68d2e78d77 fix(ns): class_exists() must use FQCN after PSR-4
Bare class_exists('Balance') looks up global Balance, always false
under AKSRT\* namespaces → REST 403 on balance exchange and friends.
Rewrite string checks to AKSRT\{Domain}\{Class}.
2026-07-17 15:40:20 +08:00
kate522 3cf0c08969 fix(autoload): one PSR-4 type per payment/widget file
PSR-4 split left GatewayInterface/Gateway duplicated across files;
loading BalanceGateway redeclared the interface. Strip sibling types
from polluted files (payment + widgets) so each path owns one type.
2026-07-17 14:44:36 +08:00
kate522 aaf458af1c refactor(autoload): migrate theme classes to Composer PSR-4
Move 288 types from global AKSRT_* + inc/classes manual requires into
namespace AKSRT\{Domain} under src/AKSRT/, wire composer.json psr-4,
and slim bootstrap to helpers/modules/hooks only. Split multi-class
widget/gateway files, update admin contract audit paths, and document
the layout in ADR/README.
2026-07-17 13:29:22 +08:00