docs: sync from backend 810098f — BSC Testnet scanner rail
This commit is contained in:
@@ -6,7 +6,7 @@ created: 2026-05-30
|
||||
|
||||
# Payment Flow — AMN Pay Scanner (In-House)
|
||||
|
||||
> **Last updated:** 2026-06-05 — documented backend/frontend `2.8.79` and scanner `0.1.8` direct-address balance checks and balance watches.
|
||||
> **Last updated:** 2026-06-06 — documented backend/frontend `2.8.115` and scanner `0.1.10` BSC Testnet rail alignment.
|
||||
|
||||
End-to-end payment flow using the in-house AMN Pay Scanner, replacing the Request Network integration. The scanner is a separate microservice; the backend talks to it over an internal HTTP API.
|
||||
|
||||
@@ -67,6 +67,24 @@ Authorization: Bearer <SCANNER_API_KEY>
|
||||
|
||||
The scanner responds with a `checkoutBlock` that the backend passes to the frontend.
|
||||
|
||||
#### BSC Testnet test rail
|
||||
|
||||
For dev end-to-end testing, backend and scanner must keep the chain 97 registry in sync:
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Chain id | `97` |
|
||||
| Network aliases | `bsc-testnet`, `bnb-testnet`, `bsctest`, `bsc_testnet`, `binance-testnet`, `bnbt`, numeric string `97` |
|
||||
| RPC fallback | `https://bsc-testnet-rpc.publicnode.com` |
|
||||
| USDT test token | `0x337610d27c682E347C9cD60BD4b3b107C9d34dDd` |
|
||||
| USDC test token | `0x64544969ed7EBf5f083679233325356EbE738930` |
|
||||
| Token decimals | `18` for USDT and USDC |
|
||||
| Default confirmation floor | `5` |
|
||||
|
||||
Backend `2.8.115+` uses this same token address in both the Request Network/scanner intent registry and the legacy `BSCTransactionVerifier` path. This matters because `/api/payment/request-network/intents` resolves the buyer's selected chain/token before asking scanner to watch, while older wallet-direct verification endpoints call `BSCTransactionVerifier.verifyTransfer()` directly. A mismatch between these two registries will either create scanner intents for a token that the buyer does not pay, or verify the wrong ERC-20 contract after payment.
|
||||
|
||||
If a live dev stack still waits for `200` confirmations on chain 97, check the admin runtime setting `confirmation_threshold:97`. Built-in default is now `5`, but a previously persisted admin value above the floor still wins until updated.
|
||||
|
||||
### Step 2 — Frontend shows checkout
|
||||
|
||||
The `checkoutBlock` contains everything the frontend needs to build the `ERC20FeeProxy.transferWithReferenceAndFee` calldata:
|
||||
|
||||
Reference in New Issue
Block a user