Home Integration Methods Authorize.net ARB (Autmoated Recurring Billing)

Authorize.net ARB (Autmoated Recurring Billing)

This plugin integrates Authorize.net ARB using Silent order post callback. It is suitable if you are using recurring payments with Authorize.net
1
Activate and configure plugin
First you have to activate the Authorize.net plugin in Plugins section of your PAP4. When activated, click Configure button in plugin item. Here you can configure name of custom item used to transfer tracking information to PAP4. This name is set to "custom" by default. If you are using field with this name, please specify another one. For example "custom_pap" or so.
2
Configure Authorize.net Silent order post
Login to your Authorize.net account. Now go menu->account->settings->Silent post URL. Here you must specify path to plugin in your installation of PAP4. For example http://www.yoursite.com/affiliate/plugins/AuthorizeNet/authorizenet.php . When you're done, click Submit button.

Note:
Recurring payments are identified by invoice id from Authorize.net.
For every new payment, its invoice id is stored to transaction data 5 filed. For every next recurring payment invoice id is also stored to data 4 for identification purposes.
3
Form of the custom XML
Your recurring payments are defined by an XML file which is sent to Authorize.Net. If you want to send some custom data there, you have to define it properly into the XML file. In case of our example the "custom" value have to be defined within subscription element:
You are supposed to set it the way visitor ID from tracking cookies is sent as custom value. It will be used for identification of referring affiliate and campaign details.
4
Handling response
Authorize.Net does not know the custom value you are sending there, so it will return an error informing you about it. You have to handle that so the transaction is not ignored. You have to check it with 'resultCode' and 'code' tags returned:
Notice the name of the custom field is mentioned in the code above, so if you are using something else than "custom" you have to modify it in the code as well.
Integration is now complete.