//private string GetPaymentName() //{ // //PaymentMethod payment; // //payment = new TwoCheckoutPaymentMethod(); // //return payment.Name; // return "2Checkout"; //} protected void Page_Load(object sender, EventArgs e) { string storeUrl = DataAccessContext.StoreRetriever.GetStorefrontUrlByOrderID(OrderID); if (VerifyReferrer()) { PaymentLog paymentLog = new PaymentLog(); paymentLog.OrderID = OrderID; paymentLog.PaymentResponse = Request.Form.ToString(); paymentLog.PaymentGateway = "2Checkout"; paymentLog.PaymentType = String.Empty; DataAccessContext.PaymentLogRepository.Save(paymentLog); //PaymentLogAccess.Create( OrderID, Request.Form.ToString(), GetPaymentName(), "" ); if (CreditCardProcess == "Y") { UpdateOrderDetails(); OrderNotifyService order = new OrderNotifyService(OrderID); order.SendOrderEmail(); order.ProcessPaymentComplete(); Response.Redirect(String.Format("{0}/CheckoutComplete.aspx?OrderID={1}", storeUrl, OrderID + "&IsTransaction=true")); } else { Response.Redirect(String.Format("{0}/CheckoutNotComplete.aspx?OrderID={1}", storeUrl, OrderID)); } } else { Response.Redirect(String.Format("{0}/CheckoutNotComplete.aspx?OrderID={1}", storeUrl, OrderID)); } }
private void ProcessPayPalStandardIPN() { OrderNotifyService order = new OrderNotifyService(Invoice); Order details = DataAccessContext.OrderRepository.GetOne(order.OrderID); if (String.IsNullOrEmpty(details.GatewayPaymentStatus)) { order.SendOrderEmail(); } details.GatewayOrderID = Invoice; details.GatewayPaymentStatus = PaymentStatus; DataAccessContext.OrderRepository.Save(details); // Create the IPN Transaction switch (PaymentStatus.ToLower()) { case "completed": case "canceled_reversal": order.ProcessPaymentComplete(); break; case "refunded": case "reversed": order.ProcessPaymentFailed(); break; } }
protected void Page_Load(object sender, EventArgs e) { string result = Request.Form["result"]; string orderID; orderID = result.Substring(2, result.Length - 2); string amount = Request.Form["amt"]; string apCode = Request.Form["apCode"]; string resultCode = result.Substring(0, 2); if (resultCode == "00") //success { OrderNotifyService order = new OrderNotifyService(orderID); order.SendOrderEmail(); order.ProcessPaymentComplete(); //Response.Write( resultCode + "<br>" + orderID ); } else { Order order = DataAccessContext.OrderRepository.GetOne(orderID); order.GatewayOrderID = apCode; order.GatewayPaymentStatus = "testja"; DataAccessContext.OrderRepository.Save(order); //01 not enough fund //99 Unknow Error //Show error } }
private void SaveDataKPayment() { string result = "IsApproved:" + IsApproved.ToString() + ", "; result += String.Format("RespCode:{0}, ", RespCode); result += String.Format("AuthCode:{0}, ", AuthCode); result += String.Format("UAID:{0}, ", UAID); result += String.Format("CardType:{0}", CardType); PaymentLog paymentLog = new PaymentLog(); paymentLog.OrderID = BankInvoiceID; paymentLog.PaymentResponse = result; paymentLog.PaymentGateway = GetPaymentName(); paymentLog.PaymentType = String.Empty; DataAccessContext.PaymentLogRepository.Save(paymentLog); //PaymentLogAccess.Create( BankInvoiceID, result, GetPaymentName(), "" ); OrderNotifyService order = new OrderNotifyService(BankInvoiceID); if (IsApproved) { order.SendOrderEmail(); order.ProcessPaymentComplete(); Response.Redirect(String.Format("~/CheckoutComplete.aspx?OrderID={0}&IsTransaction=True", BankInvoiceID)); } else { order.ProcessPaymentFailed(); Response.Redirect(String.Format("~/CheckoutNotComplete.aspx?OrderID={0}", BankInvoiceID)); } }
private void ProcessRBSWorldPayIPN() { OrderNotifyService order = new OrderNotifyService(Invoice); Order orderDetails = DataAccessContext.OrderRepository.GetOne(order.OrderID); if (PaymentStatus.ToUpper() == "Y") { order.SendOrderEmail(); } //OrdersAccess.UpdateGatewayOrderID( Invoice, TransID ); //OrdersAccess.UpdateGatewayStatusByGatewayOrderID( TransID, PaymentStatus ); orderDetails.GatewayOrderID = TransID; orderDetails.GatewayPaymentStatus = PaymentStatus; VerifyAvsAndCvv(orderDetails); string retURL = UrlPath.StorefrontUrl; // Create the IPN Transaction if (PaymentStatus.ToUpper() == "Y") { uxCheckoutHeaderLabel.Text = "Thank you for your order."; uxCheckoutDetailLabel.Text = "To view order information, please click the link below."; order.ProcessPaymentComplete(); uxCheckoutLink.NavigateUrl = String.Format(UrlPath.StorefrontUrl + "CheckoutComplete.aspx?OrderID={0}", order.OrderID + "&IsTransaction=true"); uxUrlHidden.Value = String.Format(UrlPath.StorefrontUrl + "CheckoutComplete.aspx?OrderID={0}", order.OrderID + "&IsTransaction=true"); uxHomeLink.Visible = false; retURL = String.Format(UrlPath.StorefrontUrl + "CheckoutComplete.aspx?OrderID={0}", order.OrderID + "&IsTransaction=true"); } else { uxCheckoutHeaderLabel.Text = "Order Not Complete"; uxCheckoutDetailLabel.Text = "Your Order cannot be completed.<br/><br/>Please verify your payment information and try checkout again."; order.ProcessPaymentFailed(); uxCheckoutLink.NavigateUrl = String.Format(UrlPath.StorefrontUrl + "CheckoutNotComplete.aspx?OrderID={0}", order.OrderID); uxUrlHidden.Value = String.Format(UrlPath.StorefrontUrl + "CheckoutNotComplete.aspx?OrderID={0}", order.OrderID); uxCheckoutLink.Visible = false; uxHomeLink.NavigateUrl = UrlPath.StorefrontUrl; retURL = String.Format(UrlPath.StorefrontUrl + "CheckoutNotComplete.aspx?OrderID={0}", order.OrderID); } HtmlMeta meta = new HtmlMeta(); meta.ID = "meta" + "refresh"; meta.HttpEquiv = "refresh"; meta.Content = "0;URL=" + retURL; Page.Header.Controls.Add(meta); }
private void ProcessZeroPricePayment(CheckoutDetails checkout) { OrderNotifyService order = CreateOrder(checkout); Exception emailEx = order.SendOrderEmailNoThrow(); StoreError.Instance.Exception = emailEx; order.ProcessPaymentComplete(); StoreContext.ClearCheckoutSession(); MainContext.RedirectMainControl("OrdersEdit.ascx", String.Format("OrderID={0}", order.OrderID)); }
private void ProcessZeroPricePayment(CheckoutDetails checkout) { OrderNotifyService order = CreateOrder(checkout); Exception emailEx = order.SendOrderEmailNoThrow(); StoreError.Instance.Exception = emailEx; order.ProcessPaymentComplete(); StoreContext.ClearCheckoutSession(); Response.Redirect("CheckoutComplete.aspx?OrderID=" + order.OrderID + "&IsTransaction=True" + GenerateIsEmailOKString(emailEx)); }
private void ProcessCreditCardPaymentSuccess( OrderNotifyService order, string gatewayOrderID, string log, string cvvStatus, string AvsAddrStatus, string AvsZipStatus ) { if (!String.IsNullOrEmpty(log)) { PaymentLog paymentLog = new PaymentLog(); paymentLog.OrderID = order.OrderID; paymentLog.PaymentResponse = log; paymentLog.PaymentGateway = order.PaymentMethod; paymentLog.PaymentType = "ProcessCreditCard"; DataAccessContext.PaymentLogRepository.Save(paymentLog); } if (!String.IsNullOrEmpty(gatewayOrderID) || !String.IsNullOrEmpty(cvvStatus) || !String.IsNullOrEmpty(AvsAddrStatus) || !String.IsNullOrEmpty(AvsZipStatus)) { Order orderDetails = DataAccessContext.OrderRepository.GetOne(order.OrderID); orderDetails.GatewayOrderID = gatewayOrderID; orderDetails.CvvStatus = cvvStatus; orderDetails.AvsAddrStatus = AvsAddrStatus; orderDetails.AvsZipStatus = AvsZipStatus; DataAccessContext.OrderRepository.Save(orderDetails); } Exception emailEx = order.SendOrderEmailNoThrow(); StoreError.Instance.Exception = emailEx; order.ProcessPaymentComplete(); StoreContext.ClearCheckoutSession(); Response.Redirect("CheckoutComplete.aspx?OrderID=" + order.OrderID + "&IsTransaction=True" + GenerateIsEmailOKString(emailEx)); }
protected void Page_Load(object sender, EventArgs e) { // Extract the XML from the request. Stream RequestStream = Request.InputStream; StreamReader RequestStreamReader = new StreamReader(RequestStream); string RequestXml = RequestStreamReader.ReadToEnd(); RequestStream.Close(); Log.Debug("Request XML:\n" + RequestXml); string gatewayOrderID = ""; string orderID; OrderNotifyService orderBusiness; try { // Act on the XML. switch (EncodeHelper.GetTopElement(RequestXml)) { case "new-order-notification": Log.Debug("Start new-order-notification"); NewOrderNotification N1 = (NewOrderNotification)EncodeHelper.Deserialize(RequestXml, typeof(NewOrderNotification)); string OrderNumber1 = N1.googleordernumber; PaymentLogUpdateNewOrderNotification(N1); _serialNumber = N1.serialnumber; Log.Debug("-********************- Check DataAccessContext.GetOrderIDByGateWayID Data -**********************-"); Log.Debug("GetOrderIDByGateWayID ( " + OrderNumber1 + " ) = " + DataAccessContext.OrderRepository.GetOrderIDByGatewayID(OrderNumber1)); Log.Debug("-********************- END Check DataAccessContext.GetOrderIDByGateWayID Data -**********************-"); if (DataAccessContext.OrderRepository.GetOrderIDByGatewayID(OrderNumber1) == "0") { BuildShoppingCart(RequestXml, N1); Log.Debug("Start converting to order"); OrderCreateService orderCreateService = new OrderCreateService( StoreContext.ShoppingCart, StoreContext.CheckoutDetails, StoreContext.Culture, StoreContext.Currency, AffiliateHelper.GetAffiliateCode(), WebUtilities.GetVisitorIP()); string storeID = EncodeHelper.GetElementValue(RequestXml, "StoreID"); DataAccessContext.SetStoreRetriever(new StoreRetriever(storeID)); OrderAmount orderAmount = orderCreateService.GetOrderAmount(Customer.Null) .Add(CartItemPromotion.CalculatePromotionShippingAndTax( StoreContext.CheckoutDetails, StoreContext.ShoppingCart.SeparateCartItemGroups(), Customer.Null)); Order order = orderCreateService.PlaceOrderAnonymous(orderAmount, SystemConst.UnknownUser, CreateBuyerBillingAddress(N1), ConvertToString(N1.buyerbillingaddress.email), DataAccessContext.StoreRetriever, StoreContext.Culture); AffiliateOrder affiliateorder = new AffiliateOrder(); affiliateorder.AffiliateCode = AffiliateHelper.GetAffiliateCode(); affiliateorder.CreateAffiliateOrder(order.OrderID, orderAmount.Subtotal, orderAmount.Discount); orderBusiness = new OrderNotifyService(order.OrderID); Log.Debug("End converting to order"); Log.Debug("Start sending order email"); orderBusiness.SendOrderEmail(); Log.Debug("End sending order email"); Order orderDetail = DataAccessContext.OrderRepository.GetOne(order.OrderID); orderDetail.GatewayOrderID = OrderNumber1; Log.Debug("OrderDetail.GatewayOrderID = " + OrderNumber1); Log.Debug("Start Save Order Detail"); DataAccessContext.OrderRepository.Save(orderDetail); Log.Debug("End Save Order Detail"); DataAccessContext.SetStoreRetriever(new StoreRetriever()); } else { Order orderDetail = DataAccessContext.OrderRepository.GetOne( DataAccessContext.OrderRepository.GetOrderIDByGatewayID(OrderNumber1)); Log.Debug("-**************************- start Check Error -**************************-"); Log.Debug("N1.googleOrderNumber = " + N1.googleordernumber); Log.Debug("OrderNumber1 = " + OrderNumber1); Log.Debug("N1.buyerbillingaddress.contactname = " + ConvertToString(N1.buyerbillingaddress.contactname)); Log.Debug("N1.buyerbillingaddress.address1 = " + ConvertToString(N1.buyerbillingaddress.address1)); Log.Debug("N1.buyerbillingaddress.city = " + ConvertToString(N1.buyerbillingaddress.city)); Log.Debug("N1.buyerbillingaddress.region = " + ConvertToString(N1.buyerbillingaddress.contactname)); Log.Debug("N1.buyerbillingaddress.postalcode = " + ConvertToString(N1.buyerbillingaddress.postalcode)); Log.Debug("orderDetail.Billing.Company = " + orderDetail.Billing.Company); Log.Debug("orderDetail.Billing.Country = " + orderDetail.Billing.Country); Log.Debug("orderDetail.Billing.Phone = " + orderDetail.Billing.Phone); Log.Debug("orderDetail.Billing.Fax = " + orderDetail.Billing.Fax); Log.Debug("-**************************- End Check Error -**************************-"); orderDetail.Billing = new Vevo.Base.Domain.Address(ConvertToString(N1.buyerbillingaddress.contactname), String.Empty, orderDetail.Billing.Company, ConvertToString(N1.buyerbillingaddress.address1), ConvertToString(N1.buyerbillingaddress.address2), ConvertToString(N1.buyerbillingaddress.city), ConvertToString(N1.buyerbillingaddress.region), ConvertToString(N1.buyerbillingaddress.postalcode), orderDetail.Billing.Country, orderDetail.Billing.Phone, orderDetail.Billing.Fax); orderDetail.Email = ConvertToString(N1.buyerbillingaddress.email); DataAccessContext.OrderRepository.Save(orderDetail); } Log.Debug("End new-order-notification"); break; case "risk-information-notification": Log.Debug("risk-information-notification"); RiskInformationNotification N2 = (RiskInformationNotification)EncodeHelper.Deserialize( RequestXml, typeof(RiskInformationNotification)); // This notification tells us that Google has authorized the order // and it has passed the fraud check. // Use the data below to determine if you want to accept the order, then start processing it. gatewayOrderID = N2.googleordernumber; _serialNumber = N2.serialnumber; PaymentLogUpdateRiskInformation(N2); VerifyAvsAndCvv(N2); break; case "order-state-change-notification": Log.Debug("Start order-state-change-notification"); OrderStateChangeNotification N3 = (OrderStateChangeNotification)EncodeHelper.Deserialize( RequestXml, typeof(OrderStateChangeNotification)); _serialNumber = N3.serialnumber; PaymentLogUpdateOrderStateChange(N3); if (N3.newfinancialorderstate != N3.previousfinancialorderstate) { Order orderDetail = DataAccessContext.OrderRepository.GetOne( DataAccessContext.OrderRepository.GetOrderIDByGatewayID(N3.googleordernumber)); orderDetail.GatewayPaymentStatus = N3.newfinancialorderstate.ToString(); DataAccessContext.OrderRepository.Save(orderDetail); switch (N3.newfinancialorderstate) { case FinancialOrderState.PAYMENT_DECLINED: case FinancialOrderState.CANCELLED_BY_GOOGLE: SendErrorEmail(N3); break; case FinancialOrderState.CHARGEABLE: if (DataAccessContext.Configurations.GetBoolValueNoThrow("GCheckoutChargeAuto")) { GoogleChargeOrder(N3.googleordernumber); } break; } } Log.Debug("End order-state-change-notification"); break; case "charge-amount-notification": Log.Debug("Start charge-amount-notification"); ChargeAmountNotification N4 = (ChargeAmountNotification)EncodeHelper.Deserialize(RequestXml, typeof(ChargeAmountNotification)); // Google has successfully charged the customer's credit card. gatewayOrderID = N4.googleordernumber; _serialNumber = N4.serialnumber; PaymentLogChargeAmountUpdate(N4); orderID = DataAccessContext.OrderRepository.GetOrderIDByGatewayID(gatewayOrderID); orderBusiness = new OrderNotifyService(orderID); orderBusiness.ProcessPaymentComplete(); Log.Debug("End charge-amount-notification"); break; case "refund-amount-notification": Log.Debug("Start refund-amount-notification"); RefundAmountNotification N5 = (RefundAmountNotification)EncodeHelper.Deserialize( RequestXml, typeof(RefundAmountNotification)); // Google has successfully refunded the customer's credit card. gatewayOrderID = N5.googleordernumber; _serialNumber = N5.serialnumber; //decimal RefundedAmount = N5.latestrefundamount.Value; PaymentLogUpdateRefundAmount(N5); Order orderDetails = DataAccessContext.OrderRepository.GetOne( DataAccessContext.OrderRepository.GetOrderIDByGatewayID(gatewayOrderID)); orderDetails.PaymentComplete = false; DataAccessContext.OrderRepository.Save(orderDetails); Log.Debug("End refund-amount-notification"); break; case "chargeback-amount-notification": Log.Debug("Start chargeback-amount-notification"); ChargebackAmountNotification N6 = (ChargebackAmountNotification)EncodeHelper.Deserialize( RequestXml, typeof(ChargebackAmountNotification)); // A customer initiated a chargeback with his credit card company to get her money back. gatewayOrderID = N6.googleordernumber; _serialNumber = N6.serialnumber; decimal ChargebackAmount = N6.latestchargebackamount.Value; PaymentLogUpdateChargeback(N6); orderDetails = DataAccessContext.OrderRepository.GetOne( DataAccessContext.OrderRepository.GetOrderIDByGatewayID(gatewayOrderID)); orderDetails.GatewayPaymentStatus = "ChargeBack"; DataAccessContext.OrderRepository.Save(orderDetails); Log.Debug("End chargeback-amount-notification"); break; default: break; } } catch (Exception ex) { DataAccessContext.SetStoreRetriever(new StoreRetriever()); Log.Debug(ex.ToString()); } }