What you need to do is parse the query strings in the URL on your external web server and get the value of ga_srvr and use the given IP to do a HTTP POST request. This IP address is the AP IP address where the hotspot client got redirected and use port 880 for HTTP and port 444 for HTTPS POST requests. You have to frame a POST request to following URL /cgi-‐bin/hotspot_login.cgi and add all the query strings which are part of the first redirection URL. So a request will look something like this:
POST /cgi-‐bin/hotspot_login.cgi?ga_ssid=XXX&ga_ap_mac=XXX&ga_nas_id=XXX&ga_srvr=XXX&ga_cmac=XXXX&ga_Qv=XXXX
For click-through guest access policy there will be no POST content.
Right now we don't have any PHP code for it but we do have a nodejs application which we use internally for our testing. I am not able to attach all the code here but if you can send me private message with your email id then I can send it across to you.
You have to pass the ga_Qv as a query string in the POST URL, the ga_Qv contents should be passed as it is which client had received in redirection URL. Sometimes in external webserver integration I have seen people end up double encoding this so just ensure you are passing as it is which is already URL encoded.
Yes, it's possible and lot of vendors have already done it that way. Your select service/pay bill page can take the credentials and either it can post directly from client to AP or it can post to your external webserver and then your external webserver does a post to AP. If you notice the query strings has a ga_srvr field which has the AP IP address and your external webserver can use this IP to frame a POST request directly to AP.
There is a latest document available on cambium support website on how to integrate external webportals with cambium AP. The below link can take you to the specific page where you will find the document on "Guest Access Portal Integration"
I have a prototype webserver written in nodejs which you can try to play around to get to know the whole flow with external webserver. Please let me know if you would like to have that nodejs webserver.
The ga_srvr value in the query strings of the redirected URL is filled by the AP and it can fill up with following values for external captive portal case:
1. AP Interface IP address through which the external captive portal is reachable.
2. If Redirect Hostname is configured then this will be filled in. In case you have dns hostname mapping for the AP IP and you plan to use the dns hostname of the AP for communication then you can configure this and use this.
As you have mentioned you have configured Portal Mode as External Hotspot and configured the external URL for the captive Portal so it should redirect the clients to your portal. Are you seeing this issue after the user tries to click on login button of your external splash page?
If possible post a snapshot of the conifguration you have done on the AP to suggest further on it.