Magento payment bridge "This payment method is currently unavailable" - magento

Recently I have upgrade enterprise magento to 1.13.0.2. Also set up payment gateway as it is mandatory.We are using cybersource payment gateway. On checkout page shows an error 'This payment method is currently unavailable'.

Generally this means that the payment method is properly setup but is not enabled in the backend admin panel.
Navigate to...
admin/system_config/edit/section/payment
Or if your payment method settings are in a custom route search your core_config_data table for it:
SELECT * FROM core_config_data WHERE path LIKE '%cybersource%';
OR similar...
Find the value that corresponds with 'enabled' and ensure it is set to 1 for default scope and all the store/website scopes you're testing.
If the value for enabled/active is not present in core_config_data you need to find your payment method route through admin and save it that way as the configuration entries are only populated after the initial save.
Ensure you flush cache and check if the issue persists.
If it does, search your repo for the error message text and var_dump/die above to understand what's missing.

This might cause by following reasons;
1) Ips are not allowed
2) If its in stage/test server, this issue may come if the site is password protected
3) SSL is not properly installed or have error(If ssl is using)
Before checking above points make sure you have added correct merchant_id and transaction key;
php tools/merchant.php -i your_merchant
My issue was due to #2.

Related

Akeneo v6.x Community Edition: "This url is not allowed" on Event subscriptiion

I want to bind Akeneo 6 Community Edition Events API to a Laravel application, making this latter able to act on the creation of an Akeneo product within Akeneo, for example. In other words, when a user creates a product in Akeneo, Akeneo sends a message to Laravel.
So I've followed this doc: https://help.akeneo.com/pim/serenity/articles/manage-event-subscription.html#activate which says to create a Destination Flow Connection, and then to activate the Events subscription within. Then I have to type the URL of Laravel that will receive the message sent by Akeneo in the Akeneo field URL. Then I can click on the button "TEST" in Akeneo and each time it shows an error "This url is not allowed." .
After having created a POST Laravel route named receive_akeneo_events, I've tried to type the following URL:
http://127.0.0.1:80/receive_akeneo_events
http://0.0.0.0:80/receive_akeneo_events
http://localhost:80/receive_akeneo_events
http://laravel.test:80/receive_akeneo_events (after having added laravel.test as an entry in my /etc/hosts at the same line than localhost)
The same URLs without indicating the port and/or The same URLs in HTTPS.
None works. "This url is not allowed." is still displayed for each of these URLs.
Is it a Laravel problem, i.e.: should this route not be POST or should it be configured to return a particular HTTP code, since it's the target of an events triggering system (the one of Akeneo)?
Or is it an Akeneo problem or just a bad URL format?
Finally I modified the code of Akeneo CE by removing the exclusion of localhost in a PHP Array called BLACKCLIST and by removing the condition that excludes IP from Private ranges. Both modifications were done in the adequat Symfony validator's script caller.
Moreover, of course I've also done something about Laravel route's CSRF protection, see the Laravel doc to know what: https://laravel.com/docs/9.x/csrf .
Now it works.

Unable to set keys for braintree payment method in magento local admin

Magento 2.4, PHP 7.4
Please may I know if anyone has faced an issue wherein the input fields to enter keys for Braintree payment method in magento local admin are not available. I guess the fields usually appear over the 'Validate Credentials' button. Clicking on 'Validate Credentials' makes the page to load for a long time and does not display any result.
Also, getting the following error in logs -
[2022-04-29 07:09:20] report.ERROR: Braintree\Configuration::publicKey needs to be set. [] []

The URL "http://localhost/magento/" is not accessible. Unable to read response, or response is empty Magento Installtion Error

The URL "http://localhost/magento/" is not accessible.
Unable to read response, or response is empty
When install new magento in localhost.
As Ankit Parmar said, you can check
Skip Base URL Validation Before
...but you might encounter problems later on. This message appears probably because your domain is not public or not reachable. If you skip Base Url Validation, you will be able to finish the installation but you might get the strange problem of being able to log in but not to access the admin section (get redirected to the login page without any error message even if you see you're logged in by looking at the URL).
Rather than installing Magento under localhost, you should add a fake domain name in your host file and set up a vhost accordingly. you may then re-install Magento by accessing the fake domain name in your browser. You may setup the domain name in the core_config_data table if not done.
More over here: https://magento.stackexchange.com/questions/39752/how-do-i-fix-my-base-urls-so-i-can-access-my-magento-site

Can not login Magento admin page after move to my localhost

I just move my Magento store to my localhost environment for testing use, I also using Git to maintain code, but after I move all the files to my local environment, I can't login my admin page, but I can still see my frontend pages, and the git, the database, seems works well.
When I type a wrong admin/password to my admin page, it still gives me "Invalid password".
But when I enter the right one, it just refresh the page and stay at the login page, nothing happens.
Does anyone has met this problem before? Has any ideas?
Thanks in advance!
Although this question is old, all the above answers did not work for me until I did one additional thing.
Follow the very helpful answers already posted (summary):
Change your base_url to http://127.0.0.1/ for secure and unsecure path.
delete files in var/session and var/cache
alter your Varien.php file accordingly - depending on your version of Magento.
And then:
Finally, use http://127.0.0.1/your/site/folder/name/index.php/admin
It was the lack of the index.php/admin ( instead of using http://127.0.0.1/site/admin ).
I hope this helps someone else.
Recently started using Magento for a project and came across this issue. I was left frustrated by the fact there are at least ten or more different workarounds suggested on the net and it took a bunch of trial and error to find one that did the job. Seemingly some workarounds work for some versions and not for others. No one explained why or how the problem occurs and the most popular solutions involve hacking the code base or using a different url, which shouldn't be necessary.
The cleanest solution I found for Community Edition 1.9.1.1 was editing two config values in the database:
update core_config_data set value = NULL where path = "web/cookie/cookie_path";
update core_config_data set value = 0 where path = "web/cookie/cookie_httponly";
The cookie path is actually NULL by default on a fresh installation but it must either be NULL or empty string.
The behavior arises because some browsers including Chrome have issues creating cookies with a localhost domain, this means that when Magento calls session_start() the session identifier cookie never gets created and as a result information can not be passed from page to page. The login procedure is actually successful but the next request doesn't know about it, hence why you get redirected back to the login screen. There are no errors because Magento doesn't account for this edge case as a possibility.
If you do not provide a domain value when creating a cookie on localhost then the browser has no problem with it. Unfortunately just setting web/cookie/cookie_path to NULL is insufficient, because Magento's configuration class resolves this as an empty string which is enough for a real domain to be set later in the code:
if (isset($cookieParams['domain'])) {
$cookieParams['domain'] = $cookie->getDomain();
}
This method eventually uses the current HTTP host to resolve a real domain for the cookie, and the browser therefore wants nothing to do with it. However if we disable web/cookie/cookie_httponly then Magento will not perform this additional step, $cookieParams['domain'] is unset and no domain gets passed as a session parameter, thus allowing the session cookie to be created and things to function as they should.
Note that any time you modify the database configuration you must delete the contents of /var/cache/ for the changes to be reflected.
If like me you don't want to have to comment out code, or even make configuration changes, then I created an extension which overrides the getDomain() method shown above and returns null if we are on localhost, this should be somewhat more future proof and result in no collateral damage.
http://www.mediafire.com/download/q39p4k95s5tlght/LocalCookie.zip
Try deleting the contents of the cache folder /var/cache. Clear your browser cookies and try. Also, if you have copied down the database from your server, you may need to manually change the base urls (secure and non secure) as well as the cookie domain in the core_config_data table. Do this manually if you need to. e.g. web/unsecure/base_url with production value of http://www.mywebsite.com/ becomes "http://localhost/"
When ever I have had this it's because of this or cache. Ensure the cache folder is ignored in git hub if it's not already.
1.you need remove the cache
rm -rf var/cache/* var/session/*
2.change the domain form core_config_data
update core_config_data set value="http://127.0.0.1/" where path="web/unsecure/base_url";
update core_config_data set value="http://127.0.0.1/" where path="web/secure/base_url";
do these steps :
1: go through: xampp\htdocs\magento\app\code\core\Mage\Core\Model\Session\Abstract**
2: open **Varien.php file
3: make comment line number from 87 to 104 save it and try to login...
Had the same issue, but the fix was changing DB values:
UPDATE `core_config_data` SET `value` = 'http://127.0.0.1/example/' WHERE `path` = 'web/unsecure/base_url';
UPDATE `core_config_data` SET `value` = 'http://127.0.0.1/example/' WHERE `path` = 'web/secure/base_url';
Then in browser http://127.0.0.1/example/admin
Same problem! I fix my problem after remove/replace static domain in core_config_data Table
web/secure/base_url
web/secure/base_link_url
web/secure/base_skin_url
web/secure/base_media_url
For me, running it on IIS (I know, not officially supported):
Although other suggestions kind of worked I found the best solution was to enter a new A record for me domain like
127.0.0.1 local.example.com
Then in IIS add the binding
local.example.com
to my site and it worked perfectly.
I found there were errors when actually trying to login to the customer account more than admin but believe it still applies.

Magento - Authorize.net - Get Payment Update for expired transactions

Magento 1.6.1
I have set up Authorize.net (AIM) for the client's store. Previously they were using saved CC method and entering information manually in Authorize.net's merchant terminal.
Most of it is working as expected, however for transactions that are flagged as 'Suspected Fraud' by Authorize.net, if the client does not update the transaction manually before the authorization expires, using 'Get Payment Update' in Magento fails because the transaction is expired (I believe it's five days for an authorize only transaction).
For the client, it seems the only way to update this order in Magento is to simply delete the order, as it doesn't appear the Paygate model knows about expired transactions. Performing 'Get Payment Update' simply returns 'There is no update for this payment'.
I have already modified the file: /app/code/core/Mage/Paygate/Model/Authorize.net to have the correct API URL as described in issue #27117 ( http://www.magentocommerce.com/bug-tracking/issue?issue=12991 - must be logged in to view ). This resolved the button not working for all other orders; however this does not fix the issue I am describing.
Is anyone familiar with Authorize.net's AIM API so that we can update these orders in Magento to something that makes sense (canceled, etc.) without having to delete the order? I am thinking it should be a case of adding a new order status to Magento, checking the update for an 'Expired' status, and setting the order to the newly created order status.
-- edit --
I just ran a diff for the file mentioned above and noticed that Magento 1.7.0.2 includes the _isTransactionExpired() method which seems like it would be the fix. Can it be as simple as updating this model with the newer version?
In this case, I manually included the _isTransactionExpired() method described in my question to the app/code/core/Mage/Paygate/Model/Authorize.php, and things appeared normal and it was seeming to work as expected.
It's now been a month and a half, and I've not had the client come back to tell me things are not working, so I am assuming this fixed the issue.

Resources