/// <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 ResponseNVP Finalize(string token, string PayerId) { GetExpressCheckoutDetailsOperation getEc = ec.GetExpressCheckoutDetails( token ); getEc.sandbox().execute(); DoExpressCheckoutPaymentOperation doEc = ec.DoExpressCheckoutPayment( token, PayerId, PaymentAction.SALE ); doEc.CurrencyCode = CurrencyCode.BRAZILIAN_REAL; doEc.PaymentRequest(0).Amount = getEc.ResponseNVP.GetDouble("PAYMENTREQUEST_0_AMT"); doEc.sandbox().execute(); return(doEc.ResponseNVP); }