After manually adding the Paypal Express project to my Pluggins folder and building the solution I get the following error.
Nop.Plugin.Payments.PayPalExpress.PayPalExpressCheckoutPaymentProcessor' does not implement interface member 'Nop.Services.Payments.IPaymentMethod.CanRePostProcessPayment(Nop.Core.Domain.Orders.Order)
The error is self descriptive. Nop.Plugin.Payments.PayPalExpress.PayPalExpressCheckoutPaymentProcessor' does not implement interface member 'Nop.Services.Payments.IPaymentMethod.CanRePostProcessPayment(Nop.Core.Domain.Orders.Order).
Presume that you downloaded PayPal Express here. It's for 2.10, but you're using 2.20. They're not compatible (implemented missed method)
Here are the steps I took to get the PayPalExpress plugin working with nopCommerce 2.2
I changed descriptions file in the PaypalExpress project to included 2.20 as a supported version -
SupportedVersions: 2.10, 2.20
I added FluentValidation.Mvc using Nuget to the plugin project and all other projects in the solution.
I added this method
public bool CanRePostProcessPayment(Order order) {
return false; }
to public class PayPalExpressCheckoutPaymentProcessor : BasePlugin, IPaymentMethod which is in the PayPalExpressPaymentProcessor.cs file in the PaypalExpress plugin project.
After building I copied the .dll .pdb and Descriptions.txt files to the Plugins folder ProjectName/Presentation/nop.web/Plugins
I appreciate this is a bit of a hack. I'm only a novice and would appreciate the communities feedback on what I've done.
I've just come to test this and I get an error after being transfered to PayPal
We appoligize, but an error has occured. 10525 | Invalid Data | This transaction cannot be processed. The amount to be charged is zero. 10426 | Invalid Data | Item total is invalid.
There are items in the cart. The Google Checkout payment option is working fine.
OK. Will do. There are some other issues with the plugin that need addressing.
For anyone reading this that wants a quick fix, the issue is that _orderTotalCalculationService.GetShoppingCartTotal is only given a value after shipping method is chosen.