public ActionResult OrderPaypalAuthorized(string token, string PayerID) { PanierViewModel panier = (PanierViewModel)Session["Panier"]; //Récupération des détails de l'appel Express Checkout GetExpressCheckoutDetailsResponse getDetailsResponse = paypalService.SendPayPalGetExpressCheckoutDetailsRequest(token); if (getDetailsResponse == null || getDetailsResponse.ResponseStatus != Core.Transcoder.PayPalMvc.Enums.ResponseType.Success) { string errorMessage = (getDetailsResponse == null) ? "Null Transaction Response" : getDetailsResponse.ErrorToString; Debug.WriteLine("Error initiating PayPal GetExpressCheckoutDetails transaction. Error: " + errorMessage); return(RedirectToAction("Panier", panier)); } //Paiement de la commande DoExpressCheckoutPaymentResponse doCheckoutRepsonse = paypalService.SendPayPalDoExpressCheckoutPaymentRequest(panier, token, PayerID); if (doCheckoutRepsonse == null || doCheckoutRepsonse.ResponseStatus != Core.Transcoder.PayPalMvc.Enums.ResponseType.Success) { if (doCheckoutRepsonse != null && doCheckoutRepsonse.L_ERRORCODE0 == "10486") { Debug.WriteLine("10486 error (bad funding method - typically an invalid credit card)"); return(Redirect(string.Format(Configuration.Current.PayPalRedirectUrl, token))); } string errorMessage = (doCheckoutRepsonse == null) ? "Null Transaction Response" : doCheckoutRepsonse.ErrorToString; Debug.WriteLine("Error initiating PayPal DoExpressCheckoutPayment transaction. Error: " + errorMessage); return(RedirectToAction("Panier", panier)); } if (doCheckoutRepsonse.PaymentStatus == PaymentStatus.Completed) { taskService.SetAllTasksPaidForTransaction(panier.TransactionId); MailUtil.SendMail(Core.Transcoder.Service.Enums.StringManager.PAIEMENT_ACCEPTE, null, panier); return(RedirectToAction("OrderPaidConfirm")); } else { Debug.WriteLine($"Error taking PayPal payment. Error: " + doCheckoutRepsonse.ErrorToString + " - Payment Error: " + doCheckoutRepsonse.PaymentErrorToString); TempData["TransactionResult"] = doCheckoutRepsonse.PAYMENTREQUEST_0_LONGMESSAGE; return(RedirectToAction("Panier", panier)); } }