public ITransactionCaptureResult Capture(ITransactionCaptureRequest request) { //to capture a transaction, we'll need authorization id previously obtained from paypal var authorizationId = request.GetParameterAs <string>(PaymentParameterNames.AuthorizationId); var paypalCurrency = PayPalHelper.GetPaypalCurrency(request.CurrencyIsoCode); //create a capture request for paypal var doCaptureRequest = new DoCaptureReq() { DoCaptureRequest = new DoCaptureRequestType() { Version = ApiVersion, AuthorizationID = authorizationId, Amount = new BasicAmountType() { value = Math.Round(request.Amount, 2).ToString("N", new CultureInfo("en-us")), currencyID = paypalCurrency }, CompleteType = CompleteCodeType.COMPLETE } }; //get the service for paypal api var service = GetPayPalApiInterfaceServiceService(); var paypalResponse = service.DoCapture(doCaptureRequest); var result = new TransactionResult(); string error; var success = PayPalHelper.ParseResponseSuccess(paypalResponse, out error); if (success) { result.Success = true; result.SetParameter(PaymentParameterNames.CaptureId, paypalResponse.DoCaptureResponseDetails.PaymentInfo.TransactionID); result.SetParameter(PaymentParameterNames.CaptureResult, paypalResponse.Ack); } else { result.SetParameter(PaymentParameterNames.ErrorMessage, error); } return(result); }
public ITransactionCaptureResult Capture(ITransactionCaptureRequest request) { //to capture a transaction, we'll need authorization id previously obtained from paypal var authorizationId = request.GetParameterAs<string>(PaymentParameterNames.AuthorizationId); var paypalCurrency = PayPalHelper.GetPaypalCurrency(request.CurrencyIsoCode); //create a capture request for paypal var doCaptureRequest = new DoCaptureReq() { DoCaptureRequest = new DoCaptureRequestType() { Version = ApiVersion, AuthorizationID = authorizationId, Amount = new BasicAmountType() { value = Math.Round(request.Amount, 2).ToString("N", new CultureInfo("en-us")), currencyID = paypalCurrency }, CompleteType = CompleteCodeType.COMPLETE } }; //get the service for paypal api var service = GetPayPalApiInterfaceServiceService(); var paypalResponse = service.DoCapture(doCaptureRequest); var result = new TransactionResult(); string error; var success = PayPalHelper.ParseResponseSuccess(paypalResponse, out error); if (success) { result.Success = true; result.SetParameter(PaymentParameterNames.CaptureId, paypalResponse.DoCaptureResponseDetails.PaymentInfo.TransactionID); result.SetParameter(PaymentParameterNames.CaptureResult, paypalResponse.Ack); } else { result.SetParameter(PaymentParameterNames.ErrorMessage, error); } return result; }