create buynow button for sandbox account - paypal

I'm new to paypal development and am trying to create a BuyNow button in the sandbox to enable me to test my application in a non production environment. If I create a button from my normal account it directs me to the live paypal site but if I try to create a button in the sandbox, the button creation page is always on the live box and I can't find anyway of creating a button in the sandbox using sandox test accounts, that then allows me to make test payments in the sandbox. Please help.

The link in the sandbox is broken and redirects you to the live site. When this happens, sometimes you can just add sandbox into the URL to correct the issue. So if you click the button and it takes you to https://www.paypal.com/button/blah_blah, you would just need to change it to https://www.sandbox.paypal.com/button/blah_blah. Another option would be to create a non hosted clear text button from your live paypal account and then just modify the URL to point to the sandbox instead of the live site. So instewad of the following:
<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
You woudl just change it to
<form target="paypal" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
And then you would update the business variable to reflect the email address of your test sandbox seller account.
The last option for creating a button, would be not to log into your account but use the BMCreateButtom API call. Keep in mind this could be a little bit more work then you may want to do if you are only familar with HTML.

I faced the same problem..
when i click the "create payment buttons for your website" it redirects to this link www.paypal.com/us/webapps/mpp/standard-integration which is live paypal site. your test account does not exist there so you can not do the rest with the sandbox test account..
i solved it the follwing way..
after redirect to above link... you can edit the link.
put "sandbox." in the link. The edited link will be
www.sandbox.paypal.com/us/webapps/mpp/standard-integration
now you can create your customize button.. the generated HTML will be something like this
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="5GW6UJKLK47R6">
<input type="image" src="https://www.sandbox.paypal.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.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

I can't comment because my reputation isn't high enough, but I thought it was important to add this element to Sadid Khan's correct answer. When trying to change the address to the sandbox you need to add the 'www' in front of the subdomain.
sandbox.paypal.com will redirect to the frontpage/homepage for the sandbox.
www.sandbox.paypal.com will properly run the purchase emulation

You can set data-env="sandbox" to create a button which will redirect you to sandbox website.
<script type="text/javascript" charset="utf-8"
src="/assets/paypal-button.min.js?merchant={merchant-email}"
data-button="buynow"
data-name="My product"
data-amount="1.00"
data-env="sandbox"
></script>

In your sandbox account:
Click the Gear icon (Profile) on top right.
Then choose 'Business Setup',
Then 'On your website'
Then Option B to add a payment payment button.
You can choose between 'Buy Now' and 'Pay Now' in the advanced setting of the button.

Related

PayPal ignoring "return" variable on PayPal Subscribe Button, even though "Auto return" option is enabled

PayPal is ignoring my return variable on PayPal Subscribe Button, even though "Auto return" option is enabled.
At first, I did not have the "Auto return" option enabled, and PayPal just showed a receipt page after the user subscribed, with no link back to our site, despite passing the return variable with our receipt page.
Then we enabled the "Auto return" option and was forced to enter some URL, so we created a generic page for PayPal to hit to verify the page exists, which I understand is required to enable the feature.
However, now users are able to subscribe and they see that awesome "If you are not redirected... in 10 seconds... click here" message, which takes the user to the static return page we setup in the "Auto return" settings, not the dynamic URL we passed to PayPal using the return variable.
Here's what our button code looks like:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="MYHOSTEDBUTTONID">
<input type="hidden" name="custom" value="MyCustomData">
<input type="hidden" name="return" value="https://www.example.com/secure/page/receipt?specialId=1234">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_subscribeCC_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>
Did PayPal break this feature or am I doing something wrong?
For hosted buttons, the return doesn't belong there, it should be in the Advanced Variables section of step 3 of creating the button.
These HTML buttons are deprecated, they are from ~18 years ago and some new PayPal accounts can no longer create them (my understanding is all will not be able to create them soon enough.) The recommended integration method is a "Smart Subscribe" button, which uses JS and a client ID to identify the receiver account. To be notified of completed payments with a smart subscribe button, create a listener URL on your server for the webhook event PAYMENT.SALE.COMPLETED (that is the only subscription webhook event that is truly useful, all others are of limited utility). As for redirecting a Smart payer, if you need to do that you can add a window.location.href redirect from the onApprove function. Modern websites don't redirect unless they absolutely need to, consider using this function to display whatever message in the DOM w/o a redirect. But don't depend on sending data to a server from the client onApprove, as for whatever reason the client may never notify the server. The PAYMENT.SALE.COMPLETED webhook is the only reliable way to get notifications. For reconciliation, there is a similar custom_id variable available alongside the plan_id when creating the subscription in the createSubscription function.

Finding PayPal Buy Now Button redirection link

I am trying to make a program that can scrape a site and search for PayPal buy now button redirection links.
I can scrape the site but I realize that when you hit the button, it does not contain the URL that you will be redirected to make purchase. How would I go about finding the button redirection link, or even how would I have the site scrape and click on the button to at least have the redirect site appear? Would I somehow have to make the scraper hit the form and submit?
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top"><input name="cmd" type="hidden" value="_s-xclick" /><br />
<input name="hosted_button_id" type="hidden" value="PUEGWVJXLH4FQ" /><br />
<input alt="PayPal - The safer, easier way to pay online!" name="submit" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" type="image" /><br />
<img loading="lazy" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" alt="" width="1" height="1" border="0" /></form>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">_______________________________________________________</p>
</form>
Go to https://www.paypal.co/buttons, log in, and (after logging in) create a new simple Buy Now button with no dropdown options nor text fields (which require HTML) -- and once the button is created and you are viewing the generated code, switch over to the "E-mail" tab above it.
The link in that E-mail tab will have a hosted button ID, which you can swap out / use to dynamically generate the Buy Now "redirection link" you're asking for. When loaded in a browser, that link will initiate a checkout, same as clicking the button.
There are several other types of PayPal payment buttons, including:
Unhosted Buy Now buttons (which are not saved at PayPal, and do not have a hosted_button_id). These buttons use a redirection link or form post that will include HTML variables to set up the payment.
Newer smart buttons, generated via https://www.paypal.com/buttons/smart or similar -- these do not have redirection URL, and instead use JS to open a mini window for payment approval.
Another way to construct a working URL is to begin with the form's action parameter https://www.paypal.com/cgi-bin/webscr, add ? to begin a GET string, and add all the inputs from the form that have a name, in with the syntax name=value, separated by '&' .... so for example:
https://www.paypal.com/cgi-bin/webscr?hosted_button_id=PUEGWVJXLH4FQ&anothername=anothervalue&...

how to create a payapal's payment form?

I want to create a form for paypal payment. like this form.
what i want is to make a simple paypal button. after clicking on that button this form will appear. but the problem is when ever I create get payment button , from my paypal account I end up with this kind of form.
how to get that form in paypal? thanks in advance.
in addition i got a project code. this code is a paypal button link up with a form like my first image.
<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="ZEFZFYBY2SZB8">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_paynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
when i make a button from my paypal account. after click that button i end up with the form like my second image. how do i create the form like first image.
Please Describe what kind of Script or CMS you are using is it PHP or HTML or .... ?
for Creating a button Login to your Paypal Account on Seller preferences and make the botton or find information Here
if you are using Wordpress and Woocommerce you can install plugins Here
if you are using PHP Scripts you can find Code Integration Here
UPDATE
Regarding your Type of Form you wanted you can download either one of the plugins written by Scott Paterson Below
https://en-gb.wordpress.org/plugins/contact-form-7-paypal-add-on/
https://en-gb.wordpress.org/plugins/easy-paypal-donation/
The First Plugin is the Form that you referred on your comments below
just leave the price and form empty
See following link which guides you to get started with using Paypal Payment Gateway :
https://phppot.com/php/paypal-payment-gateway-integration-in-php/

Does Paypal support subscribe in iframe (templateD)?

I have a Japan Plus account, I am just surprised that subscribe doesn't works with iframe (templateD)
I did it like this:
Create a subscribe hosted button with BMCreateButton api (including templateD as params)
Then use some codes like below in the website, but will get a error said in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
.
<iframe name="hss_iframe" width="570px" height="540px"></iframe>
<form name="form_iframe" target="hss_iframe" action="https://securepayments.paypal.com/cgi-bin/acquiringweb" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="encrypted" value="BEGIN PKCS7......END PKCS7">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_auto_billing_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
<img alt="" border="0" src="https://www.paypal.com/en_GB/i/scr/pixel.gif" width="1" height="1">
</form>
<script type="text/javascript">
document.form_iframe.submit();
</script>
I have tried other button types like Payment, and it do works well, so my question is:
Does paypal support subscribe payments in iframe? (am I doing something wrong?)
If doesn't support it, what's the most seamless way to do this?
you cannot create a recurring profile through the Hosted Payments endpoint by passing "Payments Standards" variables.
The PayPal system will automatically do a 302 redirect to the webscr endpoint (if the browser were to load the page outside of the iframe, with X-Frame-Options set, it refuses to load at all).
You cannot create recurring payments profiles through HSS (hosted sole solution). This product will merely take credit card payments from your site.
Please refer to https://www.paypalobjects.com/webstatic/en_JP/developer/docs/pdf/paymentsplus.pdf for supported integration steps.
======
If doesn't support it, what's the most seamless way to do this?
--> either use Subscription "Buttons" - it looks like you've already tied into the Button Manager API enough to programmatically create them. Just make sure you're actually submitting the data to the paypal.com/cgi-bin/webscr endpoint.
Furthermore, the more "flexible" (in terms of customizability) approach is to utilize Express Checkout - recurring payments.
You basically do a SetExpressCheckout Call, get a token, then redirect the buyer to PayPal to authorize the Recurring Payment. The buyer is sent back to your page and you can then use the CreateRecurringPaymentsProfile Call and pass the authorized EC token to create the Recurring Profile.
For more info, I'd suggest having a look at https://developer.paypal.com/webapps/developer/docs/classic/express-checkout/integration-guide/ECRecurringPayments/

How to create a Paypal Buy Now button for a mobile checkout from a mobile website?

I have a mobile web page with a Paypal Buy Now button and I want it to send users to a mobile friendly Paypal checkout. I'm getting really confused with documentation about for checkouts in mobile apps, but all I want is a mobile browser checkout. Can I just add an extra param to a buy now button? I've been looking at this but I think perhaps this is for mobile apps. http://code.google.com/p/paypalmobile/
<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="xxxxxxxxxxx">
<input type="image" src="https://www.paypalobjects.com/en_US/GB/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_GB/i/scr/pixel.gif" width="1" height="1">
</form>
I've not found a way to use a Buy It Now button but have managed to get it working by utilising the Paypal SetExpressCheckout method in the Express Checkout API (https://api-3t.paypal.com/nvp). This returns a Token which you use to redirect to Paypal
https://www.paypal.com/webscr?cmd=_express-checkout&token=RETURNED_TOKEN
If you use Express Checkout Paypal automatically uses mobile checked when accessed by a mobile.
https://cms.paypal.com/cms_content/US/en_US/files/developer/PP_ExpressCheckout_IntegrationGuide.pdf
for mobile billing please change the url with cmd hidden
header('location:https://mobile.paypal.com/wc?t='.$querystring);
it is device recognize URL when u are open in dektop it differnt look and mobile showing like express checkout on top showing it's amount