public async Task CallSettlementVanillaTest()
        {
            var bankAccount = new BankAccount
            {
                Branch         = "1144",
                Account        = "13341",
                AccountDigit   = "X5",
                AccountType    = BankAccountType.CC,
                Ispb           = "12345678",
                DocumentType   = DocumentType.CNPJ,
                DocumentNumber = "51914361000184"
            };
            var settlementItem = new Settlement
            {
                Reference = "ST-01",
                AssetHolderDocumentType = DocumentType.CNPJ,
                AssetHolder             = "51914361000184",
                SettlementDate          = DateTime.Parse("2020-12-16"),
                Amount = 50000L,
                SettlementObligationDate = DateTime.Parse("2020-12-16"),
                PaymentScheme            = "VCC",
                BankAccount = bankAccount
            };
            var settlements = new List <Settlement>
            {
                settlementItem
            };
            var receivableSettlementInput = new SettlementRequest
            {
                Settlements = settlements
            };
            var result = await _settlementService.ReportSettlement(receivableSettlementInput);

            Print(result);
        }
        public SettlementResponse PrintSettlement(string deviceUuid, SettlementRequest settlementRequest)
        {
            var request = new RestRequest("report/settlement", Method.POST);

            request.AddQueryParameter("uuid", deviceUuid);
            request.AddJsonBody(settlementRequest);
            var response = _clientHttp.Execute(request);


            if (response.ErrorException != null)
            {
                throw new SmartPaymentException(response.ErrorException.Message);
            }

            var content = response.Content;

            if (response.StatusCode == HttpStatusCode.OK)
            {
                return(JsonUtils.DecodeJson <SettlementResponse>(content));
            }
            else
            {
                throw ProcessWebServiceException(content);
            }
        }
示例#3
0
        private void DoRequest(SettlementRequest req)
        {
            var resp = new Settlement().Post(req);

            if (resp.Error != null)
            {
                DataError = resp.Error.ErrorMessage;
                RequestId = resp.Error.RequestId;
            }
            else
            {
                Data = resp;
            }
        }
        public SettlementResponse ProcessRequest(SettlementRequest request)
        {
            //Long 3rd party Api call
            Thread.Sleep(2000);

            var clearingStatus = ClearingStatus.Settled;

            return(new SettlementResponse()
            {
                TransactionId = request.TransactionId,
                ClearingStatus = clearingStatus,
                ProviderTransactionId = request.ProviderTransactionId
            });
        }
示例#5
0
        private void Submit(object sender, EventArgs e)
        {
            int amount = Convert.ToInt32(Request.Form["amount"].Substring(0,
                                                                          Request.Form["amount"].IndexOf('.') > 0
                    ? Request.Form["amount"].IndexOf('.')
                    : Request.Form["amount"].Length));

            List <ReceiverModel> receivers = new List <ReceiverModel>(2);

            Merchant receiver1 = new Merchant();

            receiver1.amount                 = 100;
            receiver1.merchant_id            = 600001;
            receiver1.settlement_description = "Test";

            Merchant receiver2 = new Merchant();

            receiver2.amount                 = 1000;
            receiver2.merchant_id            = 500001;
            receiver2.settlement_description = "Test2";

            ReceiverModel res1 = new ReceiverModel()
            {
                requisites = receiver1,
                type       = "merchant"
            };
            ReceiverModel res2 = new ReceiverModel()
            {
                requisites = receiver2,
                type       = "merchant"
            };

            receivers.Add(res1);
            receivers.Add(res2);


            var req = new SettlementRequest
            {
                order_id     = Request.Form["order_id"],
                amount       = amount * 100,
                order_desc   = "checkout json demo",
                currency     = "RUB",
                receiver     = receivers,
                operation_id = "443e7e57-d2eb-4793-842e-a45c5be8011c"
            };

            DoRequest(req);
        }
示例#6
0
        public async Task <SettlementResponse> ReportSettlement(SettlementRequest receivableSettlement)
        {
            var request = new RestRequest($"{Options.BaseUrl}/{_path}", DataFormat.Json)
            {
                Method = Method.PATCH
            };

            request.AddJsonBody(receivableSettlement);

            return(await GetPipeline <SettlementResponse>().Execute(new Commands.RequestCommand <SettlementResponse>()
            {
                Model = receivableSettlement,
                RestRequest = request,
                Profile = _baseProfile
            }).MapResponse());
        }
        public static void VendorSettlement(TransferFunds transferFunds, string OriTxnDate, string suspenseAcct, string Narration)
        {
            var serviceBusTransferRequest = new SettlementRequest()
            {
                Amount      = transferFunds.amount,
                ChannelId   = transferFunds.ChannelId,
                ClientKey   = transferFunds.ClientKey,
                CodedString = transferFunds.CodedString,
                DestinationAccountNumber = suspenseAcct,
                Narration    = Narration,
                OriginalStan = transferFunds.TransactionStan,
                OriginalTransactionDateTime = OriTxnDate,
                PlatformReference           = transferFunds.ResponseTransferReference,
                SourceAccountNumber         = transferFunds.destinationAccountNumber,
                TransactionReference        = transferFunds.transactionReference,
                TransactionType             = transferFunds.TransactionType
            };

            var serviceBusCall = new ServiceBusManagement(AirtimeDomainAppsettingManager.GetSettlementQueueConnectionString()).PushToQueue(serviceBusTransferRequest, AirtimeDomainAppsettingManager.GetSettlementQueueName());
        }
示例#8
0
        /// <summary>
        /// Creates a new settlement
        /// To create a settlement resource provide a completed order identifier and (optionally) a promise identifier.
        /// </summary>
        /// <param name="request">The <see cref="VirtualCardCreateSettlementRequest"/> object</param>
        /// <returns>A single <see cref="SettlementResponse"/> object</returns>
        public async Task <SettlementResponse> CreateSettlement(SettlementRequest request)
        {
            var url = ApiUrlHelper.GetApiUrlForController(ApiSession.ApiUrl, ApiControllerUri);

            return(await Post <SettlementResponse>(url, request).ConfigureAwait(false));
        }
 /// <summary>
 /// Günlük, başarılı olarak gerçekleşmiş işlemlerin işlem tipi bazında sorgulama
 /// </summary>
 /// <param name="input"></param>
 /// <returns></returns>
 public PaymentResponse SettlementQuery(SettlementRequest input)
 {
     throw new NotImplementedException();
 }
示例#10
0
 /// <summary>
 /// Completes a pre-authorised payment.
 /// </summary>
 /// <param name="request">The request.</param>
 /// <returns></returns>
 public SettlementResponse Search(SettlementRequest request)
 {
     return(RunHttpRequest <SettlementResponse>(null, string.Format(Sandbox ? Endpoints.SandboxUrlFormat : Endpoints.LiveUrlFormat, "Search/Settlement", Verb.Get)));
 }
        static void Main(string[] args)
        {
            var url = "http://127.0.0.1:8090";

            //for http proxy
            //var proxyObject = new System.Net.WebProxy();
            //proxyObject.Address = new Uri("https://1.2.3.4:8080");


            Console.WriteLine("Client trying to connect to " + url + "...");

            try
            {
                var client = new SmartPaymentClient(url);
                //client.HttpProxy = proxyObject;


                var devices = client.GetAllDevices();


                Console.WriteLine("Trying to get all the devices...\r\n");

                foreach (DeviceWithValidation device in devices)
                {
                    Console.WriteLine("----------------------------------\r\n");
                    Console.WriteLine("Device: \r\n" + device.ToString());
                }

                Console.WriteLine("----------------------------------\r\n");
                Console.WriteLine("Web service config:\r\n");

                var webserviceConfig = client.GetWebServiceConfig();
                Console.WriteLine(webserviceConfig.ToString());


                Console.WriteLine("----------------------------------\r\n");
                Console.WriteLine("Sale 0.50 lei:\r\n");


                //trying to get first device from device list
                var deviceUuid = "";
                if (devices.Count > 0)
                {
                    //extract the first valid device from list
                    foreach (DeviceWithValidation dev in devices)
                    {
                        if (dev.IsValid)
                        {
                            deviceUuid = devices[0].Uuid;
                            break;
                        }
                    }
                }


                if (string.IsNullOrEmpty(deviceUuid))
                {
                    Console.WriteLine("Device uuid is not specified!");
                    return;
                }

                //
                //SALE
                //
                var sr = new SaleRequest();
                sr.Amount             = 0.50m;
                sr.CurrencyName       = "RON";
                sr.CashBackAmount     = 0.00m; //optional
                sr.TransactionEcrUuid = "";    //optional
                sr.PrintReceiptOnEcr  = false; //optional


                var saleResponse = client.Sale(deviceUuid, sr);
                Console.WriteLine("Sale response:\r\n");
                Console.WriteLine(saleResponse.ToString());

                //if the sale was successful
                if (saleResponse.CardHostApprovedTransaction)
                {
                    //SALE VOID

                    var sv = new SaleVoidRequest();
                    sv.Amount                = 0.50m;
                    sv.CurrencyName          = "RON";
                    sv.AuthorizationCode     = saleResponse.AuthorizationCode;
                    sv.ReceiptNumber         = saleResponse.ReceiptNumber;
                    sv.ReturnReferenceNumber = saleResponse.ReturnReferenceNumber;


                    var saleVoidResponse = client.SaleVoid(deviceUuid, sv);
                    Console.WriteLine("Sale void response:\r\n");
                    Console.WriteLine(saleVoidResponse.ToString());


                    //if the sale void was approved we launch the settlement report
                    if (saleVoidResponse.CardHostApprovedTransaction)
                    {
                        var settlementRequest = new SettlementRequest();
                        settlementRequest.CurrencyName = "RON";


                        var settlementResponse = client.PrintSettlement(deviceUuid, settlementRequest);
                        Console.WriteLine("Settlement response:\r\n");
                        Console.WriteLine(settlementResponse.ToString());
                    }
                }
            }
            catch (SmartPaymentException ex)
            {
                Console.WriteLine("Error received: \r\n");
                Console.WriteLine(ex.ToString());
            }


            Console.WriteLine("Press any key to exit.");
            Console.ReadLine();
        }