How to implement a quarterly subscription PayPal button - button

What I want to do is to have a PayPal subscription button on my website, with a quarterly rebilling option.
I know there is a way to do this with non-hosted button code, but I am wondering if there is any way to implement this using PayPal hosted subscription buttons (for security). I'd like to avoid having to use an unhosted button code with encryption and all the script work that entails.

Paypal has an Advanced Subscription Button that integrates a few additional hidden fields to customize the billing period and frequency.
Sample Code
<form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick-subscriptions">
<input type="hidden" name="business" value="me#mybusiness.com">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="no_shipping" value="1">
<input type="image" src="http://www.paypal.com/en_US/i/btn/btn_subscribe_LG.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
<input type="hidden" name="a3" value="50.00">
<input type="hidden" name="p3" value="3">
<input type="hidden" name="t3" value="M">
<input type="hidden" name="src" value="1">
<input type="hidden" name="sra" value="1">
</form>
The above code will create a recurring payment of $50.00 every 3 months (quarterly). The following fields affect the billing amount, period and frequency.
a3 - amount to billed each recurrence
p3 - number of time periods between each recurrence
t3 - time period (D=days, W=weeks, M=months, Y=years)

Related

I want to replace my paypal email address with some text on Paypal Checkout

I have a problem with PayPal custom checkout. I want to replace my PayPal email address on the custom shopping cart checkout form:
Here is my code:
<form action="https://www.paypal.com/us/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="yourmail#gmail.com">
<input type="hidden" name="item_name" value="Test">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="amount" value="0.00">
<input type="hidden" name="quantity" value="2">
<input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-but01.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
</form>
How can I do this in Wordpress?
Upgrade the receiving PayPal account to a Business account, and choose a business name.
See https://www.paypal.com/gf/smarthelp/article/how-do-i-upgrade-from-a-personal-premier-account-to-a-business-account-faq1317

Paypal integration questions

I have some code that i wrote many years ago to integrate Paypal within my site. So a user adds multiple products to their cart and then checks out which then automatically takes the user to the paypal site.
I decided to revisit it today and created the following HTML
<form name="myForm" method="POST" action="https://www.sandbox.paypal.com/cgi-bin/webscr" >
<input type="hidden" name="cmd" value="_cart"/>
<input type="hidden" name="business" value="myemail-facilitator#myDomain.com"/>
<input type="hidden" name="item_name" value="Product 1"/>
<input type="hidden" name="amount" value="500.00"/>
<input type="hidden" name="quantity" value="1"/>
<input type="hidden" name="upload" value="1"/>
<input type="hidden" name="currency_code" value="GBP"/>
<input type="hidden" name="return" value="http://XX/paypal/completed.aspx"/>
<input type="hidden" name="rm" value="2"/>
<input type="hidden" name="cancel_return" value="http://XX/paypal/Cancel.aspx"/>
<input type="hidden" name="shopping_url" value="http://XX/paypal/MyShop"/>
<input type="hidden" name="notify_url" value="http://XX/paypal/MyShop/checkout.aspx"/>
<input type="hidden" name="lc" value="GB"/>
<input type="hidden" name="image_url" value="http://XX/paypal/shop.gif"/>
<input type="hidden" name="no_note" value="1"/>
<input type="hidden" name="invoice" value="ZZZ1234567890"/>
<script type="text/javascript">document.myForm.submit();</script></form>
This came up with an error "Error Detected Your shopping cart is empty".
Logged into my sandbox account and no error listed to determine what ive done wrong.
Googled around which suggested to change _cart to _xclick - which resolved the issue, however when i read the documentation at
https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/
I dont understand why _cart didnt work? Is there a more appropriate way to do this or _xclick fine with my site setup as described above?
For multiple items i was looping the item_name and amount and adding each value, but this doesnt work the way i expected i.e. I've seen sites where they display each product, quantity and amount for each product in the cart and then total - where did i go wrong?
Finally once a transaction is complete i have set up the IPN value to send the details to my site..... Do i need the site to be using https in order for this to work or would http work?
I tried searching for these answers but some are quite dated or using 3rd part components.
Please make below changes to your HTML codes to make your form work again.
<input type="hidden" name="item_name" value="Product 1"/>
<input type="hidden" name="amount" value="500.00"/>
<input type="hidden" name="quantity" value="1"/>
↓↓
<input type="hidden" name="item_name_1" value="Product 1"/>
<input type="hidden" name="amount_1" value="500.00"/>
<input type="hidden" name="quantity_1" value="1"/>

Is it possible to call a function once the payment is done through Paypal form?

I want to run a function in the background once the payment is done through paypal.
Here is my form:
<form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="email">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="item_name" value="{{item.title}}">
<input type="hidden" name="amount" value="{{item.price}}">
<input type="image" src="http://www.paypalobjects.com/en_US/i/btn/btn_buynow_LG.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
</form>
I followed Paypal tutorial but they didn't show how to run a function IF the payment is done successfully.
is it possible to do so?
Once a payment is finished, Paypal will send you a GET parameter. This way you can run an if statement and see if there is a GET or not and then run your function.
if (!empty($_GET)) {
// Your function
}

How to get Transaction Id from sandbox paypal

This is my question .
<form name="_xclick" action="https://www.sandbox.paypal.com/in/cgi-bin/webscr" method="post" style="opacity:0;height:42px;background:red;left:0;top:0; width:100%;margin:0px;position:absolute;">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="walapaybusiness#gmail.com">
<input type="hidden" id="paypal_text" name="return" value="${request.serverUrl}/marketProducts/productBuySuccess?productId=1&flag=10"/>
<input type="hidden" name="cancel_return" value="${request.serverUrl}/dudewala/paymentSuccess" />
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="item_name" value="Dude dollar">
<input type="hidden" name="amount" value="10">
<input class="paypalBtn" type="image" style="height:42px;width:100%; " src="http://www.paypal.com/en_GB/i/btn/x-click-but01.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
</form>
This is my form for paypal sandbox mode and this is my success url from paypal
${request.serverUrl}/marketProducts/productBuySuccess
Here is it possible to attach transaction id from paypal?
May be the expected URL will look like
${request.serverUrl}/marketProducts/productBuySuccess?transactionId=123456789000
So I can fetch the transaction id as params.transactionId
I am doing this in grails so It will be great if you can give my answer in grails
Thanks in advance :)
PayPal send you Transaction ID with the txn_id name. You can also use others, like payer_id, etc...

Passing custom PayPal payment fields

So I'm trying to implement a PayPal payment field on my Wordpress site that has two custom fields where users can type in.
One, being invoice number
Two, being the price.
I found some code (untested) from another post here on stackoverflow, that is working as of 2013 (last post of the thread).
Passing price variable to PayPal with custom button
It has a text box where users can type in their custom price, and it gets passed to PayPal. I need to edit the form to allow the invoice number passing too. Does anyone have any idea how to do this? Never used PayPal API before. All help is greatly appreciated, thanks!
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="XXXXXXXX">
<input type="hidden" name="lc" value="US">
<input type="hidden" name="item_name" value="Payments">
<input type="hidden" name="amount" value="100.00">
<input type="hidden" name="currency_code" value="USD">
<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="rm" value="1">
<input type="hidden" name="return" value="http://YOURSITE.com/">
<input type="hidden" name="cancel_return" value="http://YOURSITE.com/payments.html">
<input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHostedGuest">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
I ended up working it out.
I had to change type="hidden" for the item_name to type="text".
Very simple fix, wasn't expecting it to be this easy!

Resources