V25 - AMOUNT MATCH / ADMIN REVIEW / IPTV / REPLACEMENT
=====================================================

1. Upload/overwrite the changed PHP files, keeping your current database, OAuth setup and Meta API settings.
2. On first auto approval the server creates the nayapay_receipt_claims unique receipt ledger automatically. The MySQL account needs CREATE TABLE permission or run database/V25_RECEIPT_CLAIMS.sql once.
3. A wallet/bill screenshot is accepted automatically ONLY if OCR reads the exact requested amount AND one fresh, authenticated receipt from service@nayapay.com contains the same parsed amount, from the configured Gmail mailbox. NAME IS NOT VERIFIED.
4. If email is missing, OCR is uncertain, same-amount customers overlap, email is ambiguous, Gmail fails, or the receipt is reused, payment is placed in manual_review. Only the admin can approve. CHECK does not retry such payments. Cron is no longer allowed to auto-credit old screenshots.
5. Receipt Gmail ID, transaction ID (if available), screenshot checksum and the receipt claim ledger block duplicate credits. Amount-only verification CANNOT prove which customer sent a payment; ambiguous cases are deliberately manual.
6. Verification is attempted ONCE when the screenshot arrives; it cannot guarantee completion within five seconds if WhatsApp delivery, local OCR or Gmail is slow. The bot never claims guaranteed instant approval.
7. IPTV: successful Opplex line generation creates an admin_notifications record type iptv_order visible on admin dashboard. V26 REMOVES the WhatsApp "NEW IPTV PURCHASE" notification entirely (even if config/iptv_notifications.php had an admin number), so customers only see the normal IPTV delivery message. Failed Opplex calls do NOT generate successful-purchase alerts.
8. Replacement: only the exact REPLACEMENT/REPLACE command starts replacement mode. Then the customer sends their own order ID + account email. Unsolicited details and unknown commands get no reply.
9. IMPORTANT: Existing IPTV order generation code does not add regular orders or debit wallet. This patch fixes its notifications, not the unrelated IPTV billing workflow. Test live in a staging environment before production.
10. SECURITY: The supplied original backup contains live-looking API/database/OAuth secrets. Keep ZIP private and rotate them if it was exposed to others.
11. Admin Notifications bell also displays IPTV purchases with a Mark as Read action. The dashboard has a dedicated IPTV purchase notification panel.
12. To prevent customers bypassing an admin hold, submitted screenshot requests remain open for admin even if the customer sends MENU/another screenshot; a new top-up is blocked until settled. The only entry command to replacement mode is REPLACEMENT (or the matching emoji label).
13. V26: when a first, expected payment screenshot is received, the bot immediately sends "PAYMENT PROCESSING / We are checking your payment" before downloading the image, OCR or Gmail verification, and then sends a second message with the approval/admin review result. This adds one outbound Meta API request. Delivery speed is network dependent; it is not guaranteed to be instantaneous.
