Ready for a long post everyone? 
Dynamic Registration 3.1 will be released soon, the beta version is out to a few clients and things appear to be going great. If you are a user of Dynamic Registration 3.0 and would like a free copy of the beta please contact us.
Besides some minor bug fixes the 3.1 release introduces a payment gateway feature that uses Authorizenet as a merchant gateway. Future releases will support other gateways such as PayPal but for now its setup for Authorizenet (I can explain in another post the extra work for integrating directly with PayPal now but that's an entirely other topic).
So, for users wanting to integrate Dynamic Registration with Authorizenet below is a 'how to' and some questions that you might have. I will try and keep this post up to date and encourage other users (just beta clients right now) to post solutions that they implement.
To enable the payment gateway go to Module Configuration within the control panel and navigate to 'Payment Gateway' which is just below the module layout / style sheet settings. You have a few options here.
Enable Payment Gateway - Yes this to yes to turn the payment gateway on.
Payment Gateway - Authorizenet is currently the only gateway supported.
Test Mode - Check this box to put the gateway in test mode
Execute Gateway - Here you can decide if you want to always enable the gateway, enable the gateway for new registrations only, or enable the gateway for updated registrations only
Calculation Total - This field can represent the parameter $(Calc_Totalfield) which can be used for processing and can also be used later in Dynamic Email/SQL Events etc... Some examples of the calculation total can include things such as this:
Example: $(Field1) * 10
Example: $(Field1) + $(Field2) + $(Field3)
Note: New features have been added to 3.1 to also calculate checkboxlists and listbox multi selection fields. To use these you need to use parameters $(CalculateList:ShortFieldName). To set values within the checkbox group/listbox fields you need to set each list items value to be VALUE01_Price. You can have up to 20 items with values in it. For example VALUE01_19.99, VALUE02_9.99, VALUE03_29.99, VALUE04_19.99, VALUE05_9.99). By using this feature you can create total fields such as 'Check all items you want to purchase' or 'Check all add-on's you want to add' and Dynamic Registration will total all of the checked or selected items for you with this token. More information will be covered on this topic when the user guide is published.
Ok. So this covers the Payment Gateway settings. Next you need to setup the specific settings for Authorizenet. Expand the Authorizenet section and set the following properties.
Authorizenet Login: This is your Authorizenet Login ID
Authorizenet Transaction Key: This is your authorizenet transaction key. You will need to get this key from Authorizenet administration.
Authorizenet Gateway: The gateway is either in test (developer mode) or standard (regular production mode). This is seperate from the test mode flag as this represents posting to the https://secure.authorize.net/gateway/transact.dll (for standard mode) and https://test.authorize.net/gateway/transact.dll (for developer mode). The developer mode should be used if you do not actually have an Authorizenet merchant account setup and just a development account setup.
Additional Parameters: This is the most important part of the authorizenet integration. These additional parameters are passed. Within the Authorizenet section you will notice two listbox's. One that includes Authorizenet Tokens and another that includes Dynamic Tokens that are available from Dynamic Registration fields and so forth. The additional parameters can pass as many (or as few) parameters to Authorizenet for processing. This 'advanced method' allows the most flexibility for your implementation. For example, by setting these parameters you could optionally turn on/off reoccurring billing, or maybe accept only checked and not credit cards (or set the choice between credit card and check based on a Dynamic Field value). I want to cover some of the very basics here and also create another post that highlights these Authorizenet tokens.
First, there are a few parameters that MUST be included or else Authorizenet will simply not work. I believe at a minimum the credit card number, expiration date, method type (i.e. credit card), and amount MUST be set. I think items such as currency and all of the billing contact info is optional.
Setting these parameters follows a very generic and standard method. These should be &AuthorizenetToken=SomeValue
Note: Selecting a token from the Authorizenet token listbox or Dynamic Fields listbox will automatically move that token over to the additional parameters textbox in the standard format of &AuthorizenetToken=
So for example let's say you were wanting to specify the first name, last name, email, credit card number, credit card expire date, and the amount, the additional parameters might look like this:
Example:
&x_first_name=$(FName)&x_last_name=$(LName)&x_email=$(Email)&x_method='CC'&x_amount=20.00&x_card_num=$(CardNum)&x_exp_date=$(ExpDate)
Another Example:
This example just displays using the calculation field for the amount:
&x_first_name=$(FName)&x_last_name=$(LName)&x_email=$(Email)&x_method='CC'&x_amount=$(Calc_TotalField)&x_card_num=$(CardNum)&x_exp_date=$(ExpDate)
Third Example:
This example makes the billing reoccurring and changes the system from credit cards to checks, also collects the users zip code, passes the IP Address along to Authorizenet, and also collets the users drivers license number.
&x_first_name=$(FName)&x_last_name=$(LName)&x_email=$(Email)&x_method='ECHECK'&x_amount=$(Calc_TotalField)&x_bank_name=$(BankName)&x_bank_acct_type=$(AcctType)&x_bank_aba_code=$(BankABACode)&x_bank_acct_num=$(BankAccountNumber)&x_recurring_billing="TRUE" &x_drivers_license_num=$(AnotherField)&x_ip_address=$(IPAddress)
So hopefully you get the picture. I will post another thread soon on all of the Authorizenet tokens that are available but I also encourage you to post any questions, solutions, or issues you might have in implementing the gateway with Authorizenet. As far as I know all tokens are already included within the listbox though.
A few other tips and tricks...
* Don't forget that Authorizenet requires SSL to be setup on your site
* If you are curious what is happening behind the scenes, you can add the &Debug=True to your URL when processing payments to determine the exact post that is sending to Authorizenet. You must be a site administrator or host user to review this.
Thats it for now! I will post more details soon.
Thanks,
Chad
|