示例#1
0
            public Message(SqlDataReader dr)
            {
                this.TelegramId           = dr.GetInt64("TelegramId");
                this.EmployeeId           = dr.GetInt32("EmployeeId");
                this.EmployeeBalanceLogId = dr.GetInt64("EmployeeBalanceLogId");
                this.LogDateTime          = dr.GetDateTime("LogDateTime");
                this.OperationType        = dr.GetByte("OperationType");
                this.Amount  = dr.GetDecimal("Amount");
                this.Balance = dr.GetDecimal("Balance");
                long?paymentId = dr.GetInt64OrNull("PaymentId");

                if (paymentId.HasValue)
                {
                    this.Payment           = new PaymentData();
                    this.Payment.PaymentId = paymentId.Value;
                    this.Payment.Amount    = dr.GetDecimal("OriginalAmount");
                }
            }
示例#2
0
 private void Load(PaymentData data)
 {
     Init();
     if (data != null)
     {
         PaymentID        = data.payment_id;
         PaymentMethodID  = data.payment_method_id;
         PurchaseOrderID  = data.purchase_order_id;
         PaymentAmount    = data.payment_amount;
         PaymentDate      = data.payment_date;
         DateCreated      = data.date_created;
         DateModified     = data.date_modified;
         CreatedByUserID  = data.created_by;
         ModifiedByUserID = data.modified_by;
         Active           = data.active;
         Note             = data.note;
     }
 }
示例#3
0
        //Assemption: The acquiring bank returns a string array as a reponse of the payment request.
        //-------------------------------------------------------------------------------------------
        public HttpResponseMessage SaveProcessData(PaymentData paymentData, string[] responseData)
        {
            paymentData.PaymentId          = responseData != null ? responseData[0] : "N/A";
            paymentData.ResponseStatusCode = responseData != null ? responseData[1] : "20003";
            paymentData.Message            = responseData != null ? responseData[2] : "Invalid Merchant or Merchant is not active";

            var paymentProcessData = mapper.Map <PaymentProcess>(paymentData);

            paymentRepository.AddPaymentProcessData(paymentProcessData, out string errorMessage);

            var errorResponse = new JsonResult(new { Id = paymentData.PaymentId, StatusCode = paymentData.ResponseStatusCode, paymentData.Message });

            return(new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content =
                    new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(errorResponse), System.Text.Encoding.UTF8, "application/json")
            });
        }
示例#4
0
        public ActionResult Index(CheckoutViewModel model)
        {
            var cart = cartProvider.GetCart();
            var contactDataCollection = contactDataProvider.GetContactData();

            ViewBag.CheckVAT = !String.IsNullOrEmpty(vatDataProvider.VatNumber);

            if (cart.IsEmpty())
            {
                ModelState.AddModelError("cart", "Cart is empty");
            }
            else if (contactDataCollection == null)
            {
                ModelState.AddModelError("contactData", "Contact data is empty");
            }

            if (ModelState.IsValid)
            {
                // Recalculate cart one last time, to make sure e.g. setup fees are still there.
                cartPricingService.CalculatePricing(cart);

                var paymentData = new PaymentData
                {
                    Id          = model.SelectedPaymentMethod.Id,
                    PaymentForm = model.SelectedPaymentMethod.Form,
                    SaveCcInfo  = model.SelectedPaymentMethod.SupportsPaymentProfile && model.SaveCcInfo,
                    AutoPay     = model.SelectedPaymentMethod.SupportsPaymentProfile && model.AutoPay
                };

                var orderContext = new OrderContext(cart, contactDataCollection, paymentData, new object[] { Request });
                var result       = orderPlacementService.PlaceOrder(orderContext);

                if (result.RedirectUrl == urlProvider.SuccessUrl)
                {
                    contactDataProvider.ClearContactData();
                    cartProvider.ClearCart();
                }

                return(Redirect(result.RedirectUrl));
            }

            ViewData["formHasErrors"] = true;
            return(View(model));
        }
        public void TestApplePayIn()
        {
            var wallet      = GetJohnsWallet();
            var user        = GetMatrix();
            var paymentData = new PaymentData
            {
                Network       = "VISA",
                TransactionId = "061EB32181A2D9CA42AD16031B476EEBAA62A9A095AD660E2759FBA52B51A61",
                TokenData     = "{\"version\":\"EC_v1\"," +
                                "\"data\":\"w4HMBVqNC9ghPP4zncTA\\/0oQAsduERfsx78oxgniynNjZLANTL6+0koEtkQnW\\/K38Zew8qV1GLp+fLHo+qCBpiKCIwlz3eoFBTbZU+8pYcjaeIYBX9SOxcwxXsNGrGLk+kBUqnpiSIPaAG1E+WPT8R1kjOCnGvtdombvricwRTQkGjtovPfzZo8LzD3ZQJnHMsWJ8QYDLyr\\/ZN9gtLAtsBAMvwManwiaG3pOIWpyeOQOb01YcEVO16EZBjaY4x4C\\/oyFLWDuKGvhbJwZqWh1d1o9JT29QVmvy3Oq2JEjq3c3NutYut4rwDEP4owqI40Nb7mP2ebmdNgnYyWfPmkRfDCRHIWtbMC35IPg5313B1dgXZ2BmyZRXD5p+mr67vAk7iFfjEpu3GieFqwZrTl3\\/pI5V8Sxe3SIYKgT5Hr7ow==\"," +
                                "\"signature\":\"MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID5jCCA4ugAwIBAgIIaGD2mdnMpw8wCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE2MDYwMzE4MTY0MFoXDTIxMDYwMjE4MTY0MFowYjEoMCYGA1UEAwwfZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtU0FOREJPWDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgjD9q8Oc914gLFDZm0US5jfiqQHdbLPgsc1LUmeY+M9OvegaJajCHkwz3c6OKpbC9q+hkwNFxOh6RCbOlRsSlaOCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDIwHQYDVR0OBBYEFAIkMAua7u1GMZekplopnkJxghxFMAwGA1UdEwEB\\/wQCMAAwHwYDVR0jBBgwFoAUI\\/JJxE+T5O8n5sT2KGw\\/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB\\/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB\\/wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0kAMEYCIQDaHGOui+X2T44R6GVpN7m2nEcr6T6sMjOhZ5NuSo1egwIhAL1a+\\/hp88DKJ0sv3eT3FxWcs71xmbLKD\\/QJ3mWagrJNMIIC7jCCAnWgAwIBAgIISW0vvzqY2pcwCgYIKoZIzj0EAwIwZzEbMBkGA1UEAwwSQXBwbGUgUm9vdCBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMTQwNTA2MjM0NjMwWhcNMjkwNTA2MjM0NjMwWjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATwFxGEGddkhdUaXiWBB3bogKLv3nuuTeCN\\/EuT4TNW1WZbNa4i0Jd2DSJOe7oI\\/XYXzojLdrtmcL7I6CmE\\/1RFo4H3MIH0MEYGCCsGAQUFBwEBBDowODA2BggrBgEFBQcwAYYqaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZXJvb3RjYWczMB0GA1UdDgQWBBQj8knET5Pk7yfmxPYobD+iu\\/0uSzAPBgNVHRMBAf8EBTADAQH\\/MB8GA1UdIwQYMBaAFLuw3qFYM4iapIqZ3r6966\\/ayySrMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB\\/wQEAwIBBjAQBgoqhkiG92NkBgIOBAIFADAKBggqhkjOPQQDAgNnADBkAjA6z3KDURaZsYb7NcNWymK\\/9Bft2Q91TaKOvvGcgV5Ct4n4mPebWZ+Y1UENj53pwv4CMDIt1UQhsKMFd2xd8zg7kGf9F3wsIW2WT8ZyaYISb1T4en0bmcubCYkhYQaZDwmSHQAAMYIBizCCAYcCAQEwgYYwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTAghoYPaZ2cynDzANBglghkgBZQMEAgEFAKCBlTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xOTA1MjMxMTA1MDdaMCoGCSqGSIb3DQEJNDEdMBswDQYJYIZIAWUDBAIBBQChCgYIKoZIzj0EAwIwLwYJKoZIhvcNAQkEMSIEIIvfGVQYBeOilcB7GNI8m8+FBVZ28QfA6BIXaggBja2PMAoGCCqGSM49BAMCBEYwRAIgU01yYfjlx9bvGeC5CU2RS5KBEG+15HH9tz\\/sg3qmQ14CID4F4ZJwAz+tXAUcAIzoMpYSnM8YBlnGJSTSp+LhspenAAAAAAAA\"," +
                                "\"header\":" +
                                "{\"ephemeralPublicKey\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0rs3wRpirXjPbFDQfPRdfEzRIZDWm0qn7Y0HB0PNzV1DDKfpYrnhRb4GEhBF\\/oEXBOe452PxbCnN1qAlqcSUWw==\"," +
                                "\"publicKeyHash\":\"saPRAqS7TZ4bAYwzBj8ezDDC55ZolyH1FL+Xc8fd93o=\"," +
                                "\"transactionId\":\"b061eb32181a2d9ca42ad16031b476eebaa62a9a095ad660e2759fba52b51a61\"}}"
            };
            var applePayIn = new ApplePayDirectPayInPostDTO
            {
                CreditedWalletId = wallet.Id,
                AuthorId         = user.Id,
                CreditedUserId   = user.Id,
                DebitedFunds     = new Money
                {
                    Amount   = 199,
                    Currency = CurrencyIso.EUR
                },
                Fees = new Money
                {
                    Amount   = 1,
                    Currency = CurrencyIso.EUR
                },
                Tag           = "Create an ApplePay card direct Payin",
                PaymentType   = PayInPaymentType.APPLEPAY,
                ExecutionType = PayInExecutionType.DIRECT,
                PaymentData   = paymentData
            };

            var getPayIn = Api.PayIns.CreateApplePay(null, applePayIn);

            Assert.IsNotNull(getPayIn);
            Assert.AreEqual(getPayIn.AuthorId, applePayIn.AuthorId);
            Assert.AreEqual(getPayIn.PaymentType, PayInPaymentType.APPLEPAY);
            Assert.AreEqual(getPayIn.Status, TransactionStatus.SUCCEEDED);
        }
        public List <TenantPayment> GetPayments(int billingCycleId)
        {
            var data = new PaymentData().GetPayments(billingCycleId);

            var tenants        = data.GroupBy(p => p.TenantId).ToList();
            var tenantPayments = new List <TenantPayment>();

            tenants.ForEach(t =>
            {
                var payments      = t.ToList();
                var tenantPayment = new TenantPayment()
                {
                    Payment = new Payment()
                    {
                        Amount = 0, Balance = 0
                    },
                    Tenant = new Tenant()
                };
                payments.ForEach(p =>
                {
                    if (p.Payment == null)
                    {
                        p.Payment = new Payment()
                        {
                            Amount = 0, BillingCyclePaidId = 0
                        };
                    }

                    tenantPayment.Tenant = p.Tenant;
                    tenantPayment.Payment.BillingCyclePaidId = p.Payment.BillingCyclePaidId;
                    if (tenantPayment.Payment.BillingCyclePaidId == billingCycleId)
                    {
                        tenantPayment.Payment.Amount += p.Payment.Amount;
                    }
                });
                tenantPayments.Add(tenantPayment);
            });
            tenantPayments.ForEach(tp =>
            {
                tp.Payment.Balance = Convert.ToDecimal(tp.Tenant.Apartment.RentCost) - tp.Payment.Amount;
            });

            return(tenantPayments);
        }
示例#7
0
        public override void initDataSources()
        {
            if (Args.EntityBase != null)
            {
                paymentInstance = (Payment)Args.EntityBase;
                paymentID = paymentInstance.PaymentID;
            }

            try
            {
                var paymentData = (from i in new QueryableEntity<Payment>()
                                   where i.PaymentID == paymentID
                                   select i).ToList().AppFirst();
                var payment =  new PaymentData
                                   {
                                       date = paymentData.CreatedDateTime.Date,
                                       paymentId = paymentData.PaymentID,
                                       orderId = paymentData.OrderID,
                                       amountPaid = paymentData.Amount,
                                       description = paymentData.Description
                                   };
                
                List<PaymentData>paymentList = new List<PaymentData>();
                paymentList.Add(payment);

                var customerName = (from i in new QueryableEntity<Order>()
                                    join j in new QueryableEntity<Customers>()
                                    on i.CustomerID equals j.CustomerID
                                    where i.OrderID == payment.orderId
                                    select new Customer
                                    {
                                        name = j.Name,
                                        id = i.CustomerID
                                    }).ToList();

                LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("customer", customerName));
                LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("paymentData", paymentList));
            }
            catch (Exception ex)
            {
                throw new Exception("invalid Order ID", ex);
            }
              
        }
        /// <summary>
        /// Unseals the given JSON message, performing the necessary signature verification and decryption steps.
        /// </summary>
        /// <param name="sealedMessage">A message generated by the Google Pay API (in JSON format)</param>
        /// <returns>Unsealed message (in JSON format)</returns>
        public string Unseal(string sealedMessage)
        {
            if (_privateKeys.Count == 0)
            {
                throw new InvalidOperationException("At least one private key must be added");
            }
            PaymentData   paymentData   = Util.Json.Parse <PaymentData>(sealedMessage);
            SignedMessage signedMessage = Util.Json.Parse <SignedMessage>(paymentData.SignedMessage);
            KeyDerivation keyDerivation;

            switch (paymentData.ProtocolVersion)
            {
            case ECv1:
                keyDerivation = new KeyDerivation(SymmetricKeySizeECv1, MacKeySizeECv1);
                break;

            case ECv2:
                keyDerivation = new KeyDerivation(SymmetricKeySizeECv2, MacKeySizeECv2);
                break;

            default:
                throw new SecurityException($"Unsupported protocol version {paymentData.ProtocolVersion}");
            }

            if (!_signatureVerification.VerifyMessage(paymentData, GoogleSenderId, _recipientId, _signatureKeyProvider))
            {
                throw new SecurityException("Cannot verify signature");
            }

            byte[] message = Base64.Decode(signedMessage.EncryptedMessage);
            KeyDerivation.DerivedKeys keys = _privateKeys.Select(key =>
                                                                 keyDerivation.Derive(key, signedMessage.EphemeralPublicKey)
                                                                 ).FirstOrDefault(derivedKeys =>
                                                                                  new TagVerification(derivedKeys.MacKey).Verify(message, signedMessage.Tag)
                                                                                  );

            if (keys == null)
            {
                throw new SecurityException("Cannot decrypt; invalid MAC");
            }
            var decryption = new MessageDecryption(keys.SymmetricEncryptionKey);

            return(decryption.Decrypt(message));
        }
示例#9
0
 /// <summary>
 /// 微信企业付款
 /// </summary>
 /// <returns></returns>
 //[Authorize]
 public JsonResult Transfers()
 {
     try
     {
         //付款金额1元,最少1元
         int Amount = 100;
         //自定义交易订单号
         string TradeNo = _WeiXinConfig.GenerateOutTradeNo();
         //用户OpenId
         string OpenId = Request.RequestContext.HttpContext.User.Identity.Name;
         //校验用户姓名选项 NO_CHECK:不校验真实姓名  FORCE_CHECK:强校验真实姓名(未实名认证的用户会校验失败,无法转账) OPTION_CHECK:针对已实名认证的用户才校验真实姓名(未实名认证用户不校验,可以转账成功)
         string check_name = "NO_CHECK";
         //企业付款描述信息
         string desc = "微信转账";
         //收款用户真实姓名。 如果check_name设置为FORCE_CHECK或OPTION_CHECK,则必填用户真实姓名
         string      re_user_name = "张三";
         PaymentData payData      = new PaymentData();
         payData.SetValue("amount", Amount);
         payData.SetValue("partner_trade_no", TradeNo);
         payData.SetValue("openid", OpenId);
         payData.SetValue("check_name", check_name);
         payData.SetValue("desc", desc);
         payData.SetValue("re_user_name", re_user_name);
         PaymentData returnData  = _WeiXinConfig.Transfers(payData);
         string      return_code = returnData.GetValue("return_code").ToString();
         if (return_code.ToUpper().Equals("FAIL"))
         {
             return(Json(new { Success = false, ErrorMessage = returnData.GetValue("return_msg").ToString() }, JsonRequestBehavior.AllowGet));
         }
         else
         {
             string result_code = returnData.GetValue("result_code").ToString();
             if (result_code.ToUpper().Equals("FAIL"))
             {
                 return(Json(new { Success = false, ErrorMessage = returnData.GetValue("err_code_des").ToString() }, JsonRequestBehavior.AllowGet));
             }
         }
         return(Json(new { Success = true, ErrorMessage = "", Data = returnData }, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         return(Json(new { Success = false, ErrorMessage = ex.Message }, JsonRequestBehavior.AllowGet));
     }
 }
示例#10
0
        protected internal override async Task InsertAsync(PaymentData paymentData)
        {
            var sqlServerHelper = new SqlServerHelper(ConnectionString);

            var query = $"INSERT INTO [{PaymentsTableName}] " +
                        "(ID, " +
                        "OrderNumber, " +
                        "Gateway, " +
                        "Amount, " +
                        "ReferenceID, " +
                        "TransactionID, " +
                        "Status, " +
                        "AdditionalData, " +
                        "CreatedOn)" +
                        " VALUES" +
                        "(@ID, " +
                        "@OrderNumber, " +
                        "@Gateway, " +
                        "@Amount, " +
                        "@ReferenceID, " +
                        "@TransactionID, " +
                        "@Status, " +
                        "@AdditionalData, " +
                        "@CreatedOn)";

            var affectedRows = await sqlServerHelper.ExecuteAsync(query, new Dictionary <string, object>
            {
                { "ID", paymentData.Id },
                { "OrderNumber", paymentData.OrderNumber },
                { "Gateway", (int)paymentData.Gateway },
                { "Amount", paymentData.Amount },
                { "ReferenceID", paymentData.ReferenceId },
                { "TransactionID", paymentData.TransactionId },
                { "Status", (int)paymentData.Status },
                { "AdditionalData", paymentData.AdditionalData },
                { "CreatedOn", paymentData.CreatedOn }
            });

            if (affectedRows == 0)
            {
                throw new Exception("No data inserted in SQL Server Database");
            }
        }
        public ActionResult ViewPaymentTrackingRecord(string Tracking_ID)
        {
            objResponse          Response       = new objResponse();
            PaymentTrackingModel objModel       = new PaymentTrackingModel();
            List <PaymentData>   objTrackerList = new List <PaymentData>();

            try
            {
                Response = objTrackingManager.GetPaymentTrackingDetails(Convert.ToInt64(Tracking_ID));

                if (Response.ErrorCode == 0)
                {
                    objModel.Trackin_ID_PK = Convert.ToInt64(Response.ResponseData.Tables[0].Rows[0]["Tracking_ID_PK"]);
                    objModel.Project_Title = Convert.ToString(Response.ResponseData.Tables[0].Rows[0]["Project_Title"]);
                    objModel.ClientName    = Convert.ToString(Response.ResponseData.Tables[0].Rows[0]["Name"]);
                    objModel.TotalCost     = Convert.ToDecimal(Response.ResponseData.Tables[0].Rows[0]["TotalCost"]);
                    objModel.AmountPaid    = Convert.ToDecimal(Response.ResponseData.Tables[0].Rows[0]["AmountPaid"]);

                    foreach (DataRow dr in Response.ResponseData.Tables[1].Rows)
                    {
                        Project.Entity.PaymentData objPayment = new PaymentData();
                        objPayment.TrackRecord_ID = Convert.ToInt64(dr["Track_Record_ID_PK"]);
                        objPayment.AmountPaid     = Convert.ToDecimal(dr["Amount_Paid"]);
                        // objPayment.AmountRemaining = Convert.ToDecimal(dr["Amount_Remaining"]);
                        objPayment.ConvRate = Convert.ToDecimal(dr["Conv_Rate"]);
                        objPayment.Date     = Convert.ToDateTime(dr["Date"]).ToString("d MMM yyyy");

                        objTrackerList.Add(objPayment);
                    }
                    objModel.payment_data = objTrackerList;
                    return(View(objModel));
                }
                else
                {
                    return(View(objModel));
                }
            }
            catch (Exception ex)
            {
                BAL.Common.LogManager.LogError("ViewPaymentTrackingRecord", 1, Convert.ToString(ex.Source), Convert.ToString(ex.Message), Convert.ToString(ex.StackTrace));
                return(View(objModel));
            }
        }
        public bool Post(PaymentApiModel paymentData)
        {
            // Order order = paymentData.PaymentData.Order;

            if (paymentData.Card.Id == 0)
            {
                Card card = new Card()
                {
                    cardholderName = paymentData.Card.cardholderName,
                    cvv            = paymentData.Card.cvv,
                    cardNumber     = paymentData.Card.cardNumber,
                    expiryDate     = paymentData.Card.expiryDate
                };

                cardRepository.SaveCard(card);
                cardRepository.Commit();
            }
            else
            {
                Card card = cardRepository.GetById(paymentData.Card.Id);
            }

            Customer customer = new Customer()
            {
                cardId = cardRepository.GetByCredentials(paymentData.Card.cardholderName, paymentData.Card.cvv, paymentData.Card.cardNumber).Id,
                Name   = paymentData.Customer.Name
            };

            customerRepository.SaveCustomer(customer);
            customerRepository.Commit();

            //TODO : VOIR POURQUOI CET ENCULAY DE EF NE VEUX PAS METTRE A JOUR LORDERID VTFF IL EST 58
            PaymentData newPayment = new PaymentData()
            {
                Customer = customer,
                OrderId  = paymentData.PaymentData.OrderId
            };

            paymentRepository.SavePayment(newPayment);
            paymentRepository.Commit();

            return(true);
        }
示例#13
0
        // method wich validation data and change Paymentstatus if there is error
        public PaymentResult ValidationData(PaymentData paymentData)
        {
            PaymentResult result = new PaymentResult {
                ErrorMessage = string.Empty, PaymentStatus = PaymentStatus.Success
            };

            if (paymentData == null)
            {
                throw new ArgumentNullException("paymentData");
            }
            if (string.IsNullOrWhiteSpace(paymentData.NumberCard))
            {
                result.PaymentStatus = PaymentStatus.Failed;
                result.ErrorMessage += "Card number cannot be null.";
            }
            if (string.IsNullOrWhiteSpace(paymentData.CVV))
            {
                result.PaymentStatus = PaymentStatus.Failed;
                result.ErrorMessage += "CVV number cannot be null.";
            }
            if (string.IsNullOrWhiteSpace(paymentData.FullName) || paymentData.FullName.Split(' ').Count() != 2)
            {
                result.PaymentStatus = PaymentStatus.Failed;
                result.ErrorMessage += "Full name cannot be null.";
            }
            if (string.IsNullOrWhiteSpace(paymentData.PurposeOfPayment))
            {
                result.PaymentStatus = PaymentStatus.Failed;
                result.ErrorMessage += "Purpose of payment cannot be null.";
            }
            if (paymentData.ExpirationDateYear < DateTime.Now.Year)
            {
                result.PaymentStatus = PaymentStatus.Failed;
                result.ErrorMessage += "Wrond expiration year.";
            }
            if ((paymentData.ExpirationDateYear == DateTime.Now.Year && paymentData.ExpirationDateMonth < DateTime.Now.Month) ||
                paymentData.ExpirationDateMonth >= SettingsConst.ExpirationDateMonth)
            {
                result.PaymentStatus = PaymentStatus.Failed;
                result.ErrorMessage += "Wrond expiration month.";
            }
            return(result);
        }
示例#14
0
        public PaymentData Payment(string type, string ENV)
        {
            Parse       parsing        = new Parse();
            PaymentData selectedmethod = new PaymentData();

            string            filelocationDoAirPrice = parsing.FindFiles("*PaymentMethods.json");
            var               Empty = parsing.FileRequest(filelocationDoAirPrice, "Payment");
            PaymentEnviroment credaitcardinfoobject = (PaymentEnviroment)Empty;

            switch (ENV)
            {
            case "PRE":
                foreach (var item in credaitcardinfoobject.PRE)
                {
                    if (item.PaymentMethodCode == type)
                    {
                        selectedmethod = item;
                    }
                }
                break;

            case "INV":
                foreach (var item in credaitcardinfoobject.INT)
                {
                    if (item.PaymentMethodCode == type)
                    {
                        selectedmethod = item;
                    }
                }
                break;

            case "PRO":
                foreach (var item in credaitcardinfoobject.PRO)
                {
                    if (item.PaymentMethodCode == type)
                    {
                        selectedmethod = item;
                    }
                }
                break;
            }
            return(selectedmethod);
        }
示例#15
0
        public async Task TestGooglePayIn()
        {
            var wallet = await GetJohnsWallet();

            var user = await GetNewJohn();

            var paymentData = new PaymentData
            {
                Network       = "VISA",
                TransactionId = "061EB32181A2D9CA42AD16031B476EEBAA62A9A095AD660E2759FBA52B51A61",
                TokenData     = "tokenData"
            };
            var googlePayIn = new GooglePayDirectPayInPostDTO
            {
                CreditedWalletId = wallet.Id,
                AuthorId         = user.Id,
                CreditedUserId   = user.Id,
                DebitedFunds     = new Money
                {
                    Amount   = 200,
                    Currency = CurrencyIso.EUR
                },
                Fees = new Money
                {
                    Amount   = 0,
                    Currency = CurrencyIso.EUR
                },
                Tag                 = "Create an GooglePay card direct Payin",
                PaymentData         = paymentData,
                StatementDescriptor = "Bob",
                Billing             = new Billing
                {
                    Address = user.Address
                }
            };

            var getPayIn = await Api.PayIns.CreateGooglePayAsync(null, googlePayIn);

            Assert.IsNotNull(getPayIn);
            Assert.AreEqual(getPayIn.AuthorId, googlePayIn.AuthorId);
            Assert.AreEqual(getPayIn.PaymentType, PayInPaymentType.GOOGLEPAY);
            Assert.AreEqual(getPayIn.Status, TransactionStatus.SUCCEEDED);
        }
        public ContentResult Pay([FromForm] SubmitPay submitPay,
                                 [FromServices] OperationManagerService operationManager,
                                 [FromServices] FormManagerService formManager,
                                 [FromServices] PaymentSystemContext dbContext,
                                 [FromServices] FormDataCryptService cryptService)
        {
            if (string.IsNullOrEmpty(submitPay.ExternalId) || string.IsNullOrEmpty(submitPay.Code))
            {
                return(base.Content(formManager.GetErrorForm()));
            }
            var formCrypt = cryptService.DeCrypt(submitPay.Code);
            var session   = dbContext.Session.Include(x => x.Merchant).FirstOrDefault(x => x.Id == formCrypt.SessionId);

            if (session == null || session.ExternalId != submitPay.ExternalId || session.ExpireTime != formCrypt.GenerationTime)
            {
                return(base.Content(formManager.GetErrorForm()));
            }

            var paymentData = new PaymentData(submitPay.Pan, submitPay.Year, submitPay.Month, submitPay.Cvv);

            var result = operationManager.Deposit(session.Merchant, session, paymentData);

            switch (result.OperationStatus)
            {
            case OperationStatus.AdditionalAuth:
                return(base.Content(formManager.Get3DsForm(result.AdditionalAuth)));

            case OperationStatus.Pending:
                return(base.Content(formManager.GetPendingForm()));

            case OperationStatus.Success:
                return(base.Content(formManager.GetSuccessForm()));

            case OperationStatus.Redirected:
                return(base.Content(formManager.GetRedirectForm(result.RedirectedUrl)));

            case OperationStatus.Error:
                return(session.CanTryToPayAnotherTime ? base.Content(formManager.GetRedirectForm("/form/v1/pay")) : base.Content(formManager.GetErrorForm()));

            default:
                return(base.Content(formManager.GetErrorForm()));
            }
        }
示例#17
0
 public async Task UpdatePayments(List <AccountedPaymentEntity> payments)
 {
     if (payments.Count == 0)
     {
         return;
     }
     using (var context = _ContextFactory.CreateContext())
     {
         foreach (var payment in payments)
         {
             var data = new PaymentData();
             data.Id        = payment.Payment.Outpoint.ToString();
             data.Accounted = payment.Payment.Accounted;
             context.Attach(data);
             context.Entry(data).Property(o => o.Accounted).IsModified = true;
         }
         await context.SaveChangesAsync().ConfigureAwait(false);
     }
 }
示例#18
0
        public void Handle(PaymentFailedEvent eventData)
        {
            string message         = eventData.FailureCode + ": " + eventData.FailureMessage;
            var    failedEventData = new FailedEventData();

            failedEventData.EventType = eventData.GetType().ToString();
            failedEventData.Message   = message;

            FailedEventsRepository.AddFailedEvent(failedEventData);

            var paymentData = new PaymentData()
            {
                PaymentGuid   = eventData.PaymentGuid,
                Message       = message,
                PaymentStatus = PaymentStatus.Failed
            };

            PaymentRepository.AddOrReplacePaymentData(paymentData);
        }
示例#19
0
        static void Main(string[] args)
        {
            //Create Soap Client
            CreditSoapClient soapClient = new CreditSoapClient("CreditSoap");
            //Create MerchantCredentails object
            MerchantCredentials merchantCredentials = new MerchantCredentials
            {
                MerchantName   = "TEST MERCHANT",
                MerchantSiteId = "XXXXXXXX",
                MerchantKey    = "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"
            };
            //Create PaymentData object
            PaymentData paymentData = new PaymentData
            {
                Source                = "Keyed",
                CardNumber            = "4012000033330026",
                ExpirationDate        = "1220",
                CardHolder            = "John Doe",
                AvsStreetAddress      = "1 Federal St",
                AvsZipCode            = "02110",
                CardVerificationValue = "123"
            };
            //Create SaleRequest Object
            SaleRequest saleRequest = new SaleRequest
            {
                Amount                     = "1.01",
                TaxAmount                  = "0.10",
                InvoiceNumber              = "INV1234",
                CardAcceptorTerminalId     = "01",
                CustomerCode               = "1234",
                PurchaseOrderNumber        = "PO1234",
                EnablePartialAuthorization = "true",
                ForceDuplicate             = "true"
            };
            //Run Sale
            TransactionResponse45 transactionResponse45 = soapClient.Sale(merchantCredentials, paymentData, saleRequest);

            // Print Results
            Console.WriteLine("Sale Response: {0} Token: {1} Amount: ${2}", transactionResponse45.ApprovalStatus, transactionResponse45.Token, transactionResponse45.Amount);
            Console.WriteLine("Press Any Key to Close");
            Console.ReadKey();
        }
        public async Task <bool> ProcessPayments(PaymentData reqObj, PaymentsDbContext context)
        {
            try
            {
                var paymentState = await Task.Run(() => context.PaymentState.ToList());

                reqObj.PaymentState = new PaymentState();
                int paymnetstateId = Convert.ToInt32(PaymentStates.pending);
                reqObj.PaymentState = paymentState.ToList().Where(s => s.PaymentStateId == paymnetstateId).FirstOrDefault();

                context.PaymentData.Add(reqObj);
                await context.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
示例#21
0
        public DataSet GetAllPaymentsDataSet(int PaymentID)
        {
            PaymentData data = new PaymentData();
            DataSet     ds   = new DataSet();

            try
            {
                ds = data.GetAllPaymentDataSet(PaymentID);
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "GetAllPaymentsDataSet");
                throw (ex);
            }
            finally
            {
                data = null;
            }
            return(ds);
        }
示例#22
0
        public decimal GetTotalPaymentsByInvoiceId(int InvoiceID)
        {
            PaymentData data = new PaymentData();
            decimal     tot  = 0;

            try
            {
                tot = data.GetTotalPaymentsByInvoice(InvoiceID);
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "GetTotalPaymentsByInvoiceId");
                throw (ex);
            }
            finally
            {
                data = null;
            }
            return(tot);
        }
示例#23
0
        public Payment GetPayment(int PaymentID)
        {
            PaymentData data = new PaymentData();
            Payment     pay  = new Payment();

            try
            {
                pay = data.GetPayment(PaymentID);
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "GetPayment");
                throw (ex);
            }
            finally
            {
                data = null;
            }
            return(pay);
        }
示例#24
0
        public bool RemovePayment(int PaymentID)
        {
            PaymentData data = new PaymentData();
            bool        ret  = false;

            try
            {
                ret = data.DeletePayment(PaymentID);
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "RemovePayment");
                throw (ex);
            }
            finally
            {
                data = null;
            }
            return(ret);
        }
示例#25
0
        public PaymentCollection GetAllPaymentsCollection()
        {
            PaymentData       data = new PaymentData();
            PaymentCollection col  = new PaymentCollection();

            try
            {
                col = data.GetAllPaymentCollection();
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "GetAllPaymentsCollection");
                throw (ex);
            }
            finally
            {
                data = null;
            }
            return(col);
        }
示例#26
0
        public DataSet GetPaymentsDataSet(string where, string orderBy)
        {
            PaymentData data = new PaymentData();
            DataSet     ds   = new DataSet();

            try
            {
                ds = data.GetPaymentDynamicDataSet(where, orderBy);
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "GetAllPaymentsDataSet");
                throw (ex);
            }
            finally
            {
                data = null;
            }
            return(ds);
        }
        public Task <PaymentData> ParseAsync(string jsonPayload)
        {
            PaymentData result  = null;
            JObject     payload = JObject.Parse(jsonPayload);
            var         invoiceNumberProperty = payload.Property("requestId");
            var         resultProperty        = payload.Property("result");
            var         dateProperty          = payload.Property("date");

            if (invoiceNumberProperty != null && resultProperty != null && dateProperty != null)
            {
                result = new PaymentData()
                {
                    InvoiceNumber = invoiceNumberProperty.Value.ToString(),
                    PaymentResult = resultProperty.Value.ToString() == "OK" ? PaymentResult.Paid : PaymentResult.NotPaid,
                    PaymentDate   = DateTime.Parse(dateProperty.Value.ToString())
                };
            }

            return(Task.FromResult(result));
        }
示例#28
0
        public int AddPayment(Payment payment)
        {
            PaymentData data = new PaymentData();
            int         id   = 0;

            try
            {
                id = data.AddPayment(payment);
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "AddPayment");
                throw (ex);
            }
            finally
            {
                data = null;
            }
            return(id);
        }
        public void TestVerifyMessageECv2()
        {
            var keyData     = "{\"keys\":[{\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEvhuz8WZo0DhP7Lg1AQtpQpm2i7Gr6yBa+i6mVOwz3iepodYVDE9YGLzUwoL8AEsPUz/26Pg3lofL2u04/edeXg==\",\"protocolVersion\":\"ECv2\",\"keyExpiration\":\"2154841200000\"}]}";
            var keyProvider = new GoogleKeyProvider(keyData, _clock);

            var payload = new PaymentData()
            {
                ProtocolVersion        = "ECv2",
                Signature              = "MEQCIH6Q4OwQ0jAceFEkGF0JID6sJNXxOEi4r+mA7biRxqBQAiAondqoUpU/bdsrAOpZIsrHQS9nwiiNwOrr24RyPeHA0Q==",
                SignedMessage          = "{\"tag\":\"jpGz1F1Bcoi/fCNxI9n7Qrsw7i7KHrGtTf3NrRclt+U\\u003d\",\"ephemeralPublicKey\":\"BJatyFvFPPD21l8/uLP46Ta1hsKHndf8Z+tAgk+DEPQgYTkhHy19cF3h/bXs0tWTmZtnNm+vlVrKbRU9K8+7cZs\\u003d\",\"encryptedMessage\":\"mKOoXwi8OavZ\"}",
                IntermediateSigningKey = new SigningKey()
                {
                    SignedKey  = "{\"keyExpiration\":\"1542323393147\",\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/1+3HBVSbdv+j7NaArdgMyoSAM43yRydzqdg1TxodSzA96Dj4Mc1EiKroxxunavVIvdxGnJeFViTzFvzFRxyCw\\u003d\\u003d\"}",
                    Signatures = new string[] { "MEYCIQCO2EIi48s8VTH+ilMEpoXLFfkxAwHjfPSCVED/QDSHmQIhALLJmrUlNAY8hDQRV/y1iKZGsWpeNmIP+z+tCQHQxP0v" }
                }
            };
            var signatureVerification = new SignatureVerification(_clock);

            Assert.True(signatureVerification.VerifyMessage(payload, "Google", "merchant:12345", keyProvider));
        }
示例#30
0
        public bool UpdatePayment(Payment payment)
        {
            PaymentData data = new PaymentData();
            bool        ret  = false;

            try
            {
                ret = data.UpdatePayment(payment);
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "UpdatePayment");
                throw (ex);
            }
            finally
            {
                data = null;
            }
            return(ret);
        }
示例#31
0
        public PaymentCollection GetPaymentsCollection(string where, string orderby)
        {
            PaymentData       data = new PaymentData();
            PaymentCollection col  = new PaymentCollection();

            try
            {
                col = data.GetAllPaymentDynamicCollection(where, orderby);
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "GetPaymentsCollection");
                throw (ex);
            }
            finally
            {
                data = null;
            }
            return(col);
        }
示例#32
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string contactId = string.Empty;

            if (Request.QueryString["userid"] != null)
                contactId = Request.QueryString["userid"].ToString();
            else
            {
                tblContainer.InnerHtml = "<center><h2>Kullanıcı Crm Id parametresi eksik.<br>Kullancı bilgisini tanımlayıp tekrar deneyiniz.</h2></center>";
                return;
            }

            StringBuilder tableHtml = new StringBuilder();

            try
            {
                sda = new SqlDataAccess();
                sda.openConnection(Globals.ConnectionString);

                List<CrmPaymentInfo> paymentList = ContactHelper.GetContactPayments(new Guid(contactId), sda);

                if (paymentList.Count > 0)
                {
                    List<PaymentData> pdList = new List<PaymentData>();
                    for (int i = 0; i < paymentList.Count; i++)
                    {
                        if (paymentList[i].PaymentLineList.Count > 0)
                        {
                            for (int j = 0; j < paymentList[i].PaymentLineList.Count; j++)
                            {
                                PaymentData pd = new PaymentData();
                                pd.Id = paymentList[i].AdminPaymentId;
                                pd.Description = paymentList[i].PaymentLineList[j].Description;
                                pd.ConfirmDate = paymentList[i].ConfirmDate;
                                pd.StatusCode = paymentList[i].StatusCodeName;
                                pd.PaymentType = paymentList[i].PaymentTypeName;
                                pd.Total = paymentList[i].Total;

                                pdList.Add(pd);
                            }
                        }
                    }

                    var pList = (from a in pdList
                                 orderby a.ConfirmDate descending
                                 select a).ToList();

                    if (pList.Count > 0)
                    {
                        for (int i = 0; i < pList.Count; i++)
                        {
                            tableHtml.AppendLine("<tr>");
                            tableHtml.AppendLine("<td class='tertiary-text'>" + (pList[i].Id != null ? pList[i].Id : "-") + "</td>");
                            tableHtml.AppendLine("<td class='tertiary-text'>" + (pList[i].Description != null ? pList[i].Description : "-") + "</td>");
                            tableHtml.AppendLine("<td class='tertiary-text'>" + (pList[i].ConfirmDate != null ? pList[i].ConfirmDate.ToString("dd.MM.yyyy") : "-") + "</td>");
                            tableHtml.AppendLine("<td class='tertiary-text'>" + (pList[i].StatusCode != null ? pList[i].StatusCode : "-") + "</td>");
                            tableHtml.AppendLine("<td class='tertiary-text'>" + (pList[i].PaymentType != null ? pList[i].PaymentType : "-") + "</td>");
                            tableHtml.AppendLine("<td class='tertiary-text'>" + (pList[i].Total != 0 ? pList[i].Total.ToString() : "-") + "</td>");
                            tableHtml.AppendLine("</tr>");

                            tableHtml.AppendLine("<tr><td colspan='6'><table class='striped' style='margin-left:5%;'><tr class='warning'><td class='tertiary-text'>Deneme1</td><td class='tertiary-text'>Deneme2</td><td class='tertiary-text'>Deneme3</td></tr></table></td></tr>");
                        }
                    }

                }
                else
                {
                    tableHtml.AppendLine("<tr>");
                    tableHtml.AppendLine("<td colspan='6'><center><h3 style='color:red !important'>İlgili kullanıcıya ait herhangi bir ödeme kaydı yoktur.</h3></center></td>");
                    tableHtml.AppendLine("</tr>");
                }

                tblPaymentsBody.InnerHtml = tableHtml.ToString();
            }
            catch (Exception ex)
            {

            }
            finally
            {
                sda.closeConnection();
            }
        }