public PaymentCancelResult Cancel(string token)
        {
            var result = PayRequestFactory.CreateV2().CancelPayment(Options.ApiKey, Options.Password, token);

            return(new PaymentCancelResult {
                Success = result.Success, Message = result.Message
            });
        }
        public PaymentLink Create(decimal amount, string followId, string invoiceNumber, DateTime invoiceDate, ushort expireAfterDays, string description)
        {
            var service = PayRequestFactory.CreateV2();
            var request = new EPayRequestModel();

            request.Amount           = amount;
            request.Description      = description;
            request.ExpiresAfterDays = expireAfterDays;
            request.InvoiceNumber    = invoiceNumber;
            request.InvoiceDate      = invoiceDate;
            request.IsAutoRedirect   = false;

            var result = service.Create(Options.ApiKey, Options.Password, request);

            if (result.Success)
            {
                var link = new PaymentLink();
                link.Amount                 = amount;
                link.Description            = description;
                link.ExpireDays             = expireAfterDays;
                link.FollowId               = followId;
                link.CreateDate             = DateTime.Now;
                link.LastCheckForUpdateDate = DateTime.Now;
                link.PaymentStatus          = (int)RequestStatus.Initiated;
                link.Token      = result.RequestToken;
                link.Url        = result.PaymentUrl;
                link.ResultDate = null;
                link.Id         = Guid.NewGuid();
                link.ClusterId  = PaymentLinkNotificationService.ClusterId;
                PaymentLinkRepository.Insert(link);

                return(link);
            }
            else
            {
                throw new InvalidOperationException(result.Message);
            }
        }
 public bool Test(string apiKey, string password)
 {
     return(PayRequestFactory.CreateV2().Verify(apiKey, password));
 }
 public bool Test(string apiKey)
 {
     return(PayRequestFactory.Create().Verify(apiKey));
 }