PayPal Integration to an ASP.NET website is tedious and challenging. Because,
- PayPal 'Buy Now' and other buttons are required to be an HTML form placed into your web page. But, ASP.NET Web Forms renders HTML forms and so an ASP.NET Web Form cannot contain another nested HTML form. Therefore, you would need to adopt a very hard way of manual coding. Even if you adopt any hard way, re usability of your 'hard way' would be a question when you will need to change your business logic.
- There is No ASP.NET object oriented interface available for PayPal Website Payments Standard. Without strong object oriented API, integration of PayPal Gateway to your ASP.NET Website becomes a tedious and frustrating task. Even after the PayPal Integration is complete, it becomes a maintenance nightmare for developers specially who love to practice Object Oriented Design Patterns and Principles.
- The concept of Instant Payment Notification and Payment Data Transfer is very unclear to most of the novice users.
- It is very very hard to adopt the coding for generating Encrypted Website Payments Button on the fly. Most of the developers give up using Encrypted Website Payments Button when they need to mess with Certificate stuffs. But, Encrypted Payment Buttons are the real need for Website Payments Standard.
- A developer cannot pass through as many data as he wants for tracking a transaction.
- And many more......
By the way, if you are looking for a solution to implement PayPal Website Payments Pro Direct Credit Card Payment into your website, you will find a complimentary sample web application project included into the download package when you purchase a license. You know, if you implement PayPal Pro (Direct Credit Card Payment) in your website, you must offer a regular PayPal Standard Checkout option to your customer according to PayPal policy. So, you can make use of this Control for Website payments standard anyway even if you are implementing Website Payments Pro.
Generating PayPal Encrypted Website Payments button programmatically on the fly had never been easier before. Using this Control/Component, Encrypted Website Payments buttons can be generated on the fly either from design time GUI or programmatically by providing the Certificate parameters.
If you do not have PKCS12 and PEM certificates, Guess What!!! The design time GUI will generate those certificates for you. You just need to stick to this control. The following shot shows the usage in Web Form but our online documentation shows details about using in ASP.NET MVC Framework as well.
Ok, we are talking about Web Form usages, you must be wondering, how to use in ASP.NET MVC framework ? As MVC Component is just about using the class library without any Visual GUI, the online documentation is the place where we have explained in details. For your satisfaction, here is a screen shot about MVC usage.
For the Web Form context, IPN & PDT are considered as if those are the very control's server side events. IPN & PDT variables are available as the properties of Event Argument Object. Thus, a developer can design a single page for the complete e Commerce logic by using a PayPal Button in a web form and attach event handler methods for IPN/PDT events. Although you can use different page dedicated for IPN/PDT; this control comes with dedicated IPN/PDT handlers as well. It is also easy to handle IPN/PDT in the ASP.NET MVC Context. You can simply provide the Controller/Action URL for IPN and PayPal Return properties and the component will do the rest.
State management is one of the key requirements for any application/web site developer and so ViewState technology was developed for ASP.NET Web Forms. But when you are using PayPal Website Payments Standard, you are forced to let your customer leave your website for going to PayPal website and after successful or canceled payments, your customers are transferred back to your website from PayPal website. At that point, you have lost your ViewState data and the application has become stateless. When you are using ASP.NET MVC, you do not even have any ViewState facility at all. In order to support a minimum level of statefulness, PayPal offers few pass through variables like ItemNumber, Custom, Invoice etc. Although you do not have complete freedom using those pass through variables as those are meant for special purposes and the values of these pass through variables are visible to your customers. Moreover, those pass through variables are of limited length. In order to overcome this limitation, we have implemented a special Collection type property named AdditionalDataItems. It is the State Management solution both for ASP.NET Web Form and ASP.NET MVC Context. You can store as many data as you want into AdditionalDataItems property, and you will be able to access this property value in IPN handler or PDT handler. You can also store sensitive data to this property as this property value is stored in a temporary folder in your server and never sent to the client's browser. The following shot demonstrates this feature for Web Form context, but the online documentation demonstrates this features both for Web Form and MVC.
Without this control or component, you need to write a lots of code, and being a developer, you already know that, the more code you write, more errors you invite.