رجوع

VibeFox EveryPay for Adobe Commerce — المساعدة

Requirements

Magento: Magento Open Source or Adobe Commerce 2.4.6 to 2.4.9, on your own server or hosting, on premises or on Adobe Commerce on cloud infrastructure. The module does not work with Adobe Commerce as a Cloud Service (the SaaS edition), which does not accept PHP modules.

PHP: 8.1 to 8.4.

EveryPay account: you need the API username, the API secret and the processing account name of your e-shop. They are in the EveryPay Merchant Portal, in the settings of your e-shop: the demo portal for test mode, the live portal for live payments. Test and live environments have separate credentials. You also set the callback URL of your store in both portals (see Configuration).

Currency: the processing account defines the charged currency, for example EUR3D1 charges EUR. The payment method is offered only for carts in that currency.

Reachable store: EveryPay calls your store after each payment, so the site must be reachable from the internet, without a firewall or basic authentication in front of it.

VibeFox license key: bought on vibefox.net. One key works on one domain.

Installation

The module is one ZIP file. It is a Composer package and can also be copied into app/code. Run the commands in the Magento root folder as the user that owns the Magento files.

1. With Composer: put the ZIP file into a folder that your project uses as a Composer "artifact" repository and run composer require vibefox/module-everypay-payment. Without Composer: unpack the ZIP file into app/code/Vibefox/EverypayPayment/, so that registration.php is directly in that folder.

2. Run bin/magento module:enable Vibefox_EverypayPayment and bin/magento setup:upgrade. In production mode also run bin/magento setup:di:compile and bin/magento setup:static-content:deploy, then bin/magento cache:flush.

3. In the Admin go to Stores > Configuration > Sales > Payment Methods and open VibeFox EveryPay Payment. When the Magento PayPal module is enabled, the group is listed under Other Payment Methods. Paste your VibeFox license key into License key in the license block, the first row of the group, and click Activate (see License key).

4. Enter the test API username, test API secret and processing account name from the demo Merchant Portal and keep Test Mode at Yes. Copy the Callback URL shown on the settings page into the callback notification URL of your e-shop in the Merchant Portal. Set Enable to Yes, click Save Config and place a test order. When everything works, enter the live credentials, set the callback URL in the live portal too, set Test Mode to No and click Save Config.

The module adds the EveryPay payment method to the Magento checkout. It is off after installation (Enable = No). The module uses the standard Magento order states and creates no order statuses of its own. It creates its own tables for the EveryPay payment attempts and the payment events it has already handled.

Configuration

All settings are in Stores > Configuration > Sales > Payment Methods > VibeFox EveryPay Payment, in the standard Magento configuration form. Like other Magento settings, they can be changed for a website with the Scope switcher at the top of the page; Title and Description also for a store view. Remove data on uninstall exists only in the Default Config. Save Config saves the whole page. The fields are one list without sections; below they are grouped by topic in the order of the page.

If a value is wrong, Magento shows an error and nothing on the page is saved: a Sort Order that is not a whole number (Sort order must be a whole number.); a Minimum Order Total or Maximum Order Total that is not a number of 0 or greater (Order total must be a number, 0 or greater.). Write amounts with a dot, for example 9.99. Spaces and line breaks pasted with the API usernames, API secrets and the processing account name are removed when you save; other text fields lose only spaces at the start and end.

When you click Save Config while Enable is Yes, Magento also shows EveryPay: the API username, API secret or processing account of the selected mode is missing — hidden at checkout. when one of them is empty for the current mode, and EveryPay: Test mode is on. No real money is charged. while test mode is on.

General

Enable: shows or hides EveryPay at checkout. It is shown only when the API username, the API secret and the processing account name of the current mode are set. Default: No.

Title: the payment method name customers see at checkout. It is also stored in the order when the order is placed. Default: EveryPay. If you leave it empty, EveryPay is used.

Description: shown in the payment method list at checkout, under the method when the customer selects it. Default: Pay securely by card or bank link on the EveryPay payment page.

EveryPay account

Test Mode: when Yes, new payments go to the EveryPay demo environment with the test credentials. No real money is charged. Default: Yes. Set it to No to take real payments with the live credentials. While it is on, customers see TEST MODE — no real money is charged. under the payment method.

Below Test Mode the page shows the Callback URL with the hint Set this URL in the EveryPay Merchant Portal. Callback references are verified by a server-side status API request. The processing account determines the order currency. Refunds and capture are handled in the Merchant Portal. and the links Demo portal and Live portal. While Enable is Yes and the processing account charges another currency than the store, it also shows EveryPay: the processing account charges … ; this store uses … . Only the account currency is supported.

Test API Username: the API username of the demo environment.

Test API Secret: the API secret of the demo environment.

Live API Username: the API username of the live environment.

Live API Secret: the API secret of the live environment.

Magento stores the API secrets encrypted and shows only a mask (******) after saving. Leave the mask unchanged to keep the saved secret, type a new value to change it. To delete a saved secret, clear the field and click Save Config.

Processing Account Name: the EveryPay processing account, for example EUR3D1. Only orders in the account currency are supported: the payment method is offered only for carts in that currency. The same account name is used in both modes.

Status checks always use the credentials of the mode (test or live) the payment was started in. A payment started in test mode is still checked with the test credentials after you switch to live, so keep the credentials of the old mode until its payments are finished.

Callback

The callback tells your store that a payment has been finalised, so the order is confirmed even if the customer closes the browser. Copy the Callback URL into the callback notification URL of your e-shop in the EveryPay Merchant Portal, both demo and live. It looks like https://your-store/wcpeverypaypayment/callback/index/?___store=default. Copy the URL exactly as the settings show it. The page shows the URL of the default store view of the website selected in Scope, or of the default store view of the installation in the Default Config. The payment request does not carry a callback URL, so it must be set in the portal.

The callback carries only payment references and no signature. It never marks anything paid by itself: the module asks the EveryPay API for the payment status with the credentials of the mode the payment was created in, and checks that the answer belongs to this cart and processing account. Callbacks for a payment your store did not create are rejected without a request to EveryPay. The callback works also when Enable is No or the license is not active. Without the callback, the order is confirmed when the customer comes back to the store after paying.

Advanced

Debug log: writes payment events to var/log/wc_evp_debug.log.php in the Magento folder. The file cannot be opened from the web and is rotated at 5 MB. Errors and warnings are always logged, even while it is off. API secrets, return tokens and customer e-mail addresses are hidden in the log. Default: No.

Remove data on uninstall: when Yes, uninstalling the module with its data removes the module settings of all scopes and the log (see Uninstall). Saved payment history is always preserved. Default: No.

Conditions

Payment from Applicable Countries: All Allowed Countries offers EveryPay for every country your store allows, Specific Countries only for the countries below.

Payment from Specific Countries: offer EveryPay only for billing addresses in these countries.

Minimum Order Total: offer EveryPay only from this order total, in the base currency of your store. Empty or 0 means no minimum.

Maximum Order Total: offer EveryPay only up to this order total, in the base currency. Empty or 0 means no maximum.

Sort Order: the position among the payment methods at checkout. A whole number.

The last row of the group shows the size and the latest entries of the log. Click Clear log to empty it.

Checkout

At the payment step the customer chooses the payment method (by default EveryPay) and sees the description and the note You will be redirected to the EveryPay payment page. After Place Order, Magento places the order in Pending Payment. No invoice is created and no order e-mail is sent yet. The module creates a one-off EveryPay payment for the order total in the order currency with the customer's e-mail and billing address, and sends the customer to the EveryPay payment page. The page language follows the locale of the store view (English, Estonian, Russian, Latvian, Lithuanian, Finnish or German; otherwise English). There the customer pays with one of the methods enabled for your EveryPay account. Card data never touches your site. Carts with a zero total are not offered EveryPay.

After paying, the customer returns to your store, and EveryPay also calls the callback URL. The order is marked paid only after EveryPay confirms it: on the return and on the callback the module asks the EveryPay API for the payment status, and checks the payment reference, the order reference, the processing account, the amount and the currency. The return link contains a random token of the payment attempt and only checks that attempt.

When EveryPay reports the payment as settled or authorised, Magento creates the invoice with the EveryPay payment reference as the transaction ID, the order moves to Processing and the order e-mail is sent. The customer sees the standard order success page. A customer who comes back to a paid order in another browser lands on the home page. If EveryPay is still processing the payment, or its API cannot be reached at that moment, the customer sees a page EveryPay payment confirmation with Your payment is being confirmed. Please check again. and a Check again link; the callback confirms the order as soon as EveryPay confirms the payment. For a payment that needs manual review the page says EveryPay payment needs manual review. Please contact the store.

If the payment failed or was cancelled, or the customer came back without paying, the order is cancelled (the stock goes back), the cart is restored and the customer is back in the cart with The EveryPay payment was not completed. Please try again. The customer can pay again or choose another payment method. Every attempt is kept: before a new EveryPay payment of the same cart is created, the earlier attempts are checked with the API again, so a payment made with an older link is still recognised. If the customer opens the payment step again for the same order while its payment is still open, the same EveryPay payment page is used.

If the payment cannot be started (EveryPay refused the credentials or could not be reached, an earlier payment could not be checked, the module is disabled, or the license is not active), the order is cancelled, the cart is restored and the customer sees EveryPay could not start the payment. Please try again or choose another payment method. in the cart. The details go to the log. If the cart is already paid by another order, the customer lands on the home page with This cart has already been paid.

Magento cancels orders that stay in Pending Payment longer than the Pending Payment Order Lifetime (Stores > Configuration > Sales > Sales > Orders Cron Settings). EveryPay has no API to cancel an open payment link. If EveryPay later reports a payment for a cancelled order, the order is not invoiced and not reopened: it stays Canceled and a note says that the payment needs manual review.

The module works with the standard Magento checkout. It takes one-time payments only. It has no refunds or capture from Magento (use the EveryPay Merchant Portal), no saved cards or one-click payments, no subscriptions or recurring payments and no embedded card fields; one processing account charges one currency. EveryPay is not offered for orders created in the Admin or for checkout with multiple addresses.

Orders and refunds

Order statuses

Pending Payment: the order was placed and the customer was sent to EveryPay, but EveryPay has not confirmed the payment yet. There is no invoice.

Processing: EveryPay reported the payment as settled or authorised. The invoice is created with the EveryPay payment reference as the transaction ID, and a note shows the EveryPay state and the reference. For an authorised payment the note says that the funds are reserved and asks you to check the capture in the Merchant Portal. When the payment is settled later, one note says so; no second invoice is created.

On Hold: the payment needs manual review: the paid amount or currency differs from the order, or the order uses another payment method now. No invoice is created. The note explains it and says the order was NOT marked as paid. Check the payment in the Merchant Portal and fulfil the order or refund the payment there. Later callbacks for this payment do not complete the order automatically.

Canceled: the payment failed or was cancelled at EveryPay, the customer came back without paying, the payment could not be started, or the order was cancelled in Magento. The note says why.

A paid order is never invoiced twice, also when the callback and the customer's return arrive at the same moment. If a second payment is completed for a cart that is already paid, the order is not changed: a note asks you to refund the duplicate in the Merchant Portal. The notes are order comments that the customer does not see.

EveryPay payments block

On the admin order page (Sales > Orders > View, Information tab) the payment information shows the payment method title, the EveryPay payment reference and the EveryPay mode (test or live). The customer sees only the payment method title. Below, the EveryPay payments block lists every EveryPay payment attempt of the cart: attempt, payment reference, order reference, mode, processing account, amount in minor units, currency, EveryPay state and result. It is shown also for old orders and when the module is disabled.

Check EveryPay payment status: the button in the block checks every EveryPay payment of the cart with the API, applies the result as above and adds one note with the result of each payment. You need the right to edit orders. Use it when a callback never arrived, for example to see a later capture or refund.

Refunds

Refunds and capture through Magento are not supported. Refund in the EveryPay Merchant Portal, then record the refund in Magento with a credit memo and Refund Offline, which does not send money back. When EveryPay reports a payment as refunded or charged back, the module only adds a note to the order once; the order status is not changed.

License key

The module works with a VibeFox license key from vibefox.net. The license block License — VibeFox EveryPay Payment is the first row of the VibeFox EveryPay Payment group in Stores > Configuration > Sales > Payment Methods (Default Config scope), above the settings. Paste the key into License key and click Activate. After that the block shows the key masked, the status (for example the date the license is active until and your domain) and the buttons Check now to check the status again, Change key to enter another key and Remove key to remove the key from this store. Below them are the line Product: magento-payment-everypay and the link Manage licenses and domains in your account, which opens your vibefox.net account. Only Admin users whose role allows the Payment Methods configuration section can change the key. The texts of the block follow the Admin interface locale (English and Russian are included).

If the key is not accepted, the block says why, for example Key not found, This key belongs to another product, Domain limit reached or License expired on a date. After the store address changes, or after you free a domain slot in your account, click Check now. If the license server cannot be reached, the module keeps working on the last known status.

One key works on one domain: the domain of the default store view, also when the installation has several websites or stores. Removing the key from the store does not free its domain slot. Free the slot in your vibefox.net account.

Without an active key, EveryPay is not shown to customers at checkout. If a payment is started anyway, no EveryPay payment is created: the order is cancelled, the cart is restored and the customer sees EveryPay could not start the payment. Please try again or choose another payment method. The Magento storefront does not know that you are logged in to the Admin, so the payment method is hidden for you too: you can set up the module before you buy a key, but not test it at checkout. A reminder appears in the System Messages of the Admin, with the links Enter the license key and Dismiss, which hides it for 7 days. Existing orders are not affected: payments already started are still confirmed, and the status check works.

When a license expires, the module keeps working, but updates and support need a renewal. The status is checked again automatically: once a day for the first 14 days after the key is entered, then once a week, by the Magento cron and while you work in the Admin. Uninstalling the module with its data always removes the license key and license status.

Troubleshooting

EveryPay does not appear at checkout: check that the license is active and Enable is Yes for the website of the store, and that the current mode has an API username, an API secret and a Processing Account Name: the test fields in test mode, the live fields in live mode. Check that the cart currency is the currency of the processing account (the settings page shows a warning when it is not) and that the order total is not zero. Check Payment from Applicable Countries and Payment from Specific Countries against the customer's billing address, and Minimum Order Total and Maximum Order Total.

The payment went through, but the order stays Pending Payment: the callback is not working. Check that the Callback URL from the settings is set in the Merchant Portal of the mode you use (demo or live), and that the site is reachable from the internet. The order is also confirmed when the customer returns to the store after paying, or with Check EveryPay payment status on the order page. Look at the log: errors are always logged.

The callback answers Unknown payment, Unknown payment reference or Payment does not belong to this order: the payment was not created by this store or this cart, or the EveryPay answer does not match it. Nothing is changed. Missing or invalid payment_reference means that the request did not carry a valid payment reference.

The callback answers Not configured: the credentials of the mode where the payment was created are missing, for example a test payment after the test credentials were removed. Enter them again; the next callback or Check EveryPay payment status confirms the payment.

The callback answers Payment status unavailable, Busy, please retry or Processing error, please retry: the EveryPay API could not be reached, the order was being handled by another request at the same moment, or an error occurred while the order was being updated. The reason is in the log.

Callbacks fail while the store is in maintenance mode: Magento maintenance mode closes the whole site, the callback and return URLs too. The order is confirmed by the next callback or return that reaches the store, or with Check EveryPay payment status.

The customer sees Invalid EveryPay return: the return link does not match the payment attempt, for example it was edited. The payment is still confirmed by the callback.

The customer is back in the cart with EveryPay could not start the payment: look at the log. Wrong API credentials of the current mode or a processing account name that does not match them are the usual cause. The order of that attempt is cancelled.

The order is On Hold or a note asks for manual review: read the note on the order, check the payment in the Merchant Portal, then fulfil the order or refund the payment in the Merchant Portal.

There is no Refund button on the credit memo: the module has no online refunds. Refund in the EveryPay Merchant Portal and record it with Refund Offline.

The settings page or the checkout looks unchanged after installing or updating: run bin/magento setup:upgrade and bin/magento cache:flush; in production mode also setup:di:compile and setup:static-content:deploy.

Uninstall

Deleting the module code alone removes nothing from the database: the license key and the settings stay. To remove the data, uninstall the module with the Magento command:

Installed with Composer: run bin/magento module:uninstall --remove-data Vibefox_EverypayPayment. It removes the data and the code.

Installed in app/code: run bin/magento module:uninstall --non-composer Vibefox_EverypayPayment to remove the data, then bin/magento module:disable Vibefox_EverypayPayment, delete the folder app/code/Vibefox/EverypayPayment and run bin/magento setup:upgrade.

The license key and license status are always removed. If Remove data on uninstall is Yes in the Default Config, the module settings of all scopes and the log are removed too. If it is No, the settings are kept for a re-install. The tables with the EveryPay payment attempts are always kept, so late callbacks and status checks still find the payments after a re-install. Existing orders keep their invoices, payment notes and transaction IDs.

EveryPay is a trademark of its respective owner. This module is not affiliated with or endorsed by EveryPay.