43 lines
1.8 KiB
C#

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