Check PayPal account settings. Status Payment Review related to enabled same option at your PayPal account (see https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECOtherAPIOps/).
Processing is the CORRECT status. Magento orders are only (or should only be) marked as complete when you have created both the invoice AND delivery note. With PayPal Standard, the order gets invoiced automatically (after all the payment has been taken) and then you do the delivery.
Please clarify PayPal Method you use
We have had the exact same error. Flow is like :
- Magento cart
- In cart click paypal express
- Click ok continue etc paypal
- Return to Magento paypal/express/review page (template/paypal/express/review.phtml)
case
a. If I set no shipping method and click continue I see the error "Please specify a shipping method"
b. If a shipping method is prepopulated thus the select element is set and I only click continue I see the error "Please specify a shipping method"
c. If we set the select element through JS to a default vallue only if it is unset even then I see the error "Please specify a shipping method"
ridiculous fix
It is an almost ridiculous fix, but it works. We added the following code to force the select value to a certain default if empty, and even if already on the default value. After that we trigger the updateshippingmethod button click and submit.
Actual problem
The only problem we actually had was that
- coming back from Paypal the Shipping Method was empty and users needed to select a shipping method. The problem was that customers clicked CONTINUE like 10 times before they noticed the error (or abandoned)
- So we decided to auto-set a default shipping method. Only this 'setting' of the default shipping method does somehow not transfer to the quote
I am very open to alternative fixes
Fix
<script type="text/javascript">
//<![CDATA[
// submit buttons are not needed when submitting with ajax
$('review_submit').hide();
if ($('update_shipping_method_submit')) {
$('update_shipping_method_submit').hide();
}
var selectThis = 'postnl_matrixrate';
var ppcookieName = 'paypalexpress';
var selectOption = $("shipping_method").getValue();
var selectCookie = Mage.Cookies.get(ppcookieName);
if ((selectOption == '' || selectOption == selectThis) && !selectCookie) {
$$('select#shipping_method option').each(function(o) {
if(o.readAttribute('value') == selectThis) { // note, this compares strings
o.selected = true;
Mage.Cookies.set(ppcookieName,'clicked');
$('update_shipping_method_submit').click();
// throw $break; // remove this if it's a multi-select
}
});
}
<?php if ($this->getUseAjax()):?>
OrderReviewController.prototype._submitOrder = function() {
<?php /** SNH CUSTOM 7-9-2018 Need to trigger a button click here to respect the pre-selected shipping method **/?>
$('update_shipping_method_submit').click();
Best Answer
The secure token, utilized as part of a PPA integration, helps protect transaction data. You must use a secure token with hosted checkout pages. The token is good for one transaction and is valid for 30 minutes. The token and its token ID are used by the server to retrieve and display the transaction data for customer approval.
Set up hosted checkout pages
On this Set Up page, click Save Changes.
Reference