using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace gehGassi.Core.Interfaces
{
///
/// Schnittstellenbeschreibung für einen Service der alle PayPal-Funktionen zur Verfügung stellt
///
public interface IPayPalService
{
///
/// Prüft ob die PayPal Credentials korrekt sind und eine Verbindung zur Api aufgenommen werden kann
///
/// PayPal ClientId
/// PayPal Secret
/// true wenn erfolgreich, false sonst
Task TestCredentialsAsync(string clientId, string secret);
///
/// Erstellen einer PayPal-Order
///
/// Id der simple print Bestellung
/// PayPal ClientId
/// PayPal Secret
/// Redirect-Url für ERFOLG
/// Redirect-URL für Fehler oder Abbrechen
/// REdirect-Url zu PayPal oder leer wenn Fehler
Task CreateOrderAsync(long orderId, string clientId, string secret, string successUrl, string cancelUrl);
///
/// Authorisieren der PayPal Order - Bezahlung durchführen
///
/// PayPal-Order-Id
/// PayPal ClientId
/// PayPal Secret
/// true wenn erfolgreich, false sonst
Task AuthorizeOrderAsync(string payPalOrder, string clientId, string secret);
}
}