Cannot enable PayPal API in Magento - paypal

In Magento 1.9.2.2 I'm trying to enable PayPal payments under System > Config > Payment Methods. I've entered the correct PayPal API credentials and chosen API Signature as the authentication method. We are not using a proxy server. When I save the config the 'Enable this solution' dropdown remains greyed out and the solution cannot be enabled.
Can anyone help?

Have you followed the below? Taken from PayPal site.
OpenStep 1: Complete the Required Settings:
On the Admin menu, select System > Configuration.
In the panel on the left, under Sales, select Payment Methods.
If your Magento installation has multiple websites, stores or views, set Current Configuration Scope in the upper-left corner to the target configuration.
In the Merchant Location section, select the Merchant Country where your business is located.
In the PayPal All-in-One Payments Solutions section, click the Configure button for PayPal Payments Standard.
In the Required PayPal Settings section, do the following:
Enter the Email Address that is associated with your PayPal merchant account.
Set Enable this Solution to “Yes.”
You have now completed the Required PayPal Settings. At this point, you can either continue with the Basic and Advanced Settings, or click the Save Config button. You can always come back later to fine-tune the configuration.

I had this same issue after upgrading a Magento site from 1.7.x to 1.9. I want to emphasize that I'm not 100% sure of the sequence, as I tried a few things before solving it, and didn't document the process. But hopefully the info helps you or someone else in the future.
I found suggestions about running an SQL query to change one or both payment methods to active. I did this first, and wound up setting both as active using a statement like this - make sure to add your table prefix:
update core_config_data
set value = 1
where path IN ('payment/paypal_express/active','payment/paypal_standard/active');
Next, I think, I went to Magento System->Configuration->Payment Methods and edited the values in each - PayPal Payments Standard, and PayPal Express Checkout.
I still couldn't insert the PayPal account details in Express Checkout, but eventually realized it was just missing the UI option to expand the section; see below image, you can click that grey bar to expand it and reveal the account info. It took way too long for me to figure that out.
Again, going from memory, but once I did that and saved it with the credentials, the "enable" option was back to "no" and could not be changed.
I'm not sure if somehow "Standard" was pulling info from Express, or if I had also just missed the collapsed box at the top of the "Standard" section, which expands to reveal the e-mail address & "enable" option. But it wound up getting me sorted out and accepting orders with PayPal.
See if that gets you anywhere. Good luck!

Related

WHMCS & PayPal - How to disable the create account from express checkout?

I am using PayPal with WHMCS. During the purchase, PayPal express checkout popup shows the create PayPal account form also below the credit card information form, and this [Create your PayPal account] form is required even after doing these changes as per the PayPal documentation.
On the other side, the WHMCS also doesn't have any option to disable/hide the create PayPal account form.
Due to this issue, my clients are getting annoyed and leaving my site without completing the purchase. How to disable the create account from express checkout?
That is the normal flow for new PayPal buyers. An option to pay without creating an account might sometimes be available, depending on many factors including the buyer's location, but is never guaranteed.
For the option of a black button to pay with a Debit or Credit Card to always be available, integrate with current PayPal Checkout buttons, which for a UAE buyer will look like this:
You can test the demo here and append &buyer-country=AE to the SDK script line (only for sandbox mode)
I know this is an old thread but incase anyone else is trying to solve it, I've just used simple CSS to hide it - using the default Twenty One theme I just added this to my custom.css file.
.express-checkout-buttons {
display:none;
}
And it hides. I know its not the best option but it works for me as I don't need to my clients checking out via this option.

PayPal Pay Now Button - Email Link

I have browsed this forum and been through the PayPal documentation but I am confused. I know what I need but cannot work-out how to specify it for my coder.
We have a .Net application that runs on our internal network. We use this application to create customer quotations. These quotations are emailed to our customers. I simply want the application to be create a link that I can send to the customer such then when it is opened it takes them straight into Paypal and allows then to make a payment for the quotation. Or maybe the link is embedded into the body of the quotation that I send. Either would be fine.
I know of programs that do this (Sage Line50 does it with Sagepay rather than PayPal) but I cannot get my head around the process. Most of my research is talking about taking payments from an external website but trawling through the PayPal documentation it looks like it should be possible. But I cannot figure out whether I need Smart Buttons or PayPal Me. The key thing is that I don't want to force customers to have a PayPal account so guest access must be an option.
Smart Payment Buttons would be ideal, and offer the best payment experience to your customers. However, they require your own server on which to host some HTML/JS for them. They do not offer a link that can take the customer directly from an email to a PayPal checkout.
I recommend using Smart Payment Buttons, if you are able to host one. The flow is:
Email -> page on your server with Smart Button -> PayPal payment.
The key thing is that I dont want to force customers to have a PayPal account so guest access must be an option.
PayPal.me does not meet that requirement
If your requirement is truly a link that proceeds directly:
Email -> PayPal.com checkout for payment (no webserver of yours) ... well, there two solutions for this.
One is to use PayPal invoicing, which can be emailed directly by PayPal, or can be a link which you share yourself (via your own email). A PayPal invoice can be created manually via: https://www.paypal.com/invoice/create . Or programmatically via the invoicing API (see developer.paypal.com)
The second way, which may work fine but is a very old web 1.0 way of doing things, is to start by going to http://www.paypal.com/buttons and create a Buy Now button for an item named "Placeholder", amount "777.88". Expand the section "Step 2", and uncheck the option to Save the button at PayPal. Do not change any of the customization options, particularly ones that add menus or input fields.
Once you have generated the code, click the option above it to remove code protection, and then switch to the E-mail tab.
This will give you a plain HTML link with a description and amount that can be set dynamically by your developer when sending your own email. Additional useful variables, such as invoice (for an invoice number that is unique for what is being paid for, and can't be accidentally paid twice) are documented here.
Again, Smart Payment Buttons should be preferred if you have a web server to act as an intermediary. Here is a skeleton demo of the experience.

Paypal: Pending payments with Express Checkout

I have implemented Paypal Express Checkout on my website. So far everything seems to work in my sandbox, except that the payments are not processed. Every payment is "pending".
The only reason I get is
RECEIVING_PREFERENCE_MANDATES_MANUAL_ACTION
in the API response after executing the payment via API.
I cannot find any documentation on the reason, does anyone know how to fix it?
You have probably already solved the problem, but maybe someone else has similar problem.
I believe the reason for this is because the payments are in a currency that you do not hold, you need to configure your Payment Receiving Preferences in your PayPal account. Otherwise, your payment status might be pending until you manually approve the payment in your PayPal account.
Log in to your PayPal business account at www.paypal.com. Click the profile icon (Profile menu) on the top right side of the page. From the Business Profile menu, select Profile and Settings. (Note: If you do not see the profile icon on the top right, select Profile which appears in the top menu when the My Account tab is selected.)
From the left menu, click My selling tools.
In/under the Getting paid and managing my risk section, click the Update link for the Block Payments item.
Update Allow payments sent to me in a currency I do not hold to "Yes, accept and convert them to U.S. Dollars") and click Save.

Invalid or unsupported currency code paypal error when using multiple currency

I am using payflow pro. When I use currency code 'USD' all payment flow's works fine. But when I change currency code to 'CAD' it will return error with result code 06 which means Invalid or unsupported currency code. How to solve this problem?
This is not problem with your code.
Following https://developer.paypal.com/docs/classic/api/currency_codes/
Payment Receiving Preferences
If you have a PayPal Premier or Business account, configure your Payment
Receiving Preferences to handle payments automatically. You can convert
any payment into your primary currency or block certain types of payments.
You can set the following:
Block or unblock payments from U.S. customers who don’t have a confirmed address.
Block or unblock payments sent to you in a currency you don’t hold.
Block or unblock payments for duplicate invoice IDs.
Block or unblock payments from customers who have non-U.S. PayPal accounts.
Block or unblock payments from Student Account holders.
Log in to your PayPal business account at www.paypal.com. Click the
profile icon (Profile menu) on the top right side of the page. From the
Business Profile menu, select Profile and Settings.
Note: If you do not see the profile icon on the top right, select
Profile which appears in the top menu when the My Account tab is selected.
From the left menu, click My selling tools.
In the Getting paid and managing my risk section, click the Update link
for the Block Payments item.
Update your settings and click Save.
Just happened to hit this problem with Magento 2.3.1, when paying with credit card against PayPal Payflow Pro. Our default currency for the store is "CAD".
The support team is super, after our several failed transactions they managed to figure our the problem, let me share their reply here:
Thanks for reaching out today. Happy to help.
It looks as though this is an issue with the currency code you're passing. Right now it appears you're trying to pass USD in on the $0.00 verification call, but CAD on the actual 2.20 transaction itself. When you verify a card, the transaction you attempt against that verification must use the same currency. Try passing the subsequent transaction with USD, or create the verification in CAD and then run the transaction against it using CAD. See https://developer.paypal.com/docs/classic/payflow/integration-guide/#submitting-account-verifications for more on verifications. That's a great resource for Payflow in general as well.
That should resolve the issue you're seeing, but please let us know if you run into any other issues.
I hope that helps. Let us know if you have any questions.
That says for two API calls from our server (Magento 2.3.1) to PayPal need to specify the same currency code. While our first API call which sending amt=0 field doesn't have separate currency field there, so I guess the default value was assigned which is "USD". While the second API call which sending the real amt number had currency=CAD field, that might confused the API and eventually refused by it.
For Magento 2.3.1 the fix is to add the currency filed for the first API call, which the same idea may apply to other conditions as well.
Here is the Magento fix in case you are interested.

Setting up Zencart with Paypal

To begin: I am trying to setup Zencart with Paypal. I have followed all of Paypal and Zencart's instructions:
Putting in Paypal's API username, password and signature code into Zencart's Payment Module section. Checked the "live" environment.
I then tried buying a product on the website and got the following error message:
Zen Cart message: We are sorry for the inconvenience. The PayPal account
authentication settings are not yet set up, or the API security information
is incorrect.
10002
Security error
Security header is not valid
I have tried looking up the answer but everything I see says to make sure the environment is not in sandbox and that everything is typed in correctly. I have tripled checked and the API is typed in correctly and it is set to live.... what else can I do?
Moving on, I have tried to setup the sandbox but am unfamiliar with how to use Paypal's sandbox. So I reconfigured Zencart to "sandbox mode" with the appropriate sandbox API and I set up box a sandbox account for a merchant and private buyer but I don't know how to use them. Should I go back to the Zencart store and register with my new "Paypal sandbox private buyer email"? And will checking out using this email they gave me work as just a test... I don't want to go through with the checkout if I'm going to get billed...
Thank you for any help:)
The best place to get support on Zen Cart issues is directly on the Zen Cart support forum at http://www.zen-cart.com/forum.php
Further, an existing article already explains the basics of the problem you describe: http://www.zen-cart.com/content.php?277-the-paypal-account-in-this-store-is-presently-misconfigured-to-use-mixed-sandbox-and-live-settings-we-are-unable-to-complete-your-transaction-please-notify-the-store-owner-so-they-can-correct-this-problem-10002
It is absolutely critical that the THREE parts of your API settings (username, password, signature) be copied EXACTLY from PayPal's site into your store's admin settings screen.
There's no need to use sandbox unless you're a programmer writing new features for payment processing. So be sure to check the "Live" radio-button. (I realize you already mentioned that. Just adding this for clarity.)
You can also get more details on exactly what is coming back from PayPal by turning on debug logging in the module's settings.
PayPal tech support is available at www.paypal.com/mts - they can look at your actual transmissions and at your account, and sort out a problem if there's something wrong with the API signature details.