I'm building a paypal module for a shopping cart in a shared hosting account.
Here's the scenario:
A Customer adds a $100.00 item into the cart, before hitting the checkout button he goes into the browser's inspector and changes the price of that item to $1.00, hits the checkout button (uploads the cart to paypal) and now paypal shows a $1.00 order in their checkout screen, then the customer pays us $1.00 for that item.
When this happens my script saves the order with a status of "Pending" and an email is sent to the site's admin notifying him that a payment was received for an order with a mismatching price. The admin logs into paypal to confirm, once he sees the price is not the same as the price we charge for that product, he cancels the paypal payment and voids the order in the backend.
My Question:
Is this the right way to handle tampered orders or is there a way i can notify PayPal as soon as i get the IPN with the invalid information so PayPal doesn't even take that payment?
Again because this is a shared hosting account I can't use the cart encryption that paypal suggests (because i can't use openssl on the shared hosting).
Thanks.
I handle payments exactly the same way, there is no better way to do that as paypal will always use the value defined on your website - which can easily be changed with TamperData or even with Inspect Element.
Related
I am working with Magento V1.9.1.1.
I have entered the correct details for the sandbox account into the Website Payments Standard (Includes Express Checkout) "configure" area and enabled the solution.
When I put an item in the cart and pay with paypal, it takes you away to a paypal "pay site" to which I log in with the test buyer account and pay for the transaction. When I click the continue button it takes me back to my website to a review order page in which the user has to select a shipping method.
Once selected you then click the "place order button" it takes you to:
http://www.domain.co.uk/checkout/cart
with a message saying:
Unable to initialize Express Checkout.
You have no items in your cart.
Note: The purchase is visible within the paypal developer sandbox. Also the order is placed correctly within Magento Sales->Orders.
It just seems to not take the user to the right place.
Any help on this would be appreciated.
Unable to initialize Express Checkout.
This error is thrown when the following condition is true:
if (!$quote->hasItems() || $quote->getHasError())
It seems that the order is placed before the submit button is clicked and so the cart becomes empty and !$quote->hasItems() becomes true
I'm using Website Payments Standard account and I have integrated Add to Cart button and Subscription button in my website. Few payments were made by my clients. But upon downloading my transaction history, I cannot view/retrieve the Receipt ID for certain payments, no matter if it is through Add to Cart or Subscription. Few transactions shows blank field for receipt ID. Can anyone guide me in finding out the problem? Is it anything related to my Website Payments Standard account? Or anything related to my client's account?
The PayPal IPN variable reference states the following for the receipt_id parameter.
Unique ID generated during guest checkout (payment by credit card
without logging in).
Sounds to me like you must have some payments coming through via guest checkout and others coming through as actual PayPal payments, so those wouldn't have a receipt_id.
The Problem i am facing is whenever I place order lets suppose payment method is PayPal I am redirected to PayPal website . When i press back from browser my stock gets deducted and i cant see order in My Account also my Cart goes empty . At admin side order is listed as Pending Payment I have to cancel that in order to restore my payment.
Its magento's basic functionality in order to convert such customers into potential ordering ones though calling or emailing.
Below listed plugin would help you :
http://www.magentocommerce.com/magento-connect/magento-pending-orders-automatic-cancelation-with-stockreleaser-by-soon.html
Try PayPal Express instead. The order only will get created in Magento once paid in PayPal. Very easy to implement and saves a big headache of trying to deal with all the side effects of the PayPal Standard setup.
I wrote my own shopping cart [in PHP] a couple of years ago that uses PayPal's Classic API "Payments Standard" -- specifically the "upload" command to send the contents of the shopping cart to PayPal. Now I want to add the option to pay for an item with installments and I want that to integrate with the shopping cart process.
In other words, I want the customer to be able to put Item A into the cart and select a single payment option, and then also put Item B in the same cart but select an installments option for that item. Then, when they hit the "Check Out With PayPal" button, I want the Item A and Item B to be processed in the same transaction. My cart also has a feature that allows the customer to enter a coupon code.
I have spent hours running in circles though the PayPal API documentation and I can't find a solution that seems to cover everything that I need:
No monthly payment (I'm too small to absorb monthly payments, so it must be a fee-per-transaction service).
Ability to process single payment items AND installment items from the same cart.
Ability to accept a discount/coupon and apply it to the transaction at the PayPal side.
All collection of payer's shipping address, payment information, etc, done at the PayPal side.
Determine if sales tax is required at the PayPal side.
Provide an IPN type response.
I'd rather not install code on the server [that needs to be maintained or reinstalled if I switch hosts].
Can anyone point me to a solution that could cover all of this?
I was looking at the Adaptive Payments solution but it looks like it I would have to determine whether to charge sales tax (and perhaps have to collect the payer's shipping address info, which I want to avoid). I like everything else about Adaptive Payments. Does anyone know if it will be as "nice" about handling the payer's information, as "Payments Standard" does?
Using PayPal Express Checkout (via WooCommerce & the WooThemes PayPal Express Checkout plugin, on the e-mail that my client receives on payment (from their client), the description of the product is blank. Ideally I would want it to display the product name or at least item number, so the correct product can be shipped without matching up emails from PayPal & WooCommerce.
I'm pretty sure WooCommerce is sending the information to PayPal, because when I go to purchase an item, when I click the PPE button, it will show item names & prices in PayPal (had to blur specific item names)
I just need some way to identify which products to send out, from the 'You received a payment of X from Y' email PayPal sends out - I have taken a look in the plugin but all information looks like it is being sent through, so I'm not sure this is on the plugin side, I looked on PayPal developer support area and they linked to here, so I figured it would be a lot faster response than waiting for an e-mail from PayPal, and I am currently waiting a reply from WooThemes in regards to the plugin
As a side note, this also happens when the sandbox mode is enabled.