Hi,
Normally, the callback URL (the URL the payment gateway will call upon a successful payment) of payment plugins is quite long.
Something like this:
https://www.mywebsite.com/index.php?option=com_hikashop&ctrl=checkout&task=notif_payment&payment=xxx&lang=yy&Itemid=aaa
Some payment gateways, like eway, restrict the number of characters that can be used for the callback URL.
Also, some merchants have website domain names which are quite long.
In order to make sure that the callback URL is as small as possible, so that it works for all potential websites, we decided to write a callback file in the root folder of the website for these payment gateways.
While there is no option to move the file elsewhere it is technically possible.
Once you move the file elsewhere on your website, you need to change the lines:
$notify_url = HIKASHOP_LIVE.$this->name.'_'.$method_id.'.php?order_id='.$order->order_id.$this->url_itemid;
$notify_cancel_url = HIKASHOP_LIVE.$this->name.'_'.$method_id.'.php?order_id='.$order->order_id.'&user_cancel=1'.$this->url_itemid;
in the file plugins/hikashoppayment/ewayrapid/ewayrapid.php to point to the new location.
For example:
$notify_url = HIKASHOP_LIVE.'eway/'.$this->name.'_'.$method_id.'.php?order_id='.$order->order_id.$this->url_itemid;
$notify_cancel_url = HIKASHOP_LIVE.'eway/'.$this->name.'_'.$method_id.'.php?order_id='.$order->order_id.'&user_cancel=1'.$this->url_itemid;
to have the file in an "eway" folder.
Note that you only need to allow write access to the root folder for a short period of time. Just the time for you to click on the "save" button of the payment method in the backend will suffice. Once the file is written in the root folder, you don't need the root folder to be writable.
Also, if really you can't make the root folder writable at all, you can always make a copy of the website on your local computer with something like xampp and save the configuration of the payment method there. Once the file is generated locally in the root folder, you can upload it to your website's root folder via FTP or your hosting cpanel access.