Authorized.net & PayPal Express Gateway

Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div align="center">
      <table style="border: 1px solid black; vertical-align: middle;" id="table3">      
        <tr><td colspan="2" align="center">
            <asp:ValidationSummary ID="ValidationSummary1" ShowSummary="false" ShowMessageBox="true" ValidationGroup="fldGrp1" runat="server" />
        </td></tr>
        <tr>
            <td align="right">
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="ddlPaymentMethod" InitialValue="SELECT" ValidationGroup="fldGrp1" runat="server" ErrorMessage="Method is required"> * </asp:RequiredFieldValidator>Method:</td>
            <td align="left"><asp:DropDownList ID="ddlPaymentMethod" onselectedindexchanged="ddlPyamentMethod_SelectedIndexChanged" AutoPostBack="true" runat="server">
                <asp:ListItem>SELECT</asp:ListItem>
                <asp:ListItem>American Express</asp:ListItem>
                <asp:ListItem>Discover</asp:ListItem>
                <asp:ListItem>Master</asp:ListItem>
                <asp:ListItem>Visa</asp:ListItem>
                <asp:ListItem>Paypal</asp:ListItem>
            </asp:DropDownList></td>
        </tr>
        <tr>
            <td align="right">
                <asp:RequiredFieldValidator ID="RequiredFieldValidator2" ControlToValidate="txtNameOnCard" ValidationGroup="fldGrp1" runat="server" ErrorMessage="Name on card is required"> * </asp:RequiredFieldValidator>Name of the card:</td>
            <td align="left"><asp:TextBox ID="txtNameOnCard" Width="250px" runat="server"></asp:TextBox></td>
        </tr>
        <tr>
            <td align="right">
                <asp:RequiredFieldValidator ID="RequiredFieldValidator3" ControlToValidate="txtCreditCardNumber" ValidationGroup="fldGrp1" runat="server" ErrorMessage="Credit card number is required"> * </asp:RequiredFieldValidator>Credit card number:</td>
            <td align="left"><asp:TextBox ID="txtCreditCardNumber" Width="250px" MaxLength="20" runat="server"></asp:TextBox></td>
        </tr>
        <tr>
            <td align="right"><asp:RequiredFieldValidator ID="RequiredFieldValidator4" ControlToValidate="ddlExpMonth" InitialValue="0" ValidationGroup="fldGrp1" runat="server" ErrorMessage="Expiration month is required"> * </asp:RequiredFieldValidator>Expiration month:</td>
            <td align="left">
                <asp:DropDownList ID="ddlExpMonth" runat="server">
                    <asp:ListItem Value="0">SELECT</asp:ListItem>
                    <asp:ListItem Value="1">January</asp:ListItem>
                    <asp:ListItem Value="2">February</asp:ListItem>
                    <asp:ListItem Value="3">March</asp:ListItem>
                    <asp:ListItem Value="4">April</asp:ListItem>
                    <asp:ListItem Value="5">May</asp:ListItem>
                    <asp:ListItem Value="6">June</asp:ListItem>
                    <asp:ListItem Value="7">July</asp:ListItem>
                    <asp:ListItem Value="8">August</asp:ListItem>
                    <asp:ListItem Value="9">September</asp:ListItem>
                    <asp:ListItem Value="10">October</asp:ListItem>
                    <asp:ListItem Value="11">November</asp:ListItem>
                    <asp:ListItem Value="12">December</asp:ListItem>
                </asp:DropDownList> /<asp:RequiredFieldValidator ID="RequiredFieldValidator5" ControlToValidate="ddlExpYear" InitialValue="0" ValidationGroup="fldGrp1" runat="server" ErrorMessage="Expiration year is required"> * </asp:RequiredFieldValidator>
                <asp:DropDownList ID="ddlExpYear" runat="server"></asp:DropDownList>
            </td>
        </tr>
        <tr>
            <td align="right">
                <asp:RequiredFieldValidator ID="RequiredFieldValidator6" ControlToValidate="txtSecurityCode" ValidationGroup="fldGrp1" runat="server" ErrorMessage="Security code is required"> * </asp:RequiredFieldValidator>Security Code:</td>
            <td align="left"><asp:TextBox ID="txtSecurityCode" Width="60px" MaxLength="5" runat="server"></asp:TextBox></td>
        </tr>
        <tr><td colspan="2" align="center"><asp:Label ID="lblGatewayMessage" Font-Bold="true" runat="server"></asp:Label></td></tr>
        <tr><td colspan="2" align="center">
                 <asp:Button ID="btnChargeCard" Text="Pay-Now" OnClick="AuthorizedDotNet_Collect" ValidationGroup="fldGrp1" runat="server" />                 
        </td></tr>
        <tr><td colspan="2" align="center">&nbsp;</td></tr>
      </table>
    </div>
    </form>
</body>
</html>
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ncMerchantGateway;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            //- Let's do 10 years of credit card expiration year.
            this.ddlExpYear.Items.Clear();
            this.ddlExpYear.Items.Add(new ListItem("SELECT", "0"));
            for (int i = 0; i <= 10; i++)
            {
                if (i > 0)
                {
                    this.ddlExpYear.Items.Add(new ListItem(DateTime.Now.AddYears(i).Year.ToString(), i.ToString()));
                }
            }
        }
    }
    protected void ddlPyamentMethod_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (ddlPaymentMethod.Text.Trim().ToUpper() == "PAYPAL")
        {   
            PayPalExpress_Collect(sender, e);
        }        
    }    
    //---------------------------------------------------------------------------------
    //- Warning: a merchant account from authorized.net is required.
    //---------------------------------------------------------------------------------
    protected void AuthorizedDotNet_Collect(object sender, EventArgs e)
    {   
        //- Entantiate the class here
        oAuthorizedotnet oGateway = new oAuthorizedotnet();

        //- very important information must be entered here
        oGateway.MerchantAccount_Version = "3.1"; // Authorized.net api version.
        oGateway.AccountHolder_LoginId = "valid login id goes here";
        oGateway.AccountHolder_TransactionKey = "valid merchant transaction key goes here";
        oGateway.AccountHolder_EMail = "merchart email registered with authorized.net goes here";
        oGateway.CompanyCollectorName = "ABC, Inc."; //- Merchant Company name goes here
        oGateway.AuthorizeChargesOnly = true; // Authorized Only (False = {Authorized and Capture})
        oGateway.Country = "USA";
        oGateway.Currency = "USD";
        oGateway.IsTestMode_Environment = false; //- Live 

        //- Amount to be charged
        double dblCharges = 50.00;
        //- Sales Tax if there is any based on NYC sales tax.
        double dblSalesTax = (50.00 * 0.09);
        //- Total to Collect
        double dblTotalCharges = dblCharges + dblSalesTax;

        List<string> lstCCPaymentData = new List<string>();
        //- Please follow this order 0 throught 12
        lstCCPaymentData.Add("Jane"); //-Billing First-Name
        lstCCPaymentData.Add("Doe"); //-Billing Last-Name
        lstCCPaymentData.Add("123 Apple Road"); //-Billing Address
        lstCCPaymentData.Add("New York"); //-Billing City
        lstCCPaymentData.Add("NY"); //-Billing State
        lstCCPaymentData.Add("10040"); //-Billing Zipcode
        lstCCPaymentData.Add("212-555-5555"); //-Billing Telephone
        lstCCPaymentData.Add("jandoe@yahoo.com"); //-shipping email //-7
        
        //- Credit card info. exactly in this order.
        lstCCPaymentData.Add(this.txtCreditCardNumber.Text); //-Credit Card number
        lstCCPaymentData.Add(this.ddlExpMonth.Text); //- Credit card expiration month
        lstCCPaymentData.Add(this.ddlExpYear.Text); //-Credit card expiration year
        lstCCPaymentData.Add(this.txtSecurityCode.Text); //-Credit card security code
        lstCCPaymentData.Add(dblTotalCharges.ToString()); //-Total Amount to be either authorized or capture

        //- Connect with Authorize.net gateway now.
        oGateway.AuthorizeCaptureCharges(lstCCPaymentData);

        //- Return Message.(Display any error message returned from the Authorized.net gateway here)
        this.lblGatewayMessage.Text = oGateway.GatewayReturnedMessage.Trim();
    }
    //---------------------------------------------------------------------------------
    //- Warning: you must have a paypal account with valid email registered.
    //---------------------------------------------------------------------------------
    protected void PayPalExpress_Collect(object sender, EventArgs e)
    {
        
        //- Entantiate the class here
        oPayPalExpress oGateway = new oPayPalExpress();

        //- very important information must be entered here
        oGateway.ECommerce_SiteEMail = "johndoe@aol.com";
        oGateway.ECommerce_SiteUrl = "www.johndoe.com";
        oGateway.Country_Code = "US";
        oGateway.Currency_Code = "USD";
        oGateway.CancelledTransaction_Url = "http://www.johndoe.com/CancelledTransaction.html";
        oGateway.ReturnToECommerce_SiteUrl = "http://www.johndoe.com/Thankyou.html";

        //- Amount to be charged
        double dblCharges = 50.00;
        //- Pay Pal Fee if there is any [Warning: you must let the user know about this fee charges.]
        double dblProcessingFee = (dblCharges * 2.75) / 100;       
        //- Sales Tax if there is any based on NYC sales tax.
        double dblSalesTax = (50.00 * 0.09);
        //- Total to Collect
        double dblTotalCharges = dblCharges + dblSalesTax + dblProcessingFee;
        
        List<string> lstPaymentInfo = new List<string>();
        //- Please follow this order
        lstPaymentInfo.Add("10012A"); //- Item Number
        lstPaymentInfo.Add("Tennis Shoes Size 10"); //- Item Description
        lstPaymentInfo.Add("1"); //- Qty goes here at least 1
        lstPaymentInfo.Add(dblTotalCharges.ToString()); //- Amount to charge goes here
        lstPaymentInfo.Add("20160813104523"); //- Invoice Number goes here
        lstPaymentInfo.Add(""); //- Shipping charges if any goes here otherwise blank
        lstPaymentInfo.Add(""); //- Handling charges if any goes here otherwise blank
        lstPaymentInfo.Add(dblSalesTax.ToString()); //- Sales Taxes if any goes here otherwise blank 
        
        //- This part from here down is not necessary could all be blank ""
        lstPaymentInfo.Add("Jane"); //- First-name
        lstPaymentInfo.Add("Doe"); //- Last-name
        lstPaymentInfo.Add("123 Somewhere in the city"); //- Address
        lstPaymentInfo.Add("New York"); //- City
        lstPaymentInfo.Add("NY"); //- State
        lstPaymentInfo.Add("10005"); //- Zipcode
        lstPaymentInfo.Add("212-555-5555"); //- Telephone
        lstPaymentInfo.Add("janedoe@yahoo.com"); //- E-Mail
        
        //- Go to paypal now and collect
        oGateway.ProcessPayment(lstPaymentInfo);        
    }
}

Add Feedback