Click here to Skip to main content
Click here to Skip to main content

PayPal Gateway Integration in ASP.NET

, 11 Oct 2012
Rate this:
Please Sign up or sign in to vote.
In this article I will describe how to integrate paypal in your asp.net web application

Introduction

If you are developing an ASP.NET web application and you require some payment gateway integration, then here is a simplified option to integrate PayPal with your application.

** A PayPal account can be used only for international transactions. You can not use it for domestic transactions. If you want the solution for domestic purpose then integrate CCAvenue or some other gateway, those provide domestic transactions.

Description

In this article I will explain thoroughly all the requirements and techniques for integrating PayPal in your web application.

Nowadays PayPal is the most popular payment gateway worldwide because it is totally free to integrate and PayPal does not charge anything for opening an account, you will pay PayPal when you get paid. And the amount is also lower than other payment gateways. 

Things to Do

First add a webform to your web application. Name it ProceedToPayment (as per your requirements). Then add the below shown div inside the form tag (where you want to put it).

In this div I have implemented all the details that a user should enter while making the payment, such as Name, Address, Subject, Mobile No, Email Address, Amount, Currency etc.

<div style="color: #324143; margin: 30px 0 0 60px; font-family: Arial;">
    <span style="font-size: small;">Your Name:</span>
    <asp:TextBox runat="server" ValidationGroup="save" ID="txtName" Style="margin-left: 30px; width: 200px;
        background-image: url('../images/txtBoxbg.jpg') no-repeat;"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" ControlToValidate="txtPurpose"
        ErrorMessage="Please enter your Name" runat="server" 
        ValidationGroup="save" ForeColor="red"></asp:RequiredFieldValidator>
    <br />
    <br />
    <span style="font-size: small;">Your Email Id:</span><asp:TextBox runat="server" ValidationGroup="save"
        Style="margin-left: 20px;width: 200px; background-image: url('../images/txtBoxbg.jpg') no-repeat;"
        ID="txtEmailId"></asp:TextBox>
    <asp:RegularExpressionValidator ID="regexEmailValid" runat="server" 
        ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
        ControlToValidate="txtEmailId" ValidationGroup="save" 
        ErrorMessage="Invalid Email Format" 
        ForeColor="red"></asp:RegularExpressionValidator><br />
    <br />
    <span style="font-size: small;">Your Phone No:</span>
    <asp:TextBox runat="server" ID="txtPhone" ValidationGroup="save" Style="margin-left: 6px;
        width: 200px; background-image: transparent url('../images/txtBoxbg.jpg') no-repeat;"></asp:TextBox>
    <asp:RegularExpressionValidator ID="RegularExpressionValidator4" runat="server" ControlToValidate="txtPhone"
        ForeColor="red" ErrorMessage="Invalid Phone No"
        ValidationGroup="save" ValidationExpression="^([0-9\(\)\/\+ \-]*)$"></asp:RegularExpressionValidator>
    <br />
    <br />
    <span style="font-size: small;">Enter Amount:</span><asp:TextBox runat="server" ID="txtAmount" ValidationGroup="save"
        Style="margin-left: 16px; width: 200px; background-image: url('../images/txtBoxbg.jpg') no-repeat;"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="txtAmount"
        runat="server" ForeColor="red" ErrorMessage="Please enter the amount."></asp:RequiredFieldValidator>
    <br />
    <br />
    <span style="font-size: small;">Currency:</span>
    <asp:DropDownList runat="server" ID="ddlCurrency" Style="margin-left: 42px; 
        width: 204px; background-image: transparent url('../images/txtBoxbg.jpg') no-repeat;">
        <asp:ListItem>- Select -</asp:ListItem>
        <asp:ListItem>INR</asp:ListItem>
        <asp:ListItem>USD</asp:ListItem>
        <asp:ListItem>EURO</asp:ListItem>
        <asp:ListItem>Pound</asp:ListItem>
    </asp:DropDownList>
    <br />
    <br />
    <span style="font-size: small;">Your Purpose:</span><asp:TextBox TextMode="MultiLine" 
        Rows="10" runat="server" ID="txtPurpose"
        Height="50px" 
        Style="margin-left: 17px; margin-left: 19px; width: 200px; 
               background-image: url('../images/txtBoxbg.jpg') no-repeat;"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator6" ControlToValidate="txtPurpose"
        ErrorMessage="Can not be left blank" ValidationGroup="save" 
        runat="server" ForeColor="red"></asp:RequiredFieldValidator>
    <br />
    <asp:Button ID="btnPay" runat="server" Text="Pay Now" CssClass="button" Style="font-size: 12px;
        cursor: pointer; height: 27px; margin-left: 207px; margin-top: 10px; width: 93px;"
        OnClick="btnPay_AsPerYourChoice" ValidationGroup="save"></asp:Button>
</div>

Now go to the code behind page of the webform and add the below method in it.

An important thing to notice is I am using the live URL of PayPal as this functionality is implemented in my live server. You can use the Sandbox URL of PayPal for testing purposes.

protected void PayWithPayPal(string amount, string itemInfo, string name, 
          string phone, string email, string currency)
{
    string redirecturl = "";

    //Mention URL to redirect content to paypal site
    redirecturl += "https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=" + 
                   ConfigurationManager.AppSettings["paypalemail"].ToString();

    //First name i assign static based on login details assign this value
    redirecturl += "&first_name=" + name;

    //City i assign static based on login user detail you change this value
    redirecturl += "&city=bhubaneswar";

    //State i assign static based on login user detail you change this value
    redirecturl += "&state=Odisha";

    //Product Name
    redirecturl += "&item_name=" + itemInfo;

    //Product Name
    redirecturl += "&amount=" + amount;

    //Phone No
    redirecturl += "&night_phone_a=" + phone;

    //Product Name
    redirecturl += "&item_name=" + itemInfo;

    //Address 
    redirecturl += "&address1=" + email;

    //Business contact id
    // redirecturl += "&business=k.tapankumar@gmail.com";

    //Shipping charges if any
    redirecturl += "&shipping=0";

    //Handling charges if any
    redirecturl += "&handling=0";

    //Tax amount if any
    redirecturl += "&tax=0";

    //Add quatity i added one only statically 
    redirecturl += "&quantity=1";

    //Currency code 
    redirecturl += "&currency=" + currency;

    //Success return page url
    redirecturl += "&return=" + 
      ConfigurationManager.AppSettings["SuccessURL"].ToString();

    //Failed return page url
    redirecturl += "&cancel_return=" + 
      ConfigurationManager.AppSettings["FailedURL"].ToString();

    Response.Redirect(redirecturl);
}

OK, that is fine. Now before running your application you need to add something in your web.config file.

Just add the below shown appsetting code snippet to your web config file under the system.web tag.

Here you have to give information regarding your PayPal account, your PayPal email ID , PayPal submit URL, your website success URL, failure URL, etc.

<appSettings>
    <add key="token" value="PW1BDVNqVPVanwduF_Tb2Ey91aT1Uhx1kL7HPc-7e8S-6AnUwSSHyasolSe"/>
    <add key="paypalemail" value="k.tapankumar@gmail.com"/>

    <!--Here i used sandbox site url only if you hosted in live change sandbox to live paypal URL-->
    <add key="PayPalSubmitUrl" value="https://www.paypal.com/cgi-bin/webscr"/>

    <add key="FailedURL" value="http://www.mrsoft.co.in/ProceedToPayment.aspx"/>

    <add key="SuccessURL" value="http://www.mrsoft.co.in/ProceedToPayment.aspx"/>

</appSettings>

Now you can run your application to see if its working or not.

Conclusion

I have this application in my live server and have also tested it properly. It works fine at my end. If you have any problems in understanding it or anything else, then please revert back. If you want to see it live, you may visit Payment Gateway

Thanks!

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author


Comments and Discussions

 
QuestionHow to integrate ASP .net C# mysql e-commerce website with online Payment gateway other than Paypal using SOAP XML request and response PinmemberMember 1097112225-Jul-14 3:24 
QuestionError in tutorial Pinmemberheemanshubhalla1-Feb-14 9:11 
BugIf you want to see it live, you may visit Payment Gateway PinmemberMember 954018924-Oct-13 8:06 
QuestionMultiple Products PinmemberSuraj aka Consigliere10-Oct-13 21:20 
Bugcurrency variable error PinmemberMuhammad Umair Irshad3-Sep-13 1:02 
GeneralMy vote of 2 Pinmemberi_islamian25-Aug-13 0:52 
GeneralMy vote of 5 PinmemberSravan S16-Jul-13 22:42 
GeneralMy vote of 5 PinmemberShailesh Kalasariya21-Apr-13 20:01 
Questionimplemented your code; good in my program but PayPal says "???" [modified] Pinmemberjanwayne9-Apr-13 2:38 
Questionfor testing Pinmemberdegrader40417-Mar-13 6:24 
Suggestionİf you need to avoid stringbuilder [modified] Pinmemberazizhocaoglu_7021-Nov-12 5:31 
GeneralNice One PinmemberGun Gun Febrianza23-Oct-12 21:30 
GeneralRe: Nice One PinmemberTapan Kumar ( Unleashed )11-Nov-12 19:36 
GeneralMy vote of 5 PinmemberGun Gun Febrianza23-Oct-12 21:29 
GeneralRe: My vote of 5 PinmemberTapan Kumar ( Unleashed )11-Nov-12 19:37 
Generalnot right way PinmemberSachin Pisal17-Oct-12 10:30 
GeneralRe: not right way PinmemberMr. Tapan Kumar18-Oct-12 0:59 
GeneralRe: not right way Pinmembersacp.net19-Oct-12 9:39 
GeneralMy vote of 1 PinmemberJamesPChadwick17-Oct-12 5:26 
GeneralRe: My vote of 1 PinmemberMr. Tapan Kumar18-Oct-12 1:03 
GeneralRe: My vote of 1 PinmemberJamesPChadwick18-Oct-12 1:59 
SuggestionTwo Things... PinmemberJamesPChadwick17-Oct-12 5:25 
QuestionOne word... Pinmemberednrg11-Oct-12 5:51 
AnswerRe: One word... PingroupHridayeshwar Rao27-Dec-12 1:17 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.140827.1 | Last Updated 11 Oct 2012
Article Copyright 2012 by Mr. Tapan Kumar
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid