EncoreBilisim.Eps 1.4.5

There is a newer version of this package available.
See the version list below for details.
dotnet add package EncoreBilisim.Eps --version 1.4.5                
NuGet\Install-Package EncoreBilisim.Eps -Version 1.4.5                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EncoreBilisim.Eps" Version="1.4.5" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add EncoreBilisim.Eps --version 1.4.5                
#r "nuget: EncoreBilisim.Eps, 1.4.5"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install EncoreBilisim.Eps as a Cake Addin
#addin nuget:?package=EncoreBilisim.Eps&version=1.4.5

// Install EncoreBilisim.Eps as a Cake Tool
#tool nuget:?package=EncoreBilisim.Eps&version=1.4.5                

Encore Eps Library

Encore Bilisim yazılımları için ortak Eps ( Ödeme ) kütüphanesi

Nuget paketi:

dotnet add package EncoreBilisim.Eps

Paketin projeye eklenmesi

Eps Event Provider

Kütüphaneyi kullanmak için öncelkle EPS'den gelecek bilgi isteklerini karşılayacak bir EpsEventProvider classı yaratmak gerekiyor. Bu class eps den gelen bildirimleri ( kartı okutun, bankaya bağlanıyor. vs ) kullanıcıya göstermeli, ve kullanıcıdan alınması gereken bilgileri alabilmelidir ( kullanılacak puan tutarı, OTP vs. )

Basit bir Console Provider örneği:

using Encore.Eps;
using Encore.Eps.Models.EpsNotification;

namespace EpsTest
{
    internal class ConsoleEventProvider : IEpsEventProvider
    {
        public Task NotifyMessage(EpsNotifyDataRequest request)
        {
            Console.WriteLine(request.Message);
            return Task.CompletedTask;
        }

        public Task<EpsPromptDataResult> PromptData(EpsPromptDataRequest request)
        {
            Console.WriteLine(request.Title + request.Data );
            if(request.Points != null) { 
                foreach(var point in request.Points)
                {
                    Console.WriteLine($"{point.Definition} : {point.Amount}");
                }
            }
            EpsPromptDataResult result = new()
            {
                Data = Console.ReadLine()
            };
            return Task.FromResult(result);
        }
    }
}

Builder Class ile EpsManager oluşturma

Eps işlemleri için öncellikle EpsBuilder kullanılarak bir EPS Manager oluşturulur. EpsBuiilder ile Create metodu kullanılarak önce EventProvider tanımlanır.

EpsBuilder.Create(epsEventProvider);

Sonrasında Log classs ı eklemek için

EpsBuilder.Create(eventProvider:epsEventProvider)
    .WithLogger(NullLogger.Instance);

Daha Sonra herhangi bir IEpsProvider interface ini implemente eden bir provider eklenebilir.

IEpsProvider interface tanımı:

public interface IEpsProvider
{   string ProviderId { get; }
    Task<PayResponse> Pay(PayRequest payRequest, CancellationToken cancellationToken = default);
}

Örnek bir provider şu şekilde eklenir:

IEpsProvider walletProvider = new EWalletProvider();
EpsBuilder.Create(eventProvider:epsEventProvider)
    .WithLogger(NullLogger.Instance)
    .WithProvider(walletProvider);

Son olarak Build() metodu ile EpsManager yaratılır

IEpsManager eps = EpsBuilder.Create(eventProvider:epsEventProvider)
    .WithLogger(NullLogger.Instance)
    .WithProvider(walletProvider)
    .Build();

Microsoft Dependency Injection ile EpsManager oluşturma

IServiceCollection extention metodu kullanılarak service collectiona eps manager eklenir

services.AddEpsService(Configuration,epsEventProvider);

Providerlar

Chippin Provider

Nuget paketi:

dotnet add package EncoreBilisim.Eps.Chippin

Chippin eklentisi ile birlikte aşağıdaki şekilde chippin kullanımı eklenebilir <br> EncoreBilisim.Eps.Chippin<br> Chippin Provider ının provider id si "chippin" dir.

Builder

.WithChippin(c =>
    {
        c.Url = "https://test.chippin.com/services/api/";
        c.Credentials = new()
        {
            UserName ="encore_ws",
            HashedPassword = "C9E4EEA24AFF6F7E45B34F01BB1A8742"
        };
    })

Dependency Injection

services.AddChippin(Configuration);

appsettings.json dosyasına ise şu şekilde konfigurasyon yapılmalıdır:

  "Chippin": {
    "StatusPeriod": 1,
    "Timeout": 90,
    "Url": "https://test.chippin.com/services/api/",
    "Credentials": {
      "UserName": "encore_ws",
      "HashedPassword": "C9E4EEA24AFF6F7E45B34F01BB1A8742"
    }
  }

Ingenico EftPos Provider

Ingenico için ve diğer eftpos cihazları için EncoreBilisim.Eft.Device paketi kullanılır. <br> Bu paket Eps içinde builtin olarak vardır. Ayrı bir pakete gerek yoktur. EftPos providerı tanımlanır ve içersine bir ingenico device eklenir. Her device için bir PosId değeri verilir. Bu değer eftpos provider çağırılırken kullanılmak istenen pos chazını gösterir.

Genel EftPos providerının provider id si "ortakpos" dur.

Builder

PosSettings ingenicoSettings = new();
ingenicoSettings.IngenicoInterface.connection.szIP = "192.168.88.57";
ingenicoSettings.IngenicoInterface.connection.Port = 7500;
ingenicoSettings.IngenicoInterface.connection.IsTcpConnection = 1;
ingenicoSettings.IngenicoInterface.DefaultBankId = 10;

    .WithEftPos(c => c.AddDevice(posId:1, IngenicoPos.Create(ingenicoSettings)))

Dependency Injection

Her hangi bir eklentiye gerek yoktur. Eps servisi ile otomatik eklenir

appsettings.json dosyasına ise şu şekilde konfigurasyon yapılmalıdır:

 "IngenicoDevices": [
    {
      "PosId": 1,
      "Settings": {
        "IngenicoInterface": {
          "connection": {
            "szIP": "192.168.88.57",
            "Port": "7500",
            "IsTcpConnection": 1
          },
          "info": {
            "ImpProDllLogPath": "c:\\Encore\\Log\\Eps"
          },
          "DefaultBankId": 62
        }
      }
    }
  ],

Ödeme Alma

Providerlar tanımlandıktan sonra, artık Eps ödemeleri alınabilir. İstek yapılırken PayRequest içersindeki ProviderId alanı doldurularak ilgili providerın ödemeyi alması sağlanır.

var payResponse = await eps.Pay(new PayRequest()
{
    Amount = 1.3M,
    Id = Guid.NewGuid().ToString(),
    ProviderId = "ortakpos",
    PosId = 1,
});

Yukarıdaki örnekte ortak pos providerı kullanılarak 1 numaralı pos cihazından 1.30 ₺ ödeme onayı alınacaktır

Not:Ödeme işlemi sırasında IEpsEventProvider kullanılarak bilgilendirme mesajları gönderilebilir, veya kullanıcıdan bilgi girişi istenebilir. Fakat işlem sonunda cevap olarak PayResponse dönecektir

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (7)

Showing the top 5 NuGet packages that depend on EncoreBilisim.Eps:

Package Downloads
EncoreBilisim.Eps.Edenred

Package Description

EncoreBilisim.Eps.ComPay

Package Description

EncoreBilisim.Eps.Chippin

Chipppin extention for Encore Eps Module

EncoreBilisim.Eps.Setcard

Package Description

EncoreBilisim.Eps.IWallet

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.11.5 191 5/12/2023
1.7.2 32 11/8/2024
1.7.1 108 10/30/2024
1.7.0 70 10/30/2024
1.6.10 130 10/18/2024
1.6.9 81 10/10/2024
1.6.8 150 9/6/2024
1.6.7 119 8/16/2024
1.6.6 130 8/16/2024
1.6.5 261 8/1/2024
1.6.4 142 7/24/2024
1.6.3 96 7/22/2024
1.6.2 158 6/24/2024
1.6.1 124 4/16/2024
1.6.0 322 4/3/2024
1.5.9 128 3/21/2024
1.5.8 125 3/18/2024
1.5.7 122 3/14/2024
1.5.6 119 3/14/2024
1.5.5 121 3/12/2024
1.5.4 118 3/12/2024
1.5.3 116 3/12/2024
1.5.2 107 3/8/2024
1.5.1 134 3/7/2024
1.5.0 124 3/6/2024
1.4.6 136 2/27/2024
1.4.5 129 1/18/2024
1.4.3 129 12/29/2023
1.4.2 155 12/15/2023
1.4.1 120 12/15/2023
1.4.0 176 12/14/2023
1.3.3 122 12/1/2023
1.3.2 139 11/21/2023
1.3.1 127 11/8/2023
1.3.0 116 11/3/2023
1.1.1 163 8/15/2023
1.1.0 153 8/15/2023
1.0.0 202 7/27/2023