Configuring Authorize.NET
Authorize.Net is one of the most popular payment gateway providers. It allows customers to pay online using credit cards. Kentico uses the Authorize.Net REST API to communicate with the gateway server (via HTTPS POST requests).
Requirements
To use Authorize.Net payments on a Kentico website:
- Create an account in the Authorize.Net Merchant Interface:
- https://account.authorize.net/ – for real payments on production websites.
- https://sandbox.authorize.net/ – for test payments.
- Set up HTTPS for your website. Your server (IIS) must support the TLS 1.2 protocol.
Limitations
Every Authorize.Net account is configured to use a single currency in the Merchant Interface. If your Kentico store uses multiple currencies, the Authorize.Net payment method cannot correctly process payments for all available currencies.
Important: The system always sends price values to Authorize.Net in the currency selected by the customer for the given order (shopping cart). If this currency is different than the one configured for your Authorize.Net account, the customer will be charged an incorrect (unconverted) amount of money.
Tip: Developers can customize the system to offer the Authorize.Net payment method to customers only if they have the appropriate currency selected. Follow the general customization approach described in Making payment methods dependent on shipping options.
Authorize.Net only accepts payments with up to two decimal places. If your store’s currency is configured to use more decimal places, the system automatically rounds prices to two decimal places when sending Authorize.Net payments.
The default Authorize.Net provider in Kentico does not support Partial authorization transactions. We recommend configuring your account in the Merchant Interface to not allow partial authorization.
Authorize.Net payment process
Setting up Authorize.Net in Kentico
Before your customers can start using the Authorize.Net payment gateway, you need to perform the following configuration:
Get the API login and Transaction key for your account in the Authorize.Net Merchant Interface.
Open the Settings application.
Navigate to the E-commerce -> Payment Gateways -> Authorize.NET categoryin the settings tree.
Copy your Authorize.Net account credentials into the API login and Transaction key settings.
If you want payments to be processed as test transactions, use the API login and Transaction key of your Sandbox account.
Select the Transaction type that you wish to use for payments:
Authorize and Capture – successfully authorized transactions are automatically submitted for settlement when orders are placed.
Authorization with Delayed Capture – only authorization occurs during the initial payment (places a hold on the transaction amount). The store’s administrators need to capture funds manually at a later time by editing orders.
Delayed capture transactions are suitable for stores where products are physically shipped some time after orders are placed.
Note that authorized transactions only remain valid for a limited number of days (depending on the gateway’s current policy). If the funds are not captured before the authorization expires, the gateway releases the held amount and the payment cannot be completed.
Save the settings.
Open the Store configuration application and select the Payment methods tab.
Ensure that a payment method is registered and enabled for Authorize.Net, with the following properties:
Payment gateway URL:
- For real payments on production websites: https://api.authorize.net/xml/v1/request.api
- For test transactions (sandbox account): https://apitest.authorize.net/xml/v1/request.api
Payment gateway provider class:
- Assembly name: CMS.Ecommerce
- Class: CMS.Ecommerce.CMSAuthorizeNetProvider
Save the payment method.
Make sure that the payment page of your website’s checkout process contains the Payment form web part.
The system now provides payment via Authorize.Net (credit cards). Customers who select the Authorize.Net payment method must enter their credit card information during the payment step of the checkout process to finish payment.