2.2 KiB
2.2 KiB
Change: Align C端 payment flows with merchant-pool routing policy
Why
The August payment iteration keeps the existing C端 payment creation endpoints, but changes how the backend routes payment creation through its merchant pool. The client must stop assuming that a failed or unknown payment-creation result can be retried against another merchant, otherwise one user action can create duplicate payment attempts and consume payment limits unexpectedly.
What Changes
- Keep
POST /api/c/v1/orders/createandPOST /api/c/v1/wallet/rechargeas the payment creation endpoints; do not add a merchant ID to client requests. - Treat merchant selection as backend-owned and preserve the selected payment method and existing request fields (
identifier, package IDs or amount, and WeChat-onlyapp_type). - Treat an explicit payment pre-order failure as the terminal result for the current attempt; surface the API error without automatically switching merchants or creating another payment.
- Treat timeout, connection interruption, and other unknown payment-creation results as indeterminate; do not automatically switch merchants or repeat payment creation. Any retry must be a deliberate, user-visible action after the applicable order/payment status is reconciled.
- Ensure payment-limit and attempt-count behavior is modeled as “every payment creation attempt counts”, rather than “only successful payments count”; client polling/status refresh must never create another payment.
- Continue to use the API-defined error codes and messages as the source of truth.
Capabilities
New Capabilities
payment-routing-policy: Apply merchant-pool routing, terminal-failure, unknown-result, and payment-attempt accounting rules to C端 payment creation.
Modified Capabilities
Impact
- Affected API adapters:
api/modules/order.js,api/modules/wallet.js. - Affected payment callers: package order, wallet recharge, order-list payment, and shared payment-result/status refresh flows.
- No endpoint path or client merchant-selection configuration changes.
- Existing WeChat
pay_config, Alipaypayment_link, wallet payment, submit guards, and backend status reconciliation remain compatible.