1) Open a Moyasar account at dashboard.moyasar.com. It starts in test mode; Moyasar activates live payments for a business with a Saudi commercial registration (or freelance licence) and a Saudi bank account.
2) In your Moyasar dashboard, Settings, API Keys, copy the secret key (sk_test_... to test, sk_live_... for real payments). Moyasar shows a secret key only once, when it is made.
3) Install this plugin, then in HikaShop go to System > Payment methods, click New and choose Moyasar.
4) Paste the secret key, choose the statuses and save.
5) Your shop must use the currency of your Moyasar account, usually the Saudi riyal (SAR): the method is only offered for an order in SAR, AED, BHD, KWD, QAR or USD.
6) Optional: in your Moyasar dashboard, Settings, Webhooks, add the Webhook URL shown in the plugin's settings, with a secret token of your choice and the payment events, and type the same token in the plugin's settings.
Configuration
Secret key: the secret key of your Moyasar account (sk_...). A test key puts the method in test mode. The publishable key (pk_...) does not work here: the plugin warns you when you paste one.
Webhook secret token: optional, the token you typed for the webhook in your Moyasar dashboard. A webhook without it is refused. Empty, orders are still confirmed, but refunds and voids made in the dashboard do not change them.
Webhook URL: the address to paste in your Moyasar dashboard, Settings, Webhooks. Under it, "Test mode" tells you the key is a test key.
Payment page lifetime: how many minutes the payment page of an order can be paid, 1440 (a day) by default. 0 for no limit.
Payment page language: Automatic shows it in Arabic when your shop is shown in Arabic and in English otherwise; or always Arabic, or always English.
Debug: writes every call to Moyasar and every notification to the HikaShop payment log file.
Invalid status: the status of an order whose payment page expired or was cancelled, cancelled by default.
Verified status: the status of a paid order, confirmed by default.
Refunded status: moving an order to this status refunds its whole payment on Moyasar, refunded by default.
The other settings of the page (name, description, images, price, zone, currency, restrictions) are the same as for every HikaShop payment method.
Troubleshooting
"The payment could not be started" at the checkout gives Moyasar's reason: for instance an order total under 1.00 SAR, which Moyasar does not take, or a wrong secret key.
Moyasar is not offered at the checkout: the order is not in one of the currencies above, or the method is not published.
A currency other than SAR has to be enabled on your account by Moyasar first.
"The refund was refused by Moyasar": the order keeps its status and the message gives the reason. Moyasar takes one refund per payment, so a payment already partly refunded cannot be refunded again; the refund must also be covered by your Moyasar balance.
Turn Debug on and look at the HikaShop payment log file (System > Configuration > Files) to see what Moyasar answered.