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 = "";
redirecturl += "https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=" +
ConfigurationManager.AppSettings["paypalemail"].ToString();
redirecturl += "&first_name=" + name;
redirecturl += "&city=bhubaneswar";
redirecturl += "&state=Odisha";
redirecturl += "&item_name=" + itemInfo;
redirecturl += "&amount=" + amount;
redirecturl += "&night_phone_a=" + phone;
redirecturl += "&item_name=" + itemInfo;
redirecturl += "&address1=" + email;
redirecturl += "&shipping=0";
redirecturl += "&handling=0";
redirecturl += "&tax=0";
redirecturl += "&quantity=1";
redirecturl += "¤cy=" + currency;
redirecturl += "&return=" +
ConfigurationManager.AppSettings["SuccessURL"].ToString();
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"/>
-->
<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!