IT DevWorks specializing in ecommerce sites and Authorize.net integration.
Why Use an Ecommerce Component?
Why should you use a component or control instead of Authorize.Net's direct web API?
Reduced time-to-market
With a payment processing component, you can work in the programming environment you’re comfortable with and use straightforward properties and methods to process payments and create subscriptions. A good vendor will provide professional quality documentation and sample code keeping the learning curve small.
No building complex requests
When using the direct web API, you have to build internal structures to track all the data for the transaction—accounting for many different scenarios—and then carefully construct a string in the correct syntax for the payment gateway. Here’s an example of an Advanced Integration Method (AIM) payment request with the minimum information needed to submit a transaction:
x_version=3.1&x_delim_data=TRUE&x_relay_response=FALSE&x_delim _char=%2C&x_encap_char=%7C&x_test_request=FALSE&x_login= xxxxxxxxxxx&x_tran_key=xxxxxxxxxxxxxxxx&x_amount=39.95&x_exp_date =12-2008&x_card_num=4111111111111111&x_method=CC&x_type =AUTH_CAPTURE&x_first_name=John&x_last_name=Doe
You can imagine the amount of coding required to create the request above, espcially when you consider all of the options and features available with Authorize.net's AIM and ARB services. With a control like IBillIt, Submitting a payment can be as easy as four lines of code.
Dim oBillIt As New ITDevWorks.BillIt.BillIt()
oBillIt.MerchantId = "xxxxxxxxxxxxxxx"
oBillIt.TransactionKey = "xxxxxxxxxxxxxxx"
Dim oResp As ITDevWorks.BillIt.Response = oBillIt.SubmitCreditCardPayment(249.99, _
"4111111111111111", Date.Parse("12/31/2010"), "111")
Of course IBillIt, supports far more functionality than shown here. In fact, IBillIt, supports every feature that Authorize.net's AIM and ARB services support. Changing an order based on user actions on the page is as easy as changing a property. IBillIt even offers additional functionality, such as tracking the line items, tax, shipping and duty for you, and adding up the total when you're ready!
No parsing responses
On the response side, the default web API returns the AIM response as a text string and the ARB response comes back as XML. You’ll need to write routines that cover all the possible gateway responses and correctly handle them. Here’s an example of a standard AIM response, like the kind you'll need to parse:
|1|,|1|,|1|,|This transaction has been approved. |,|cNIdRR|,|Y|,|507624509|,||,||, |39.95|,|CC|,|auth_capture|,||,|John|,|Doe|,||,||,||,||,||,||,||,||,||,||,||,||,||, ||,||,||,||,||,||,||,||,| |,|FCC65050EA20F8CDB2D29636B9CBB29D|,||,|2|,||,||,||,||,||,||,||,||,||,||,||,||,||, ||,||,||,||,| |,||,||,||,||,||,||,||,||,||,||
A payment processing component handles all the possible cases for you, providing a simple list of the messages in the response, plus a tree of the other data returned.
Greater security
The default AIM response is a set of fields in a single string, delimited by a character you specify in the request. The problem is that many of those fields contain information echoed from the request, including user-input data. The very nature of parsing the response introduces a greater potential for errors. And a small parsing mistake may open your site to security issues.
A quality control encodes all of the request data before sending it to the gateway, then carefully parses it back out of the response, presenting it to you in a dictionary-like (key/value pairs) collection. You can also get access to the raw response text for both ARB and AIM responses, in case there is a need for it in your application.
Take advantage of other's work
Save yourself from days of learning, coding, testing and debugging. By using our a quality component, you’ll dramatically reduce development time and the potential for errors. In most cases, even if you are a seasoned developer with plenty of experience in these technologies, when you consider the real cost of developing it yourself versus the low price of a component, purchasing a control makes sense.