Skip to main content

Using Authorize.Net Accept Hosted with Aeon

info

Authorize.Net has introduced a new payment integration method called Accept Hosted. This new payment method replaced the Server Integrated Method (SIM), which is now deprecated. New sites implementing Authorize.Net as their payment provider should use the newer Accept Hosted method, and existing Authorize.Net sites should switch over to Accept Hosted.

Customization Keys

Updated Keys

The PaymentProvider customization key accepts a new Authorize.net Accept Hosted value, which is reflected in its updated description. The Authorize.net Accept Hosted option is used to indicate the Authorize.Net Accept Hosted payment integration method.

New Keys

There are two new status lines used when returning from the payment provider that cover two cases specific to Accept Hosted: when the payment process was canceled by the patron and when the payment was made but Aeon is still pending notification from the payment provider.

Status Line KeyDefault ValueDescription
SLPaymentCancelled0The payment process was canceled.The web status line that appears on the Order Approvals page when a payment process was canceled from the payment provider page.
SLPaymentPendingPending payment notification from the payment processor for transaction(s) <#TRANSACTIONLIST>. Those requests will be marked as paid once notification is received, which typically happens within one minute.The web status line that appears on the Order Approvals page when a payment confirmation is still pending.

Merchant Account Configuration

There are several settings that must be configured through the Authorize.Net merchant interface. Each of these account settings is found under Account>Settings.

Create API Credentials

  1. From settings, go to API Credentials & Keys.

  2. Note the value provided for API Login ID. Set your PaymentProviderMerchantId customization key to this value.

  3. Generate a new transaction key if you don't already have one. Make sure 'New Transaction Key' is selected and submit the form. A new key will be generated and shown; set your PaymentProviderToken customization key to that value.

  4. Return to the API Credentials & Keys page, and generate a new signature key. A new key will be generated and shown; set your PaymentProviderResponseToken customization key to this value.

Enable Webhooks

  1. From the account settings page, select Webhooks

  2. Select Add Endpoint

  3. Provide an appropriate name for the endpoint

  4. Provide the endpoint URL, which should be of the form https://your.aeon.url/aeon/aeon.dll/AuthorizeNetWebHook, where your.aeon.url is the public URL for your Aeon system. This must use the secure web protocol, i.e. https. Note that this must be an unprotected web directory, i.e. one that will not redirect requests to a single sign-on login page. Generally, sites that use a single sign-on solution will also have a web directory that just uses Aeon authentication.

  5. Under Payment Events, select the net.authorize.payment.authcapture.created and net.authorize.payment.authorization.created events.

Web

For Aeon v5.0.73 web pages or later:

You will need to modify the CreditCardPayment.html web page to reference the include_payment_form_authorize.net_accept_hosted.html template. Both files can be downloaded from the Aeon Downloads page as part of the Aeon Default Web Pages. Follow the instructions below:

  1. Open the default directory in File Explorer where your CreditCardPayment.html page is located. If you already have a complete set of v5.0.73 or later web pages, skip to step 4.
  2. If you have just downloaded new web pages, overwrite the CreditCardPayment.html web page with the updated file.
  3. Open the "templates" folder in the new web pages download, and add the "payment" subfolder to your web directory in the "templates" folder.
  4. Open CreditCardPayment.html and make the following changes:
Change this (default line 42):



<br><#INCLUDE filename="templates/payment/include_payment_form_none.html"><br>
To this:



<br><#INCLUDE filename="templates/payment/include_payment_form_authorize.net_accept_hosted.html"><br>

Prior to Aeon v5.0.73 web pages:

Copy the new feature-specific CreditCardPayment.html page for Authorize.Net Accept Hosted to the Aeon web directory.

Web Edits

Some behavior of the Authorize.Net payment form can be configured through web page edits:

  • For web pages prior to Aeon v5.0.73: Make edits in the CreditCardPayment.html page
  • For Aeon v5.0.73 or later web pages: Make edits in the include_payment_form_authorize.net_accept_hosted.html file

In the section that makes the AJAX call to aeon.dll/ajax?query=GenerateAuthorizeNetAcceptHostedToken, the "data" section contains the following configurable options:

Configuration OptionDescription
transactionNumbersThis should not be modified, as it's used to tell Aeon which requests are being paid for.
invoiceDescriptionThis is the description of the invoice that will be shown on the payment form. When left blank, it will default to "Payment for Aeon request(s) " followed by a comma-separated list of the transaction numbers.
returnUrlThe URL to which Authorize.Net will send the patron after receiving payment. By default, this will use the WebURL customization key as the base for constructing the appropriate URL. Generally, this should not need to be changed. The aeon.dll should receive an 'action' parameter of 30 and a 'type' parameter of 111.
cancelUrlThe URL to which Authorize.Net will send the patron after they have cancelled the payment process. By default, this will use the WebURL customization key as the base for constructing the appropriate URL. Generally, this should not need to be changed. The aeon.dll should receive an 'action' parameter of 30 and a 'type' parameter of 104.
showBillingAddressControls whether billing address fields are shown on the payment form. This should be either true or false, without quotes.
requireBillingAddressControls whether billing address fields are required to be completed on the payment form. This should be either true or false, without quotes.
showShippingAddressControls whether the shipping address fields are shown on the payment form. This should be either true or false, without quotes.
requireShippingAddressControls whether the shipping address fields are required to be completed on the payment form. This should be either true or false, without quotes.
requireCVVControls whether the card verification value is required (the 3-4 digit number on the back of the card). This should be either true or false, without quotes. It is strongly recommended that this should be set to true.
requireCaptchaControls whether solving a captcha is required. This should be either true or false, without quotes.

Workflow, Webhooks, and Pending Payments

The workflow for the Accept Hosted process differs from the deprecated SIM process:

SIM Process (Deprecated):

  • Payment was confirmed as the patron was sent back to Aeon

Accept Hosted Process:

  • The confirmation process runs parallel to the user being returned to Aeon
  • When a patron completes a payment, Authorize.Net notifies Aeon via the Webhook API
  • When Aeon receives this confirmation, it completes the payment and routes the request to the next workflow step

User Experience:

  • This confirmation may happen before or after the user returns to the Aeon web pages
  • If payment is already confirmed when the user returns: they see the SLPaymentConfirmed status line with their confirmation number
  • If payment confirmation is still pending: they see the SLPaymentPending status line