Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
Are there any free ready solutions for a simple one-page ecommerce site selling only one product?
Like this one: http://www.brown-leather-belts.co.uk
Updated:
I don't want to use any third-party checkout systems like paypal or google. My customers will pay cash on delivery. So I just want to receive e-mail with customer's credentials.
One-page ecommerce site? maybe you don't need to use any CMS, just write a simple html page
If you want to use a CMS I suggest Drupal based on you requirement
The one mentioned in your post has done as little as possible and there is no need to add any heavy duty e-commerce platform/framework until unless you really want to have a full e-commerce portal.
The example has been created by just making a simple HTML form with one product and they have integrated it with pay-pal to payment option, when you want your user to go to payment gateway (paypal in the example), all you need to pass certain parameters (hidden form fields) to the payment gateway to work perfectly.Here are what has been used in the your mention use-case
<form name="_xclick" action="https://www.paypal.com/us/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="info#timhardy.com" />
<input type="hidden" name="currency_code" value="GBP" />
<input type="hidden" name="item_name" value="The Broadway Leather Belt" />
<input type="hidden" name="amount" value="60.00" />
<input type="hidden" value="http://www.timhardy.com/thankyou.php" name="return" />
<input id="qty-required" type="hidden" name="on1" maxlength="2" value="1" />
// some other data not hidden fields
</form>
This is pretty standard way to communicate with payment gateway and you can find more information about structuring your form by referring the documentation of your payment provider.
For your use-case this is all you have to do
Hope this will help you
Related
I am creating an e-shop builder, i.e. a site where a user creates their site and e-shop. The products are entered into my custom CMS by the person who builds the e-shop. I ask the shop builder to link the shop to their PayPal account by entering their e-mail.
I am currently trying to create a checkout button for my cart.
Problem is, multiple products might have different tax rates, for instance alcoholic beverages might have a 13% tax rate whereas other products have 23%. Is there a way to incorporate this in the post request?
Ideally what I would like to do is this:
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="item_name_1" value="Some product">
<input type="hidden" name="item_number_1" value="1">
<input type="hidden" name="amount_1" value="20.00" />
<input type="hidden" name="tax_rate_1" value="23">
<input type="hidden" name="item_name_2" value="Some alcoholic product">
<input type="hidden" name="item_number_2" value="1">
<input type="hidden" name="amount_2" value="15.00" />
<input type="hidden" name="tax_rate_2" value="13">
<!-- other fields omitted for brevity -->
</form>
The tax_rate_1 and tax_rate_2 fields are hypothetical, I don't know if something like this is possible.
If I RTFM'ed correctly, setting per-item tax rates should be possible if you register the products yourself in the PayPal website interface. This is exactly what I am trying to avoid, because the products are entered by the end user on my CMS.
If what I want isn't possible with a Website Payments Standard button, I would also welcome other ideas on how to forward such orders to PayPal. I am trying to avoid the Express Checkout payment product because if I understand correctly I won't have full control of the cart. I want to have a custom cart and later be able to offer more payment options besides PayPal.
Please help in any way you can! I am a total noob with PayPal.
To answer my own question, what I want is indeed possible and is described in the manual. In my situation where I have built a custom shopping cart, I want to use the Cart upload command of the Website Payments Standard product.
To do a "cart upload" I've set the following fields:
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
The variables are tax_1, tax_2, etc. They need to be specified as currency, not percentage.
I must be going crazy, or I'm completely lost when it comes to understanding what is doable when it comes to PayPal buttons on my site - either way I must apologise if this seems obtuse.
I'm building a custom CMS for my clients, and I'm trying to let them utilize PayPal on their sites by simply entering in either their merchant ID, or their PayPal e-mail address, and then let CMS will do the rest. Ideally:
Client enters merchant ID / PayPal e-mail address into CMS backend
CMS generates "Buy Now" button for client's buyers to click on
Buyer pays on PayPal's site
Buyer gets redirected to client's site
My headache disappears
This seems to be easier said than done. I've read the developer documentation on generating your own buttons, and used that Javascript-based button generator to create a button with an IPN callback, but that's not going to redirect the buyers back to my clients' websites.
Thus my questions: is it at all possible to achieve what I'm looking to do with just my clients' merchant ID's? Is it possible to do it without them having to configure anything additional in their PayPal account settings to avoid set-up issues? Should I be looking at a different PayPal processing mechanism instead of the "Buy Now" button?
I should probably mention that I have a free PayPal account, not a Premium or Business account, but that should be irrelevant to this situation as it's not me that's trying to get paid.
Thanks in advance, and any help is GREATLY appreciated!
create a hidden field named 'return' in your form and put your return URL as the 'value'
A thank you to Billy for his answer, and while researching this topic some more, I've discovered that what I'm looking to do CANNOT be done with the current payment standards buttons on a standard free PayPal account. You can't achieve automatic redirection back to your site from PayPal with the Buy Now button.
As Billy mentioned, you can add return URLs that will give the user the option to click on a link that will return them to your site afterwards (PayPal will add these links to their side of operations themselves). To do this you would need to add the appropriate hidden fields to your PayPal form.
This worked for me:
<form method="post" action="https://www.paypal.com/cgi-bin/webscr">
<input type="hidden" name="button" value="buynow">
<input type="hidden" name="item_name" value="Item 1">
<input type="hidden" name="amount" value="1234.56">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="quantity" value="1">
<input type="hidden" name="env" value="www">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="return" value="http://www.site.com/success">
<input type="hidden" name="cancel_return" value="http://www.site.com/error">
<input type="hidden" name="business" value="your#email.com">
</form>
I hope this helps someone avoid headache and unnecessary documentation scouring!
I have been making a hotel booking software that calculates, for given dates and specifications, a price for staying at a hotel. I'm looking to use Paypal for accepting the payment, but having browsed their website, can't find a solution that seems to be compatible with this.
Since the price is dynamic, it's not like a normal one-price product which Paypal seems to handle best. I need a method where I can send the cost to Paypal, have Paypal charge the customer, then have Paypal send a confirmation back to the website that the payment has processed correctly at which point the booking is complete.
I presume Paypal is capable of handling a dynamically priced item like this. Could anyone point me in the direction of where I should be looking?
I just completed this process in my current website: bpremium.com, basically I built a webservice api for the payment process where it can send commands over javascript until it gets to the last stage, which is where you build the form you send to paypal.
in order to record the payment, you setup another webservice for the notify url and this will catch all the $_POST data and process it into your database.
<form id="form-payment-paypal" action="https://www.paypal.com/cgi-bin/webscr">
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="bn" value="PP-BuyNowBF" />
<input type="hidden" name="charset" value="utf-8" />
<input type="hidden" name="business" value="YOUR_ACCOUNT_EMAIL_ADDRESS" />
<input type="hidden" name="item_name" value="THE PRODUCT NAME" />
<input type="hidden" name="item_number" value="YOUR_RECOGNISABLE_SALE_ID?>" />
<input type="hidden" name="currency_code" value="EUR" />
<input type="hidden" name="lc" value="THE LANGUAGE CODE: es_ES, en_GB, etc" />
<input type="hidden" name="amount" value="<?=$amount+($amount*0.04)?>" />
<input type="hidden" name="return" value="/payment/complete/" />
<input type="hidden" name="notify_url" value="/webservice/payment/notify/paypal/" />
<p class="ac span300">
<input type="submit" class="form-style-bt" value="PAY" />
</p>
</form>
that is basically what we use, you can see we put the $amount + $amount*0.04 because you needed to add a 4% surcharge in spain, where I am. perhaps thats different in your code.
I think the rest of it is pretty self explanatory.
on the /webservice/ url, you need to record everything into your database, it sends you the information whether it succeeded or failed, but it's not a call to your website, you won't see this page, it's a "back channel" call to your website, so it's not your landing page, it's simple the url paypal sends all the raw data to, you're supposed to record it, process it and perhaps send out emails, etc.
then if the user returns to your website, you land on the /payment/complete page, so this page could show the result, whether everything is ok, or something failed.
hope it helps.
Paypal's Direct Integration can handle pricing like this. I'd imagine some of their less involved solutions will too, but I know that DI does.
Edit:
ExpressCheckout appears to also:
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_SetExpressCheckout
I'm trying to setup a registration form for some workshops that last a week. Basically, they can sign up for the workshops individually or the whole week. Depending on what they select, the price will change. I get how to send this information to paypal, however I also want to submit information to my own DB. How would I submit to paypal and file the info into my DB at the same time?
I also want to have a variable that is returned that verifies they have paid so I can mark it in my DB.
Would I just have another page that would put all this info into the DB (once submitted) then also put the info into hidden form fields and then automatically submit to paypal?
Thanks in advance! :)
"When payment is successful your user is returned to your self which is when you can record the payment in the db."
That's exactly what you shouldn't be doing.
Depending on a buyer to return to your website in order to update an order status is the worst thing you can do.
PayPal IPN was designed with especially this use case in mind.
Simply add in
This will ensure PayPal will POST to you whenever the payment has completed. Even if your buyer has already closed his/her browser.
You can use the 'custom' fields to link an IPN POST to a transaction made on your site. For example:
will ensure you get an IPN POST with $_POST['custom'] of '1122334455'. From there, it's simply a matter of making a db call to update the order status to 'paid', or whatever you use to mark it as payment received.
Oh, and don't forget to post the data back to https://www.paypal.com/cgi-bin/webscr?cmd=_notify-validate to validate the IPN POST. More info is available at https://www.paypal.com/ipn/
So I guess you are probably using Website payment standard.
If so the process is like this:.
Users signs up for a particular workshop using your form (select prices, time etc etc)
On submit you process the form (check validation etc)
If you happy with this then you generate a from that is automatically posted to paypal that looks like this:
<body onLoad="document.forms['paypal_auto_form'].submit();">
<p>Please wait</p>
<form method="post" action="https://www.paypal.com/cgi-bin/webscr" name="paypal_auto_form"/>
<input type="hidden" name="rm" value="2" />
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="currency_code" value="AUD" />
<input type="hidden" name="quantity" value="1" />
<input type="hidden" name="business" value="PAYPAL#EMAIL.COM" />
<input type="hidden" name="return" value="http://domain.com/paypal/success" />
<input type="hidden" name="cancel_return" value="http://domain.com/paypal/cancel" />
<input type="hidden" name="notify_url" value="http://domain.com/paypal/ipn" />
<input type="hidden" name="custom" value="1234567890" />
<input type="hidden" name="item_name" value="Paypal Test Transaction" />
<input type="hidden" name="item_number" value="6941" />
<input type="hidden" name="amount" value="197" />
<p><input type="submit" name="pp_submit" value="Pay Now!" /></p></form>
</body>
The values you of course customize to what you want. Look at Appendix A of the paypal documentation for the variables. You can also add your own log with cpp_header_image or something like that.
The users is taken to paypal to process payments
When payment is successful your user is returned to your self which is when you can record the payment in the db. You might use some for of key or cookie variable to track the payment they have made.
You probably want to use the IPN to double check that it was successfully paid.
If all this is too hard just use http://wufoo.com/ and add the payment module to the form.
I was hoping someone could help regarding modifying a subscription price.
I have a social networking site In which you originally could subscribe to a standard or premium account which varied in what applications where active in your account.
My client now whats to scrap the 2 subscriptions and be able to give a choice of what applications the user wants to use and charge a subscription cost for the total cost for the applications specified.
I have a 'bolt-ons' page in which the user clicks a checkbox associated with each application, which then processes the payment and the IPN makes modifications to their account which works fine.
But when a user decides they want more or less applications and fills out the form again, I can't figure out how to modify their payment.
when I add the modify variable to the html form and continue the payment, it brings me to a radio form with other subscriptions from different projects.
I simply want to modify the total outgoings of the users payments. It is the user the process's the form, there is nothing illegitimate going off, just simply looking for the user to be able to change the subscription rate which depends on what applications they want active.
here's my html form:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post"
style="margin:20px;">
<input type="hidden" name="cmd" value="_xclick-subscriptions">
<input type="hidden" name="business" value="******************************" />
<input type="hidden" name="item_name" value="************************ Application Bolt-on's" />
<input type="hidden" name="return" value="http://www.***************.co.uk/?navigation=home">
<input type="hidden" name="cancel_return" value="http://www.***************.co.uk/?navigation=home">
<input type="hidden" name="item_number" value="1" />
<input type="hidden" name="currency_code" value="GBP" />
<?php
if( isset( $post['mod'] ) ) {
echo "<input type=\"hidden\" name=\"modify\" value=\"2\" />";
echo "<input type=\"hidden\" name=\"a3\" value=\"00.02\" />";
}else{
echo "<input type=\"hidden\" name=\"a3\" value=\"00.01\" />";
}
?>
<input type="hidden" name="p3" value="1" />
<input type="hidden" name="t3" value="M" />
<input type="hidden" name="src" value="1" />
<input type="hidden" name="sra" value="1" />
<input type="hidden" name="sra" value="1" />
<input type="hidden" name="no_note" value="1" />
<input type="hidden" name="custom" value="<?php echo $custom_str; ?>" />
<input type="image" src="https://www.paypal.com/en_US/GB/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.paypal.com/en_GB/i/scr/pixel.gif" width="1" height="1">
</form>
I have read many articles and non touch on this subject in a sense of whether it can or cannot be done so please don't send me links the the paypal site unless it is the exact answer which I may have missed.
Any help is much appreciated,
Regards,
Phil
Hate to give such a partial non-answer to your question, but I think the information you need might be in the following blog post http://talklikeaduck.denhaven2.com/2007/09/02/how-to-cure-the-paypal-subscription-blues (Link is broken, but left here for attribution purposes)
From that article:
Another complexity of PayPal
subscriptions is how to allow users to
modify subscriptions. In fact this is
where I came in on this particular web
site. They had been offering only
monthly subscriptions and wanted to
offer an annual subscription with a
discount. The key here is to ensure
that you tell PayPal that you are
modifying a subscription rather than
creating a new one. The PayPal
documentation describes the ‘modify’
attribute which is to be passed with
the subscription signup request post
to paypal. A value of ‘1’ for this
attribute indicates that it will
modify an existing subscription, or
create a new one if there is no
existing subscription. Don’t beleive
this. My initial testing with the
PayPal developer sandbox seemed to
indicate that this worked. In practice
though, once deployed, it always
seemed to create a new subscription,
which meant that when a user upgraded
a monthly subscription to an annual
one, she ended up with both.
The fix was to use a value of ‘2’ for
modify when the user had an existing
subscription, and not to use the
modify attribute at all otherwise.
The article is dated 2007 and I would be careful to trust it as a current reference, but it might be a good starting point.