| Type | Amount | Description | Date |
|---|---|---|---|
| No transactions yet | |||
| Type | Amount | Description | Date |
|---|---|---|---|
| No transactions yet | |||
| Order ID | Method | Amount | Status | Date |
|---|---|---|---|---|
| Loading… | ||||

Binance → Account → API Management → Edit key → Restrict access to trusted IPs



Auto-Detect is recommended for everyone. After changing this, re-download your gateway files and follow the Setup Guide.
Need the full walkthrough? Open the Setup Guide →
Move gatewaypro.php and gatewaypro_confirm.php to any public folder, enter its URL here, then Test.
23.88.55.180- Log in to binance.com → Profile → API Management
- Click "Create API" → choose "System generated" → label it PayGatePro
- Under API Restrictions enable only: Enable Reading — that's all PayGate Pro needs to check your payment history. Do not enable withdrawals or transfers; your key never needs the ability to move funds, only to read it.
- Under IP Access Restriction select "Restrict to trusted IPs only" and add:
23.88.55.180 - Save and complete any 2FA Binance asks for. Copy your API Key and Secret Key
- Go to Profile → Payment → Binance Pay and note your Merchant ID (a numeric ID, e.g.
37436613— length varies by account, that's normal)
PayGate Pro can accept USDT on three networks in addition to Binance Pay. You only need to set up the ones you want to offer — enable/disable each in Gateway Setup.
TRC20 (Tron network)- Binance → Wallet → Spot → Deposit → search USDT → network TRC20 (Tron)
- Address starts with
T, 34 characters. Any TRC20 wallet works (Trust Wallet, TronLink, etc.) — verified via tronscan.org
BEP20 (BNB Smart Chain)- Same Binance deposit flow — search USDT → network BEP20 (BSC)
- Address starts with
0x. Any BSC-compatible wallet works (Trust Wallet, MetaMask on BSC, etc.) — same address format as ERC20, but a different network, so don't mix them up
ERC20 (Ethereum network)- Same Binance deposit flow — search USDT → network ERC20 (Ethereum)
- Address also starts with
0x. Any Ethereum wallet works (MetaMask, etc.) — customers pay gas in ETH to send, but that's on them, not you
- Go to Gateway Setup in the sidebar
- Enter your Binance Merchant ID from Binance Pay profile
- Enter your Binance API Key and API Secret from Step 1
- Enter whichever of the TRC20 / BEP20 / ERC20 wallet addresses from Step 2 you want to accept — toggle each method on or off with its switch
- Click Save Credentials — all values are encrypted at rest
- In Gateway Setup, click Download Gateway Files
- Extract the ZIP — you will see a
modules/folder inside - Upload the files to your DHRU installation via cPanel File Manager or FTP:
Upload destinations
gatewaypro.php→public_html/modules/gateways/These 3 go insidecallback/gatewaypro/(upload the whole folder):callback/gatewaypro/gatewaypro.phpcallback/gatewaypro/gatewaypro_confirm.phpcallback/gatewaypro/.htaccess - ✅ No .htaccess editing required. The
callback/gatewaypro/subfolder in the ZIP has its own.htaccessthat handles this automatically. DHRU updates will never overwrite it. - Confirm these 4 files exist on your server:
modules/gateways/gatewaypro.phpmodules/gateways/callback/gatewaypro/gatewaypro.phpmodules/gateways/callback/gatewaypro/gatewaypro_confirm.phpmodules/gateways/callback/gatewaypro/.htaccess
- Create any public folder outside the blocked path, e.g.
public_html/pgpcb/ - Copy just
gatewaypro.phpandgatewaypro_confirm.phpinto it (leave the original in place — DHRU still needs it to show the gateway) - Go to Gateway Setup → Callback URL (Advanced) → enter that folder's URL (e.g.
https://yourstore.com/pgpcb) → click Test, then Save
- Log in to your DHRU Admin panel
- Go to Settings → Payment Gateways
- Find PayGate Pro and click Activate
- No API key entry needed in DHRU — it is already embedded in the PHP files
- Create a test order, select PayGate Pro, complete a small USDT payment
- Once confirmed, your gateway is live for all customers 🎉
This is the recommended way to run PayGate Pro. The customer pays any amount first, PayGate reads the real amount that arrived (on-chain or Binance Pay), then creates the invoice for exactly that amount and marks it paid. No amount mismatches from network or exchange fees, and nothing to add manually. Works for Binance Pay and TRC20 / BEP20 / ERC20. (The alternative — Fixed Amount — makes the customer pay the exact invoice total, and is only for stores that specifically need that.)
- In Gateway Setup → Payment Mode, make sure Auto-Detect is selected — it's the recommended default.
- Download your gateway files. The ZIP contains two new files:
gatewaypro_detect.phpandgatewaypro_addfunds.php(both incallback/gatewaypro/), plusautodetect_addfunds_button.tpl(in the ZIP root). - Upload both PHP files into your
modules/gateways/callback/gatewaypro/folder — the same place as your other callback files. They're same-origin proxies (a direct browser call to PayGate is blocked by DHRU's security policy / CSP), and they never need touching again — future changes are fetched through them live. - Open your active theme's footer template —
templates/<your-theme>/footer.tpl— and paste the entire contents ofautodetect_addfunds_button.tpljust before the closing</body>tag, then save. This is the last time you'll ever need to touch the footer. - A floating "Add Funds" button now appears on your store. Customers pick a method, send USDT (or Binance Pay), paste their TxID / Order ID, and are credited the exact amount received. Only your enabled methods are shown — and that list, along with wallet addresses, updates live the moment you change it here.
"Payment gateway is temporarily unavailable" +
- Your subscription is not active — go to Subscription and activate/renew a plan
- Your prepaid balance is $0 or negative — top up via Add Balance
"Payment gateway is not set up for this store yet" +
- Your callback file (Step 4) isn't reachable — usually a 403/404 from your host
- Confirm the 4 files from Step 4 exist at those exact paths
- If your host blocks PHP in the callback folder (common on Hostinger), use the Callback URL (Advanced) fallback at the end of Step 4
"Order ID already used" +
"Transaction not found" after payment +
- Binance Pay: Order ID must match exactly what appears in your Binance Pay history
- TRC20: TxID must be the full 64-character hash from TronScan
- TRC20 transactions expire after 30 minutes — submit before the window closes
- Confirm IP 23.88.55.180 is whitelisted in your Binance API settings
Binance API returns authentication error +
- Confirm 23.88.55.180 is in your Binance API IP whitelist
- Re-check API Key and Secret — no extra spaces when copying
- API key must have Enable Reading enabled (transfers/withdrawals are not needed)
Auto-Detect: "Add Funds" button missing or not crediting +
- Button missing → confirm
gatewaypro_addfunds.phpis uploaded incallback/gatewaypro/, AND the footer snippet is pasted into your active theme'sfooter.tpl(Step 6). Once both are in place you never need to touch them again — enabled-method and wallet changes appear automatically. - Button stuck on "Verifying…" / detect fails → confirm
gatewaypro_detect.phpis uploaded in the same folder. A stuck spinner usually means that file is missing. - Same on-chain rules apply — correct network, sent to your wallet, within the time window, and Order IDs/TxIDs are single-use
