public PostProcessPaymentResponse PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest) { var resp = new PostProcessPaymentResponse { }; var payment = postProcessPaymentRequest.Payment; var mcard = new MasterCardApi(Settings); Billing billingAddress = new Billing(); billingAddress.address = new Address() { }; billingAddress.address.country = Utils.GetThreeChracterCountryCode(postProcessPaymentRequest.Order.BillingAddress.CountryCode); // "GBR";//orderDetail.Result.BillingAddress.CountryCode; if (string.IsNullOrEmpty(billingAddress.address.country) == true) { billingAddress.address.country = "GBR"; } billingAddress.address.postcodeZip = postProcessPaymentRequest.Order.BillingAddress.PostCode; billingAddress.address.street = postProcessPaymentRequest.Order.BillingAddress.Address1; billingAddress.address.city = postProcessPaymentRequest.Order.BillingAddress.City; if (!string.IsNullOrEmpty(postProcessPaymentRequest.Order.BillingAddress.Address2)) { billingAddress.address.street2 = postProcessPaymentRequest.Order.BillingAddress.Address2; } billingAddress.address.stateProvince = postProcessPaymentRequest.Order.BillingAddress.State; var boolResonse = mcard.CaptureNotification(ref payment, billingAddress); resp.Payment = payment; resp.Order = postProcessPaymentRequest.Order; if (!boolResonse.IsValid) { resp.AddError(boolResonse.Message); } return(resp); }
public static PostProcessPaymentResponse PostProcessPayment(this PaymentMethodModel paymentMethod, PostProcessPaymentRequest postProcessPaymentRequest) { var resp = new PostProcessPaymentResponse(); IPaymentMethod paymentProcess = null; paymentProcess = GetPaymentProcessor(paymentMethod.SystemName); if (paymentProcess != null) { paymentProcess.Settings = paymentMethod; resp = paymentProcess.PostProcessPayment(postProcessPaymentRequest); } return(resp); }
public PostProcessPaymentResponse PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest) { var resp = new PostProcessPaymentResponse(); return(resp); }
public PostProcessPaymentResponse PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest) { var paymentResponse = new PostProcessPaymentResponse(); var req = new DoExpressCheckoutPaymentReq(); var request = new DoExpressCheckoutPaymentRequestType(); var payment = postProcessPaymentRequest.Payment; var order = postProcessPaymentRequest.Order; req.DoExpressCheckoutPaymentRequest = request; request.Version = Settings.Version; var details = new DoExpressCheckoutPaymentRequestDetailsType(); request.DoExpressCheckoutPaymentRequestDetails = details; details.PaymentAction = PaymentActionCodeType.Authorization; details.PaymentActionSpecified = true; details.Token = postProcessPaymentRequest.Token; details.PayerID = postProcessPaymentRequest.PayerId; var payer = GetPayerInfo(postProcessPaymentRequest.Token, postProcessPaymentRequest.PayerId); var paymentDetail = new PaymentDetailsType(); paymentDetail.OrderTotal = new BasicAmountType(); paymentDetail.OrderTotal.Value = order.GrandTotal.Raw.WithTax.ToString("N", new CultureInfo("en-us")); var currencyCode = (CurrencyCodeType)Utils.GetEnumValueByName(typeof(CurrencyCodeType), order.CurrencyCode); paymentDetail.OrderTotal.currencyID = currencyCode; paymentDetail.ButtonSource = ""; paymentDetail.PaymentAction = PaymentActionCodeType.Authorization; paymentDetail.PaymentActionSpecified = true; PaymentDetailsType[] paymentDetails = { paymentDetail }; details.PaymentDetails = paymentDetails; // System.Net.ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); var credentials = PaypalSecurityHeader(); DoExpressCheckoutPaymentResponseType response = _paypalService2.DoExpressCheckoutPayment(ref credentials, req); if (response.Ack == AckCodeType.Success) { payment.PaymentMethod = "ExpressCheckout"; payment.CvcResult = payer.AccountVerifyCode; payment.AvsResult = payer.AddressVerifyCode; payment.Secure3DResult = ""; payment.CardHolderName = payer.Email; payment.IssuerCountry = payer.CountryCode; payment.CardNo = payer.PayerId; payment.IsVerify = payer.IsVerify; payment.IsValidAddress = payer.IsValidAddress; payment.Info1 = ""; if (!string.IsNullOrEmpty(payer.Address1)) { payment.Info1 = payer.Address1 + ", "; } if (!string.IsNullOrEmpty(payer.Address2)) { payment.Info1 = payment.Info1 + payer.Address2 + ", "; } if (!string.IsNullOrEmpty(payer.City)) { payment.Info1 = payment.Info1 + payer.City + ", "; } if (!string.IsNullOrEmpty(payer.State)) { payment.Info1 = payment.Info1 + payer.State + ", "; } if (!string.IsNullOrEmpty(payer.PostCode)) { payment.Info1 = payment.Info1 + payer.PostCode + ", "; } if (!string.IsNullOrEmpty(payer.CountryCode)) { payment.Info1 = payment.Info1 + payer.CountryCode; } var billAddress = new AddressModel { FirstName = payer.FirstName, LastName = payer.LastName, Address1 = payer.Address1, Address2 = payer.Address2, City = payer.City, State = payer.State, PostCode = payer.PostCode, Country = payer.Country, CountryCode = payer.CountryCode, PhoneNo = payer.CountryCode }; order.BillingAddress = billAddress;//Mapper.Map<PayerInfo, Address>(payer); paymentResponse.Payment = payment; paymentResponse.Order = order; paymentResponse.Payment.AuthCode = response.DoExpressCheckoutPaymentResponseDetails.PaymentInfo[0].TransactionID; paymentResponse.Payment.Status = PaymentStatus.Authorized.GetHashCode(); } else { paymentResponse.Order = order; payment.Status = PaymentStatus.Declined.GetHashCode(); payment.IsValid = false; paymentResponse.Payment = payment; paymentResponse.AddError("decline"); foreach (var er in response.Errors) { paymentResponse.AddError(er.ErrorCode + " : " + er.ShortMessage); } } //if (Settings.IsImmediateCapture) //{ // var capturePaymentRequest = new CapturePaymentRequest(); // var pRes = new CapturePaymentResult(); // capturePaymentRequest.CurrencyCode = order.CurrencyCode; // capturePaymentRequest.CaptureTransactionId = Convert.ToString(paymentResponse.Payment.AuthCode); // capturePaymentRequest.OrderTotal = paymentResponse.Payment.OrderAmount; // pRes = Capture(capturePaymentRequest); // if (pRes.Success && string.IsNullOrEmpty(pRes.CaptureTransactionCode) == false) // { // paymentResponse.Payment.AuthCode = pRes.CaptureTransactionCode; // paymentResponse.Payment.Status = PaymentStatus.Paid.GetHashCode(); // paymentResponse.Payment.PaidAmount = capturePaymentRequest.OrderTotal; // paymentResponse.Order.PaymentStatus = PaymentStatus.Paid; // } // else // { // paymentResponse.Payment.PSPResponseMessage = pRes.CaptureTransactionResult; // } //} return(paymentResponse); }