public DoExpressCheckoutPaymentResponse SendPayPalDoExpressCheckoutPaymentRequest(ApplicationCart cart, string token, string payerId) { try { WebUILogging.LogMessage("SendPayPalDoExpressCheckoutPaymentRequest"); DoExpressCheckoutPaymentResponse response = _payPalTransactionRegistrar.SendDoExpressCheckoutPayment(token, payerId, cart.Currency, cart.TotalPrice); // Add a PayPal transaction record PayPalTransaction transaction = new PayPalTransaction { RequestId = response.RequestId, TrackingReference = cart.Id.ToString(), RequestTime = DateTime.Now, RequestStatus = response.ResponseStatus.ToString(), TimeStamp = response.TIMESTAMP, RequestError = response.ErrorToString, Token = response.TOKEN, RequestData = response.ToString, PaymentTransactionId = response.PaymentTransactionId, PaymentError = response.PaymentErrorToString, }; // Store this transaction in your Database return(response); } catch (Exception ex) { WebUILogging.LogException(ex.Message, ex); } return(null); }
public GetExpressCheckoutDetailsResponse SendPayPalGetExpressCheckoutDetailsRequest(string token) { try { WebUILogging.LogMessage("SendPayPalGetExpressCheckoutDetailsRequest"); GetExpressCheckoutDetailsResponse response = _payPalTransactionRegistrar.SendGetExpressCheckoutDetails(token); // Add a PayPal transaction record PayPalTransaction transaction = new PayPalTransaction { RequestId = response.RequestId, TrackingReference = response.TrackingReference, RequestTime = DateTime.Now, RequestStatus = response.ResponseStatus.ToString(), TimeStamp = response.TIMESTAMP, RequestError = response.ErrorToString, Token = response.TOKEN, PayerId = response.PAYERID, RequestData = response.ToString, }; // Store this transaction in your Database return(response); } catch (Exception ex) { WebUILogging.LogException(ex.Message, ex); } return(null); }
public void TestInit() { paypalTransaction = new PayPalTransaction(); shippingPrice = 10; shippingDiscount = 10; items = new List <PayPalItem> { new PayPalItem() { Name = "Product number 01", Description = "That's my description of my product", Price = 50, Sku = "1001", Currency = PayPalCurrency.AUD, Quantity = 3, Tax = 0 }, new PayPalItem() { Name = "Product number 02", Description = "That's my description of my product", Price = 40, Sku = "1002", Currency = PayPalCurrency.AUD, Quantity = 1, Tax = 1.3 } }; }
/// <summary> /// Saves the transactions. /// </summary> /// <param name="transactions">The transactions.</param> /// <param name="marketPlaceId">The market place identifier.</param> /// <param name="historyId">The history identifier.</param> /// <exception cref="System.InvalidOperationException">could not save transactions</exception> private void SaveTransactions(IList <PayPal3dPartyTransactionItem> transactions, int marketPlaceId, int historyId) { if (transactions.Any()) { return; } PayPalTransaction transaction = new PayPalTransaction { Created = DateTime.UtcNow, CustomerMarketPlaceId = marketPlaceId, CustomerMarketPlaceUpdatingHistoryRecordId = historyId }; int transactionId = (int)PayPalQueries.SaveTransaction(transaction); if (transactionId < 1) { throw new InvalidOperationException("could not save paypal transactionItem"); } var res = PayPalQueries.SaveTransactionItems(transactions.Select(t => CreateSingleTransaction(t, transactionId))); if (!res.HasValue || !res.Value) { throw new InvalidOperationException("could not save transactionItem items"); } }
public string SubmitExpressOrder(PayPalTransaction paypaltransaction) { CK1 clint = new CK1(); var request = new ExpressCompleteOrderRequest() { UserKey = CK1Config.getUserKey(), Token = CK1Config.getToken(), ActionType = EnumActionType.Submit, OrderSign = paypaltransaction.OrderSign, }; ExpressCompleteOrderResponse response = clint.ExpressCompleteOrder(request); return(response.Message); }
/// <summary> /// Saves the transaction. /// </summary> /// <param name="transaction">The transaction.</param> /// <returns></returns> public Optional <int> SaveTransaction(PayPalTransaction transaction) { using (var connection = GetOpenedSqlConnection2()) { var cmd = GetInsertCommand(transaction, connection.SqlConnection(), "MP_PayPalTransaction", "Id"); if (!cmd.HasValue) { return(Optional <int> .Empty()); } using (var sqlCommand = cmd.Value) { return(ExecuteScalarAndLog <int>(sqlCommand)); } } }
public SetExpressCheckoutResponse SendPayPalSetExpressCheckoutRequest(ApplicationCart cart, string serverURL, string userEmail = null) { try { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; ServicePointManager.DefaultConnectionLimit = 9999; WebUILogging.LogMessage("SendPayPalSetExpressCheckoutRequest"); // Optional handling of cart items: If there is only a single item being sold we don't need a list of expressCheckoutItems // However if you're selling a single item as a sale consider also adding it as an ExpressCheckoutItem as it looks better once you get to PayPal's site // Note: ExpressCheckoutItems are currently NOT stored by PayPal against the sale in the users order history so you need to keep your own records of what items were in a cart List <ExpressCheckoutItem> expressCheckoutItems = null; if (cart.Items != null) { expressCheckoutItems = new List <ExpressCheckoutItem>(); foreach (ApplicationCartItem item in cart.Items) { expressCheckoutItems.Add(new ExpressCheckoutItem(item.Quantity, item.Price, item.Name, item.Description)); } } SetExpressCheckoutResponse response = _payPalTransactionRegistrar.SendSetExpressCheckout(cart.Currency, cart.TotalPrice, cart.PurchaseDescription, cart.Id.ToString(), serverURL, expressCheckoutItems, userEmail); // Add a PayPal transaction record PayPalTransaction transaction = new PayPalTransaction { RequestId = response.RequestId, TrackingReference = cart.Id.ToString(), RequestTime = DateTime.Now, RequestStatus = response.ResponseStatus.ToString(), TimeStamp = response.TIMESTAMP, RequestError = response.ErrorToString, Token = response.TOKEN, }; // Store this transaction in your Database return(response); } catch (Exception ex) { WebUILogging.LogException(ex.Message, ex); } return(null); }
public string SubmitExpressOrder(PayPalTransaction paypaltransaction) { ShipRateSOAP s = new ShipRateSOAP(); UpdateOrderStatusInfoArray updateOrderRequestInfo = new UpdateOrderStatusInfoArray(); updateOrderRequestInfo.orderStatus = "sumbmitted"; string message = ""; //string time; DateTime time; var request = s.updateOrderStatus( HR, updateOrderRequestInfo, paypaltransaction.OrderSign, out message, out time ); return(message); }
public PayPalTransaction GetTransactionDetailsByUserID(int userID) { var transaction = Context.UserTransactions.OrderByDescending(m => m.TransactionDate).FirstOrDefault(m => m.UserID == userID); if (transaction != null) { return(new PayPalTransaction(transaction)); } else { //Check Basic membership var result = new PayPalTransaction(); var basicmemeber = Context.Users.FirstOrDefault(x => x.UserID == userID && x.MemberShipType == 1); if (basicmemeber != null) { if (basicmemeber.MemberShipType == 1) { result.IsBasic = true; result.PendingCardCount = basicmemeber.CardsCount; } } return(result); } }
public ShipOrder AddOutboundOrder(DispatchRequest dispatchrequest, PayPalTransaction paypaltransaction) { #region 生成包裹 var product = new List <ExpressProduct>(); foreach (var item in paypaltransaction.PayPalTransactionPaymentItems) { product.Add(new ExpressProduct { CustomsTitleCN = "怀表", CustomsTitleEN = "POCKET WATCH", Quantity = Convert.ToInt32(item.PaymentItemQuantity), SKU = item.Association.Product.Sku, Weight = item.Association.Product.Weight, DeclareValue = dispatchrequest.goodsDeclareWorth / paypaltransaction.PayPalTransactionPaymentItems.Count }); } var packageList = new List <ExpressPackage>(); packageList.Add(new ExpressPackage { Custom = dispatchrequest.Custom, ShipToAddress = new ShipToAddress { Contact = dispatchrequest.ShiptoName, Street1 = dispatchrequest.ShipToStreet, Street2 = dispatchrequest.ShipToStreet2, City = dispatchrequest.ShiptoCity, Province = dispatchrequest.ShipToState, Country = dispatchrequest.ShipToCountryName, PostCode = dispatchrequest.ShipToZip, }, Packing = new Evisou.Ims.Contract.chukou1.Packing { Height = dispatchrequest.Height, Length = dispatchrequest.Length, Width = dispatchrequest.Width, }, Remark = "备注信息", Status = OrderExpressState.Initial, TrackCode = "", Weight = dispatchrequest.goodsWeight, ProductList = product.ToArray(), }); var orderDetail = new ExpressOrder { IsTracking = false, Location = "GZ", Remark = "测试订单", PackageList = packageList.ToArray(), }; #endregion ShipOrder order = new ShipOrder(); var clint = new CK1(); var request = new ExpressAddOrderNewRequest { UserKey = CK1Config.getUserKey(), Token = CK1Config.getToken(), Submit = false, OrderDetail = orderDetail, ExpressTypeNew = dispatchrequest.Express, }; ExpressAddOrderResponse response = clint.ExpressAddOrderNew(request); try { order = new ShipOrder { Message = response.Message, OrderSign = response.OrderSign }; } catch (Exception ex) { throw ex.InnerException; } return(order); }
protected abstract Task OnVerifiedAsync(PayPalTransaction transaction);
public async Task <ActionResult> Index(FormCollection form) { if (form["selectedProducts"] == null) { return(View(products)); } var skuArray = form["selectedProducts"].Length > 0 ? form["selectedProducts"].Split(',') : new string[] { }; var selectedProducts = skuArray.Select(item => products.FirstOrDefault(x => x.Sku == item)).Where(product => product != null).ToList(); double shippingPrice = 10; double shippingDiscount = 10; //taking the quantities foreach (var item in selectedProducts) { var quantity = form[$"quantity_{item.Sku}"]; item.Quantity = Convert.ToInt32(quantity); } var shippingAddress = new PayPalShippingAddress() { RecipientName = form["RecipientName"], Line1 = form["Line1"], Line2 = form["Line2"], City = form["City"], CountryCode = form["CountryCode"], PostalCode = form["PostalCode"], Phone = form["Phone"], State = form["State"] }; var transaction = new PayPalTransaction( selectedProducts, shippingAddress, form["invoiceNumber"], "The payment transaction description.", AllowedPaymentMethod.INSTANT_FUNDING_SOURCE, PayPalCurrency.AUD, shippingPrice, shippingDiscount); var payment = new PaypalPayment( Intent.SALE, PaymentMethod.PAYPAL, "Contact us for any questions on your order.", transaction); var createPayment = await paypalCheckout.CreatePayment(payment); if (createPayment.Error == null) { var redirectUrl = createPayment.Links.FirstOrDefault(x => x.Method == PayPalLinkMethod.REDIRECT)?.Href; Response.Redirect(redirectUrl, true); } else { ViewBag.Error = createPayment.Error.Message; ViewBag.ErrorDetails = createPayment.Error.Details; ViewBag.Output = JsonConvert.SerializeObject(payment); } return(View(products)); }
public ShipOrder AddExpressOrder(DispatchRequest dispatchrequest, PayPalTransaction paypaltransaction) { ShipRateSOAP s = new ShipRateSOAP(); addOrderRequestInfoArray addOrderRequestInfo = new addOrderRequestInfoArray(); addOrderRequestInfo.shippingMethod = dispatchrequest.Express; addOrderRequestInfo.recipientCountry = dispatchrequest.ShipToCountryName; addOrderRequestInfo.recipientName = dispatchrequest.ShiptoName; addOrderRequestInfo.recipientAddress = dispatchrequest.ShipToStreet; addOrderRequestInfo.recipientZipCode = dispatchrequest.ShipToZip; addOrderRequestInfo.recipientCity = dispatchrequest.ShiptoCity; addOrderRequestInfo.recipientState = string.IsNullOrEmpty(dispatchrequest.ShipToState) ? dispatchrequest.ShiptoCity : dispatchrequest.ShipToState; addOrderRequestInfo.orderStatus = "confirmed";//"preprocess"; addOrderRequestInfo.recipientPhone = "123456963"; addOrderRequestInfo.recipientEmail = paypaltransaction.Receiver; addOrderRequestInfo.goodsDescription = dispatchrequest.goodsDescription; addOrderRequestInfo.goodsQuantity = "1"; // //addOrderRequestInfo.goodsQuantitySpecified = true; addOrderRequestInfo.goodsDeclareWorth = dispatchrequest.goodsDeclareWorth.ToString(); // // addOrderRequestInfo.goodsDeclareWorthSpecified = true; addOrderRequestInfo.isReturn = "1"; addOrderRequestInfo.evaluate = (dispatchrequest.goodsDeclareWorth + 1M).ToString(); //addOrderRequestInfo.evaluateSpecified = true; List <goodsDetailsArray> list = new List <goodsDetailsArray>(); list.Add(new goodsDetailsArray { detailWorth = dispatchrequest.goodsDeclareWorth.ToString(), detailQuantity = "1", // detailQuantitySpecified = true, detailDescription = dispatchrequest.goodsDescription, // detailWorthSpecified = true }); addOrderRequestInfo.goodsDetails = list.ToArray <goodsDetailsArray>(); string customerOrderNo, operatingTime, orderActionStatus, exceptionCode, notifyUrl, note, alert, area, trackingNumber; ShipOrder order = new ShipOrder(); /* var request = s.addOrder( * HR, * addOrderRequestInfo, * out customerOrderNo, * out operatingTime, * out orderActionStatus, * out exceptionCode, * out notifyUrl, * out note, * out alert * ); * order = new ShipOrder * { * Message = note, * OrderSign = request.ToString() * }; * * order.Message = note; * order.OrderSign =request??request.ToString(); * * var aa = order;*/ try { var request = s.addOrder( HR, addOrderRequestInfo, out customerOrderNo, out operatingTime, out orderActionStatus, out exceptionCode, out notifyUrl, out note, out alert, out area, out trackingNumber ); order = new ShipOrder { Message = note, OrderSign = request ?? request.ToString() }; } catch (Exception ex) { throw ex.InnerException; } return(order); }