The app hands every outside URL to the phone browser, which sends no Referer, and Zarinpal's StartPay refuses a request without our domain as Referer («دسترسی از این دامنه مجاز نمیباشد»). Checked against production on a pending order: no Referer → refused; Referer https://math.tadrisino2.ir/ → forwards to the bank (sep.shaparak.ir). - pay.html + src/pay.ts: opened in the phone browser, forwards only to our own /api/payment/orders/<id>/pay link (anything else is refused), so the Referer is math.tadrisino2.ir. The app opens it as http:// (the WebView keeps only https on its own host); ArvanCloud moves it to https, and the link rides in the fragment, which never reaches a server. - MainActivity.kt (next APK): payment pages (our subdomains, zarinpal, shaparak) stay inside the WebView and `paysInApp()` tells the frontend to navigate directly. Not built. Not checked: a full payment on a real phone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.4 KiB
1.4 KiB