The latest Magento (ver. 0.7.15480) supports PayPal Website Standard. The blog shows a video demonstrating the process on the user end, but I haven’t found any instructions on configuring it properly on this here website.
I have found some suspiciously relevant looking fields on two of the configuration screens:
1. “System / Configuration / Paypal “:
Business Name (set to our biz name as listed on Paypal) Business Account (set to Paypal login--an email address)) Sandbox Flag (yes/no) Debug Flag (yes/no)
2. There’s more options under “System / Configuration / Payment Methods / PayPal Standard”:
Enabled (true) Title (Paypal Standard) Payment Action(tried both "Sale" and "Authorization") Type ("IPN")
If I set “Payment Action” to “Authorization”, this causes an error dialog to appear when “Place Order” is clicked on the user end: “Authorize action is not available.” “Sale”, on the other hand, causes a Magento page to appear with the header “Your order has been received”, indicating the order was placed, but without ever redirecting to Paypal.
What might I be doing wrong?
To further baffle the uninformed, there’s a two whole other sets of options for Paypal Express, and Paypal Direct… whatever those are.
It’s been a week since I posted this question, and I see no instructions, screencasts, blog entries, or forum posts on how to configure or use Paypal Standard. Am I the only one curious about this? This seems like a strange way to announce a new feature! I’ve signed up for Paypal Website Payments Pro in the meantime.
Also, it’d be great if magento had some kind of logging feature built into the back end; the error “Authrozie action is not available” is not enough to go on to debug this solution without feedback from Magento.
Please change the constant variable in app/code/core/Mage/Paypal/Model/Standard.php
const PAYMENT_TYPE_AUTH = 'AUTHORIZATION'; //with all capital letter const PAYMENT_TYPE_SALE = 'SALE';
After that, please update your payment configuration again from admin.
From Paypal site , you need to turn on your IPN (profile -> Instant Payment Notification Preferences) and Auto return (profile -> Website Payment Preferences)
Moshe, I followed your instructions (being sure to set the Debug flag for my individual website and not just for the default Config). The core_config_data table in the database indicates I properly set the config:
paypal/wps/debug_flag 1
No entries were posted in the paypal_api_debug table in the database when I placed orders. I tried placing orders multiple times, before and after implementing Lindymagento’s changes, hence using both Sale/SALE and Authorization/AUTHORIZATION. See the attachment of a listing of the empty paypal_api_debug table (a phpmyadmin screenshot).
--
Lindymagento, I followed your instructions. Indeed I checked the core_config_data table, and it shows that the config variable got updated as it presumably should:
Now, there’s new behavior: Authorization now mimics that for Sale. That is, after Place Order is selected, the “Your order has been received” page appears, without redirecting to Paypal. See the attachment.
I appreciate the advice, but I’m no closer today. What do ya’ll suggest as next steps?
After you added an item to the cart and login, can you please go to
http://yoursite.com/magento/index.php/paypal/standard/redirect
and then stop the browser before the url redirected to paypal.
Please view the page source. Can you see what data are posted to paypal?
For the current release, we only logged the data back from paypal via IPN.
If you want to log the data that posted to paypal, please put the following code in getStandardCheckoutFormFields method in app/code/core/Mage/Paypal/Mode/Standard.php
Interestingly, if I don’t stop the forward, it brings up an error-free Paypal payment page to our store—much like the one I imagine should appear when placing an actual order.
So I’d imagine the next step is to see what’s different with the request and response when actually placing an order.
When I added the debug code to Standard.php (in order to log the request to paypal), loading the link that just worked above produces a “notice” about sReq not being defined. I set it equal to a “1” string to bypass the error, and the link above works again normally, and logs just a request to paypal_api_debug. No response is logged, obviously.
Yet, neither the request to paypal nor the response are logged when an order is actually placed. To be certain, I checked in core_config_data, that debug is still set to true:
1132 default 0 paypal/wps/debug_flag 1
Perhaps the getStandardCheckoutFormFields is not being called at all when an order is placed? I’ll continue to look around.
vann, i am trying to solve the problem as well. i am using standard instead of pro. adding my email which is on the paypal account in the business account yields me a different respones. undefined.. dont know what that means but it is not asking for api… i went to paypal and you may have to get a api from magento to give to paypal under pro