/// <summary> /// valid strings are "TEST" for sandbox use /// "LIVE" for production use /// </summary> /// <param name="mode"></param> public IPNHandler(PaypalPaymentFactory.PaypalMode mode, HttpContext context) { try { this.ModeLiveTest = mode; //Boomers.Utilities.Documents.TextLogger.LogItem("paypalIPN", "getting base url"); this.PostUrl = PaypalPaymentFactory.GetBaseUrl(mode); //Boomers.Utilities.Documents.TextLogger.LogItem("paypalIPN", "filling properties"); this._Message = this.FillIPNProperties(context); //Boomers.Utilities.Documents.TextLogger.LogItem("paypalIPN", "checking status"); //throw new Exception("Boom"); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } }
private PayPalMessage FillIPNProperties(HttpContext context) { PayPalMessage message = new PayPalMessage(); try { message.RequestLength = context.Request.Form.ToString(); message.PayerCity = context.Request.Form["address_city"]; message.PayerCountry = context.Request.Form["address_country"]; message.PayerCountryCode = context.Request.Form["address_country_code"]; message.PayerState = context.Request.Form["address_state"]; message.PayerAddressStatus = context.Request.Form["address_status"]; message.PayerAddress = context.Request.Form["address_street"]; message.PayerZipCode = context.Request.Form["address_zip"]; message.PayerFirstName = context.Request.Form["first_name"]; message.PayerLastName = context.Request.Form["last_name"]; message.PayerBusinessName = context.Request.Form["payer_business_name"]; message.PayerEmail = context.Request.Form["payer_email"]; message.PayerID = context.Request.Form["payer_id"]; message.PayerStatus = context.Request.Form["payer_status"]; message.PayerPhone = context.Request.Form["contact_phone"]; message.Business = context.Request.Form["business"]; message.ItemName = context.Request.Form["item_name"]; message.ItemNumber = context.Request.Form["item_number"]; message.Quantity = context.Request.Form["quantity"]; message.ReceiverEmail = context.Request.Form["receiver_email"]; message.ReceiverID = context.Request.Form["receiver_id"]; message.Custom = context.Request.Form["custom"]; message.Memo = context.Request.Form["memo"]; message.Invoice = context.Request.Form["invoice"]; if (message.Invoice != null && message.Invoice.Contains(':')) message.Invoice = message.Invoice.Split(':').First(); message.Tax = context.Request.Form["tax"]; message.QuantityCartItems = context.Request.Form["num_cart_items"]; message.PaymentDate = context.Request.Form["payment_date"]; message.PaymentStatus = context.Request.Form["payment_status"]; message.Status = context.Request.Form["status"]; message.PaymentType = context.Request.Form["payment_type"]; message.PendingReason = context.Request.Form["pending_reason"]; message.TXN_ID = context.Request.Form["txn_id"]; message.TXN_Type = context.Request.Form["txn_type"]; message.PaymentFee = context.Request.Form["mc_fee"]; message.PaymentGross = context.Request.Form["mc_gross"]; message.NotifyVersion = context.Request.Form["notify_version"]; message.log_default_shipping_address_in_transaction = context.Request.Form["log_default_shipping_address_in_transaction"]; message.action_type = context.Request.Form["action_type"]; message.ipn_notification_url = context.Request.Form["ipn_notification_url"]; message.charset = context.Request.Form["charset"]; message.transaction_type = context.Request.Form["transaction_type"]; message.sender_email = context.Request.Form["sender_email"]; message.cancel_url = context.Request.Form["cancel_url"]; message.fees_payer = context.Request.Form["fees_payer"]; message.return_url = context.Request.Form["return_url"]; message.reverse_all_parallel_payments_on_error = context.Request.Form["reverse_all_parallel_payments_on_error"]; message.payment_request_date = context.Request.Form["payment_request_date"]; if (!String.IsNullOrEmpty(context.Request.Form["transaction[0].is_primary_receiver"])) { for (int i = 0; i < 6; i++) { if (!String.IsNullOrEmpty(context.Request.Form["transaction[" + i + "].is_primary_receiver"])) { PayPalTransaction t = new PayPalTransaction(); t.is_primary_receiver = context.Request.Form["transaction[" + i + "].is_primary_receiver"]; t.id_for_sender_txn = context.Request.Form["transaction[" + i + "].id_for_sender_txn"]; t.receiver = context.Request.Form["transaction[" + i + "].receiver"]; t.paymentType = context.Request.Form["transaction[" + i + "].paymentType"]; t.amount = context.Request.Form["transaction[" + i + "].amount"]; t.invoiceId = context.Request.Form["transaction[" + i + "].invoiceId"]; if (!String.IsNullOrEmpty(t.invoiceId) && t.invoiceId.Contains(':')) t.invoiceId = t.invoiceId.Split(':').First(); t.status = context.Request.Form["transaction[" + i + "].status"]; t.id = context.Request.Form["transaction[" + i + "].id"]; t.status_for_sender_txn = context.Request.Form["transaction[" + i + "].status_for_sender_txn"]; t.pending_reason = context.Request.Form["transaction[" + i + "].pending_reason"]; message.Transactions.Add(t); } else break; } } } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType(), additionalInformation: CompileReportString()); } return message; }