We are using Paypal express Checkout using onepage checkout option in Magento. Its working fine and now, I am trying to use the same inside "Ship to multiple address" option.
Based upon my research, I am not sure whether it is possible or not.
So, My question is - Can we use Paypal Express checkout in case of Multishipping option?
I tried to enable (by setting the below data member to True)
protected $_canUseForMultishipping = false;
in Payment method model class which result in display of the payment method in the payment section but never redirected to Paypal window instead displayed error on clicking place order:
PayPal gateway has rejected request. Invalid token (#10410: Invalid token).
Any quick help would be highly appreciated, Thanks.
This is actually not supported and many others have had this same problem.
See:
https://magento.stackexchange.com/questions/16628/multiple-checkout-payment-gateway-redirection-issue/16644#16644
Related
I checked the data return from paypal using dd() in laravel, but there is no phone number listed there. How can I get that data?
I'm using this package: https://github.com/paypal/PayPal-PHP-SDK
Screenshot:
Update - Added required phone in paypal settings
Solution
Use $payment->payer->payer_info->phone to access the phone number.
The $payment variable is a Payment class like the screenshot above.
I cannot guarantee this will be a valid solution, but PayPal says in its Express Checkout documentation that
Note: PayPal returns a contact phone number only if your Merchant Account Profile settings require that the buyer enter one.
So, start looking into the PayPal account, into your Merchant Profile settings: you should be able to find the option at one of the following the URL
https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-website-payments
https://www.paypal.com/businessmanage/preferences/website
Someone still have issue on receiving the info and got them by making a subsequent call to /v1/payments/payment/PAYMENT_ID.
(the above answer has been edited to simplify retrieving of all the info present in comments)
I got following from PayPal api book page 45.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 9 years ago.
Improve this question
I have magneto website where various online goods are being sold. I have set up PayPal Website Payments Standard in admin section with PayPal account details is already activated.
When client successfully place the order and paid the bill with PayPal, I got "Pending Payment" status in order details page in admin. Actually order has been processed and PayPal accept the payment.
My question is why "Pending Payment" is showing in admin even payment has bee successfully proceed.
The latest PayPal integration changed the order processing schema (from PayPal side). Now there are no results being returned to Magento after you successfully paid for the order. Instead store owner should configure PayPal IPN feature.
Unfortunately the link to configure PayPal IPN is no longer on the Magento wiki. Here's the link to the PayPal docs (which is the majority of the config required): https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNSetup/
Magento IPN receiver would be something like: http://www.yoursitename.com/index.php/paypal/ipn/index/ - use your real domain. That should go into the Notification URL config in your PP acc.
Thank you for all your reply. I finally figured it out. There can be three possible cause of the error:
Check you merchant location in magento admin from system->configuration->payment method. Merchant location and Paypal business account country location should be same. This seemed to be the problem with me. I had merchant locations set as UK and my sandbox accound seller account was US.
It may not be send IPN. Login to paypal sandbox website and under history section there is an option for IPN enable it from there
In your paypal sandbox account, going into profile->setting->payment review and turn it off.
Although this is not a programming question please make sure you have set "Payment Action" to "Sale" in the Magento administration area.
You can find this under System -> Configuration -> Payment Methds -> PayPal Payment Solutions tab
As mentioned by Slayer Birden : "The latest PayPal integration changed the order processing schema (from PayPal side)".
The guide does seem to be outdated.
However For IPN settings you need to log in to your PayPal account and go to Profile->My selling Tools. Here you can find Instant Payment Notifications (IPN) settings.
i found this solution
Try to set “Transfer Cart Line Items” to No under configuration->payment methods->PayPal.
If it works for you then let me know!
Found on:
http://forum.azmagento.com/how-to/magento-17-issue-with-a-paypal-payments-order-92356.html
you can use this extension : Magento Order Repay Extension
My client had merchant account from Hongkong and we were using Website Hosting Pro as payment solution as Paypal has no provision to make payments from website itself except (US,UK and Canada).
This is hardcoded in magento , I did not understand why.?
To setup paypal with your account,
In your website folder go to ,
(version used here was ver 1.7.0.2)
{your installation folder}/app/code/core/Mage/Paypal/Model
open file "HostedPro.php"
In bottom , you will find function ,
public function getNotifyUrl($storeId = null)
{
return $this->_getUrl('paypal/ipn', $storeId, false);
}
This function sets ipn value for Hosting Pro.
Similarlly you can find ipn values afor other payment
methods(express,standard,etc..) in this folder.
Either change this to your desired value as set in paypal account
or change it from these(magento) files.
I chose first option and it worked.
After this your orders status should get changed.
I use PayPal Web Payments (Standard) as my payment gateway, but when I try and create an order manually (so I can apply discounts for specific people etc), there are no payment methods in the list on the form. I'm experiencing the same problem as described in this thread in 2008 (except we're now in 2012 and I'm using the latest stable release of Magento.
Any ideas? Are there any quick code fixes to make the payment methods appear? Ideally I'd have the sales order be sent to the email address specified upon creating the order, whilst also receiving a copy (as per normal orders) to my sales email address.
Has anyone else experienced (and overcome) this problem?
Make sure that these variables are according to your choice
protected $_canUseInternal = true;
protected $_canUseCheckout = false;
The first variable allows the payment method to be used in the backend if set to true. The second blocks it from being used in the frontend if set to false.
I had the same problem with shipping methods on admin side. I enabled free shipping method, it appeared in the admin.
May be try enabling Check/MoneyOrder method for payments. If that appears on the admin side, you can atleast proceed with creating the order.
When people make a successful payment with PAyPal in my Magento webshop it automatically creates an invoice with unique invoice number. For bookkeeping reasons, I have to disable it.
I've been searching for a few weeks now but I still haven't found the solution for this problem. What I know so far is that this is caused by IPN. The problem is I don't know how to turn this off without damaging my shop or paypal payments.
Some more specs:
- Version: Magento 1.6.2.0
- Standard paypal
Files containing IPN:
www/app/code/core/Mage/Paypal/controllers
"Turning it Off" is sort of vague, but there's no configuration setting on the Magento side that will allow you to accept PayPal standard payments using the IPN system but not create invoices. You're looking at writing custom code to do this. Here are some starting points.
PayPal IPN works with a callback URL. That is, once PayPal has processed a payment, it fetches a specific URL from Magento with a specific set of data in the post field. Then, based on this information, appropriate action is taken (an invoice is created, a credit is issued, etc.). So the quickest way to achieve your goal would be to change the IPN URL in your PayPal configuration. This means PayPal is still notifying a URL, but not the Magento URL, and an invoice never gets created.
If that doesn't work or has unacceptable side effects, here's the code points you're interested in. Assuming you're using a standard Magento PayPal setup with an IPN URL configured at
http://yourstore.example.com/paypal/ipn/
Magento will handles this request with the indexAction method in
#File: app/code/core/Mage/Paypal/controllers/IpnController.php
public function indexAction()
{
if (!$this->getRequest()->isPost()) {
return;
}
try {
$data = $this->getRequest()->getPost();
Mage::getModel('paypal/ipn')->processIpnRequest($data, new Varien_Http_Adapter_Curl());
} catch (Exception $e) {
Mage::logException($e);
}
}
The business logic for this method (including your invoice creation) starts in the paypal/ipn model. In a standard system this resolves to the class at
#File: app/code/core/Mage/Paypal/Model/Ipn.php
class Mage_Paypal_Model_Ipn
{
....
}
Trace the code from here to find the method you'll want to rewrite and implement your desired functionality changes (not creating an invoice). Your best bet will be setting up a PayPal developer sandbox account so you can repeatedly hit the URL until you've traced your code to the right spot.
Good luck!
instead of hacking your core Magento files, just turn off IPN within PayPal.
By default, there are three states for PayPal IPN:
On
Off
Disabled
The first option will let you specify an IPN URL within your PayPal Profile, and you'll have access to 'IPN History' under the 'History' tab. All IPN data for your account will be sent to the URL you specified, unless you override it with notify_url / NOTFIFYURL on a per-transaction basis.
The second option will turn IPN off on your account, but you can still use it by setting notify_url / NOTIFYURL on a per-transaction basis. This is what Magento uses.
The third option will stop generating IPN messages for your account, even if your shopping cart (Magento, in this case) specifically asks for IPN messages by sending notify_url / NOTIFYURL. No IPN messages will be delivered whatsoever.
To set IPN to 'Disabled', first set it to 'On' in your PayPal account and provde a URL to an IPN address (though this can be any address, just enter http://www.google.com/ for example).
Once enabled, look for the option stating 'Stop receiving IPN messages (Disable)'. Use this to disable IPN altogether.
Source:-https://lastdropofink.co.uk/tools/magento/magento-paypal-ipn/
If I got you right, you should change Payment Action to Authorization for your paypal payment method. See more info there:
http://www.magentocommerce.com/knowledge-base/entry/setting-up-paypal-for-your-magento-store#1.1
Or, instead of hacking your core Magento files, just turn off IPN within PayPal.
By default, there are three states for PayPal IPN:
On
Off
Disabled
The first option will let you specify an IPN URL within your PayPal Profile, and you'll have access to 'IPN History' under the 'History' tab. All IPN data for your account will be sent to the URL you specified, unless you override it with notify_url / NOTFIFYURL on a per-transaction basis.
The second option will turn IPN off on your account, but you can still use it by setting notify_url / NOTIFYURL on a per-transaction basis. This is what Magento uses.
The third option will stop generating IPN messages for your account, even if your shopping cart (Magento, in this case) specifically asks for IPN messages by sending notify_url / NOTIFYURL. No IPN messages will be delivered whatsoever.
To set IPN to 'Disabled', first set it to 'On' in your PayPal account and provde a URL to an IPN address (though this can be any address, just enter http://www.google.com/ for example).
Once enabled, look for the option stating 'Stop receiving IPN messages (Disable)'. Use this to disable IPN altogether.
What I’ve been really surprised by over the past few weeks is the number of sites that don’t actually have this turned on and it’s just not limited to self-builds even the really expensive Magento builds are missing this out this as a step.
Turning on the PayPal Instant Payment Notification (IPN for short) is an excellent idea as means that when a customer pays for an item using PayPal then the payment information will be updated on the Magento order details in the administration panel.
It only takes a few moments to enable and I’ll show you how to enable IPN for your Magento site below. This will mean that when you receive an order via PayPal Express for example, you can actually see the transaction details in Magento and if you’re using eSellerPro and have the eSellerPro Connector enabled for sales order processing, your order & payment details will match up automatically.
Setting this up won’t take more than a few moments and here are 6 simple steps to do this:
1 Login to PayPal
2 Hover on “Profile” and select “My Selling Preferences”
3 Halfway down the page, click on “Update” next to “Instant payment notifications”
Now enter the following details:
Notification URL – This is simply http://your-magento-store.com/paypal/ipn/ replacing “your-magento-store.com” with your website address. <= This is the part that normally trips everyone up as they’re not sure what to enter here.
IPN messages – Set this to “Receive IPN messages (Enabled)”
Press Save
That’s it job done.
To test whether IPN is working or not is dead simple, just make a test transaction through your website (you will need a secondary PayPal account for this) and a few minutes later, check on the order in your Magento admin panel has been updated with the PayPal transaction details.
To help you, I have put to images below, the image on the left has no IPN details, the image on the right does.
I have this weird issue in Magento when someone places an order using PayPal Express Checkout. Every so often an order will come in and then the order gets canceled a few seconds later. The comment that is left is as follows:
Canceled order online. Amount: $59.23. Transaction ID: "XXXXXXXXXXXXXXXXX-void".
(ID blanked out just in case)
Now our customers are swearing they did not cancel their orders and when we ask PayPal they say it is a problem on our side.
Has anyone heard of this issue and do you know of a fix? I am running Magento Enterprise 1.8.
I've run into a similar issue. I tracked it down to those users who checked out with PayPal Express and do not have a PayPal account. The issue and the fix appear here:
http://www.magentocommerce.com/bug-tracking/issue/?issue=9894
The face that all users do not encounter the error may be related to the with/without a PayPal account status.
Integrating Magento with PayPal Express (not PayPal standard) the users can buy our store's products.
However, there are two different situations:
1) If the customer has got a Paypal account, he will be able to finish the buy process without issues.
2) However, if the customer hasn't got a Paypal account, or if he doesn't want to use it, and prefers to buy the products using his credit card without use the PayPal credentials, then the process will finish with the following error:
"This payment cannot be processed using your paypal account at this
time".
The problem is the seller will receive the money, but the customer will think just the opposite.
This issue has been discused and confirmed with PayPal support team.
The real issue is during the buy process, the "DoExpressCheckoutPayment" PayPal's function is called. However, when the buy process finish with this error, a parameter called "successpageredirectrequested" is set to "true". This flag indicates whether you need to redirect the customer to back to PayPal after completing the transaction. However, this is an obsolete PayPal's behavior, and should't be used.
As Magento is using this parameter's function, when he tries to redirect again to PayPal (that's what "successpageredirectrequested" set to true is doing) PayPal will return this error.
We can fix it making a little change in Magento's source code, at app/code/core/Mage/Paypal/Controller/Express/Abstract.php
Just changing the function "public function placeOrderAction()".
Look for the following code inside this function:
// redirect if PayPal specified some URL (for example, to Giropay bank)
$url = $this->_checkout->getRedirectUrl();
if ($url) {
$this->getResponse()->setRedirect($url);
return;
}
$this->_initToken(false); // no need in token anymore
$this->_redirect(?checkout/onepage/success?);
return;
}
We just need to comment the "if", just like this:
//if ($url) {
//$this->getResponse()->setRedirect($url);
// return;
//}
That's enough to fix the issue. However, this is not a current fix, and this should be reviewed by Magento's programmers just to fix it in the Magento's new versions.