user963658
user963658

Reputation: 161

PayPal Donation Button: Adding 'Amount' and 'Currency'

I have the "normal" PayPal donation button. I want to add two multiple choice fields: Amount and Currency as the image below. So the user dont need to put the amount of the PayPal website:

enter image description here

This is the 'normal paypal donation button code':

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="XXXXXXXXXXXXX">
<input type="image" src="https://www.paypalobjects.com/es_ES/ES/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal.">
<img alt="" border="0" src="https://www.paypalobjects.com/es_ES/i/scr/pixel.gif" width="1" height="1">
</form>

I have read on this post that you have to add the following lines, but I dont know where or how to do it. It doesnt work.

<label for="amount">Select the amount you wish to donate:</label> 
<select name="amount" id="amount">
<option value="5.00">$5.00</option>
<option value="25.00">$25.00</option>
<option value="50.00">$50.00</option>
</select>

Can anyone tell me how to do it correctly? Thanks!

Upvotes: 5

Views: 15318

Answers (4)

SgtPooki
SgtPooki

Reputation: 11649

Hosted PayPal buttons allow you to send option variables, but when not for a donation button, be sure that the option values (for drop downs / text boxes) match exactly what is saved in your PayPal account. i.e. do not edit drop down boxes PayPal creates for you.

As for adding drop down boxes / text boxes to a hosted button, perfectly possible, as long as they do not alter the payment amount. So, for creating a hosted donation button that allows you to edit the amount, I advise the following:

  1. Create a buy now button on PayPal, adding the drop down boxes and/or text boxes you wish to add to your donation button. Create this button as if you were creating your donation button, because that is exactly what we will be doing, changing this button into a donation button.
  2. Copy the the whole buy now button HTML code, paste into notepad, or an editor where you can use 'find and replace'.
  3. Replace all occurances of 'buynow' with 'donate' (This usually just changes the image). Also, replace '_xclick' with '_donations'. (to tell PayPal how to generate the checkout page)

You now have a donation button

Upvotes: 6

kaziridwan
kaziridwan

Reputation: 31

I had the similar problem, I solved it by the following steps:

  1. Created a basic 'Buy Now' button (without any options or text fields, just the bare button), made sure i unchecked 'save button at PayPal' before clicking 'create button'.
  2. Then After the button is created, and code is generated, clicked 'Remove code protection' on the top-right where the generated code is shown.
  3. added one additional text input with name 'amount'
  4. replaced value _xclick with _donations (on the input field with name='cmd')

the result is the following code, and it works for me (for now) (you need to add some validations though)

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top">
  <input type="hidden" name="cmd" value="_donations">
  <input type="hidden" name="business" value="XXXXXXXXXXXXX">
  <input type="hidden" name="lc" value="US">
  <input type="hidden" name="item_name" value="Sample Name Here">
  <input type="hidden" name="button_subtype" value="services">
  <input type="hidden" name="no_note" value="0">
  <input type="hidden" name="cn" value="Add special instructions to the seller:">
  <input type="hidden" name="no_shipping" value="2">
  <input type="hidden" name="currency_code" value="USD">
  <input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynow_LG.gif:NonHosted">
  <input type="hidden" name="on0" value="Donate">
  <input type="text" name="amount" value="23.00">
  <input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_buynow_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
  <img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

Upvotes: 3

Vipul
Vipul

Reputation: 325

Please try this :

<head>
    <title>Get Selected Item - DevCurry.com</title>
    <script type="text/javascript"
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js">
    </script>
     <script type="text/javascript" language="javascript">
         $(function () {
             $('#ddl').change(function () {               
                     $('#divone').text($(this).find(":selected").val());
                 });

             });


    </script>
</head>
<body>
    <select id="ddl">
        <option value="Tomatoes">Tomatoes</option>
        <option value="Potatoes">Potatoes</option>
        <option value="Onion">Onion</option>
        <option value="Olives">Olives</option>
    </select>
    <br />
    <div id="divone" />
    <input type="hidden" id="txt" />
</body>
</html>

Upvotes: 0

Rashlien
Rashlien

Reputation: 294

Paypal has specific HTML data requirements when you post to their page. The 'host_button_id' can only be used for one specific value and it's data that paypal holds on their site as a convenience to their clients.

In order to pass variable data you have to pass all the information they need. The 'host_button_id' is no longer needed.

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<!-- Identify your business so that you can collect the payments. --> 
<input type="hidden" name="business" value="[email protected]">
<label for="amount">Select the amount you wish to donate:</label> 
<select name="amount" id="amount">
  <option value="5.00">$5.00</option>
  <option value="25.00">$25.00</option>
  <option value="50.00">$50.00</option>
</select><br/>
<label for="currency_code">Select the currency:</label> 
<select name="currency_code" id="currency_code">
  <option value="USD">USD</option>
  <option value="GBP">GBP</option>
  <option value="CAD">CAD</option>
</select><br/>
<input type="hidden" name="currency_code" value="USD"> 
<input type="image" 
src="https://www.paypalobjects.com/es_ES/ES/i/btn/btn_donateCC_LG.gif" border="0"   
name="submit" alt="PayPal.">
<img alt="" border="0" src="https://www.paypalobjects.com/es_ES/i/scr/pixel.gif" 
width="1" height="1">
</form>

You can find more currency codes here: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_currency_codes

and more html info here: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_buynow_buttons#id08A2G0920QN

Also for the hidden 'cmd' I'm not sure if that will have to change to '_xclick' only. You'll have to test it out and see what works.

Upvotes: 1

Related Questions