Click here to Skip to main content
15,122,406 members
Please Sign up or sign in to vote.
3.50/5 (4 votes)
See more:
Hi I am really struggling with my code to add paypal sandbox to my page.

So far I have managed to get my Checkout button to direct me to the paypal page where payment occurs.

How ever I have tried to modify my add to cart button to add to the paypal cart without any success what so ever.

Here is my HTML:

ASP.NET
 <asp:DataList ID="dlProducts" runat="server" BackColor="White" 
        BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" CellPadding="4" 
        GridLines="Both" RepeatColumns="3" 
       >
        <ItemTemplate>
            Product Name:
            <asp:Label ID="lblProductNane" runat="server" Text='<%# Bind("ProductName") %>'></asp:Label>
            <br />
            <asp:Image ID="Image1" runat="server" GenerateEmptyAlternateText="True" 
                Height="100px" ImageUrl='<%# "~/ProductImages/"+Eval("ImageName") %>' 
                Width="100px" />
            <br />
            Price:
            <asp:Label ID="lblListPrice" runat="server" 
                Text='<%# Eval("UnitPrice", "{0:C}") %>'></asp:Label>
            <br />
            Qty: 
            <br />
            <asp:LinkButton ID="lnkDetails" runat="server" 
                CommandArgument='<%# Bind("ProductID") %>' onclick="lnkDetails_Click">Click For Details</asp:LinkButton>
             
            <br />
            <form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<asp:HiddenField Value="lblProductName" runat="server" />
<asp:HiddenField Value="lblListPrice" runat="server" />
<asp:ImageButton AlternateText="PayPal — The safer, easier way to pay online." ID="btnBasket" runat="server" CommandArgument='<%# Bind("ProductID") %>' OnClick="btnBasket_Click" ImageUrl="https://www.paypalobjects.com/en_GB/i/btn/btn_cart_LG.gif" />
<img alt="" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1" I>
</form>
                        
        </ItemTemplate>
        <SelectedItemStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
    </asp:DataList>


Here is my code behind:

C#
    protected void btnBasket_Click(object sender, System.EventArgs e)
    {
        Response.Write(PaypalPostForm());

        PayPalPostScript(Page);
    }

     public string PaypalPostForm()
     {
        string PostURL = "http://www.paypal.com/cgi-bin/webscr";
        string cmd = "_cart";
        string Upload = "1";
        string BusinessEmail = "";
        string Currency = "GBP";
        string method = "post";
        string shipAmount = "4.95";

        StringBuilder ppForm = new StringBuilder();
        ppForm.AppendFormat("&lt;Form name='frmPP' id='frmPP' action='{0}' method='{1}'>", PostURL, method);
        ppForm.AppendFormat("&lt;input type='hidden' name='shipping' value='{0}'>", shipAmount);
        ppForm.AppendFormat("&lt;input type='hidden' name='cmd' value='{0}'>", cmd);
        ppForm.AppendFormat("&lt;input type='hidden' name='upload' value='{0}'>", Upload);
        ppForm.AppendFormat("&lt;input type='hidden' name='business' value='{0}'>", BusinessEmail);
        ppForm.AppendFormat("&lt;input type='hidden' name='currency_code' value='{0}'>", Currency);
        ppForm.AppendFormat("&lt;input type='hidden' name='item_number_1' value='{0}'>", 1);
        for(int i = 0; i<this.dlProducts.Items.Count; i++)
        {
            Label lbldes = this.dlProducts.Items[i].FindControl("lblProductNane") as Label;
            string Description = (lbldes.Text).ToString();
            Label lblPri = this.dlProducts.Items[i].FindControl("lblListPrice") as Label;
            string Price = (lblPri.Text).ToString();
           ppForm.AppendFormat("&lt;input type='hidden' name='item_name_1' value='{0}'>", Description);
            ppForm.AppendFormat("&lt;input type='hidden' name='amount_1' value='{0}'>", Price);
        }
        ppForm.AppendFormat("&lt;input type='hidden' name='quantity_1' value='{0}'>", 1);
        ppForm.Append("&lt;/form>");
        return ToString();

    }

     private void PayPalPostScript(System.Web.UI.Page Page)
     {
         //This registers Javascript to the page which is used to post the PayPal Form details
         StringBuilder strScript = new StringBuilder();
         strScript.Append("&lt;script language='javascript'>");
         strScript.Append("var ctlForm = document.getElementById('frmPP');");
         strScript.Append("ctlForm.submit();");
         strScript.Append("&lt;/script>");
         ClientScript.RegisterClientScriptBlock(this.GetType(), "PPSubmit", strScript.ToString());
     }

};
Posted
Comments
Hasham Ahmad 8-Feb-13 11:55am
   
where is the problem occurs?
Member 9599975 8-Feb-13 12:04pm
   
Hi when i press checkout on the form it correctly directs me to paypal but to an empty basket.

I would expect "add to cart" to send the details of the cart item selected but doesnt.
   
And?!
—SA

1 solution

From you question I assume that you are trying to connect to Sandbox. So, please use SandBox URL. Namely, this, [action="https://www.paypal.com/cgi-bin/webscr"], is for Paypal real account.

If you are going to test your website against the Sandbox, change it as:
[action="https://www.sandbox.paypal.com/cgi-bin/webscr"].
   
Comments
Member 9599975 8-Feb-13 17:03pm
   
Thanks but this still hasn't worked.

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




CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900