/// <summary> /// Recupera os dados da transação usando a operação GetExpressCheckoutDetails e, então, utiliza a /// operação DoExpressCheckout para completar a transação. /// </summary> /// <param name='token'> /// O Token enviado pelo PayPal após o redirecionamento do cliente. /// </param> /// <param name='PayerID'> /// O id do cliente no PayPal, recebido após o redirecionamento do cliente. /// </param> /// <exception cref='Exception'> /// Se a transação falhar, uma exceção é disparada. /// </exception> public static ResponseNVP finalize(string token, string PayerID) { GetExpressCheckoutDetailsOperation GetExpressCheckout = expressCheckout().GetExpressCheckoutDetails( token ); execute(GetExpressCheckout); //Executa a operação GetExpressCheckout //NVP da resposta do GetExpressCheckout ResponseNVP responseNVP = GetExpressCheckout.ResponseNVP; if (GetExpressCheckout.ResponseNVP.Ack == Ack.SUCCESS) { DoExpressCheckoutPaymentOperation DoExpressCheckout = expressCheckout().DoExpressCheckoutPayment( token, PayerID, PaymentAction.SALE ); DoExpressCheckout.PaymentRequest(0).Amount = responseNVP.GetDouble("PAYMENTREQUEST_0_AMT"); configureLocalization(DoExpressCheckout); //Configura moeda e idioma execute(DoExpressCheckout); //Executa a operação DoExpressCheckout //if (DoExpressCheckout.ResponseNVP.Ack != Ack.SUCCESS) { // throw new Exception(); //} } return(responseNVP); }
public ActionResult Finalize(string token, string PayerId) { Cart cart = new Cart(); ResponseNVP nvp = cart.Finalize(token, PayerId); if (nvp.Get("ACK") == "Success") { string status = nvp.Get("PAYMENTINFO_0_PAYMENTSTATUS"); if (status == "Completed" || status == "Pending") { //regras de negócio da aplicação } return(Redirect("/Cart/Success")); } else { //alguma coisa aconteceu errado, você deverá verificar mensagens de //erro para ver o que aconteceu. return(Redirect("/Cart/Fail")); } }
public virtual Operation execute() { responseNVP = ec.execute(requestNVP); return(this); }