Filled Under:

Pay Pal Integration In Asp.Net

Share

Hello I am Tapan Kumar



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.



Here I am going to explain this with a piece of code, which will be easier to understand
and impliment. So lets start




Using The Code


<div>
<span >Your Name:</span>
<asp:TextBox runat="server" ValidationGroup="save" ID="txtName"
></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" ControlToValidate="
txtPurpose"
ErrorMessage="Please enter your Name" runat="server"
ValidationGroup="save" ForeColor="red"></asp:RequiredFieldValidator>
<br />
<br />
<span>Your Email Id:</span><asp:TextBox runat="server"
ValidationGroup="save"
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>Your Phone No:</span>
<asp:TextBox runat="server" ID="txtPhone" ValidationGroup="save" ></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>Enter Amount:</span><asp:TextBox runat="server" ID="txtAmount"
ValidationGroup="save"
></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="
txtAmount"
runat="server" ForeColor="red" ErrorMessage="Please enter the amount."><
/asp:RequiredFieldValidator>
<br />
<br />
<span>Currency:</span>
<asp:DropDownList runat="server" ID="ddlCurrency" >
<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 >Your Purpose:</span><asp:TextBox TextMode="MultiLine"
Rows="10" runat="server" ID="txtPurpose"
Height="50px"
></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"
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=yourmail@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="yourmail@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.xyz.com/ProceedToPayment.aspx"/>

<add key="SuccessURL" value="http://www.xyz.com/ProceedToPayment.aspx"/>

</appSettings>



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



Happy Coding...