public PaymentInitializeResult Initialize(PaymentMethod currentPayment, string orderNumber, string returnUrl, string orderRef) { Log.InfoFormat("Calling PurchasePartPaymentSale for payment with ID:{0} belonging to order with ID: {1}", currentPayment.Payment.Id, currentPayment.OrderGroupId); CustomerDetails customerDetails = CreateModel(currentPayment); if (customerDetails == null) { throw new Exception("Payment class must be ExtendedPayExPayment when using this payment method"); } PurchasePartPaymentSaleResult result = _paymentManager.PurchasePartPaymentSale(orderRef, customerDetails); if (!result.Status.Success) { return new PaymentInitializeResult { ErrorMessage = result.Status.Description } } ; _paymentActions.UpdatePaymentInformation(currentPayment, result.TransactionNumber, result.PaymentMethod); Log.InfoFormat("Successfully called PurchasePartPaymentSale for payment with ID:{0} belonging to order with ID: {1}", currentPayment.Payment.Id, currentPayment.OrderGroupId); return(new PaymentInitializeResult { Success = true }); }
public PurchasePartPaymentSaleResult PurchasePartPaymentSale(string orderRef, CustomerDetails customerDetails) { Log.InfoFormat("Calling PurchasePartPaymentSale for order with orderRef:{0}. CustomerDetails:{1}", orderRef, customerDetails); string hash = _hasher.Create(_payExSettings.AccountNumber, orderRef, customerDetails, _payExSettings.EncryptionKey); string xmlResult = _orderFacade.PurchasePartPaymentSale(_payExSettings.AccountNumber, orderRef, customerDetails, hash); PurchasePartPaymentSaleResult result = _resultParser.Deserialize <PurchasePartPaymentSaleResult>(xmlResult); if (result.Status.Success) { Log.InfoFormat("Successfully called PurchasePartPaymentSale for order with orderRef:{0}. Result:{1}", orderRef, xmlResult); } else { Log.ErrorFormat("Error when calling PurchasePartPaymentSale for order with orderRef:{0}. Result:{1}", orderRef, xmlResult); } return(result); }