Skip to main content

PaymentProviderAdapter

Trait PaymentProviderAdapter 

pub trait PaymentProviderAdapter: Send + Sync {
    // Required methods
    fn provider_id(&self) -> &str;
    fn connect_authorization_url(
        &self,
        config: &dyn PaymentProviderProtocolConfig,
        app_root: &Path,
        owner_route_value: &str,
        credentials: &PaymentProviderResolvedCredentials,
        state: &str,
    ) -> Result<String, (String, String, i32)>;
    fn validate_connect_config(
        &self,
        config: &dyn PaymentProviderProtocolConfig,
        app_root: &Path,
        owner_route_value: &str,
        credentials: &PaymentProviderResolvedCredentials,
    ) -> Result<(), (String, String, i32)>;
    fn exchange_authorization_code(
        &self,
        config: &dyn PaymentProviderProtocolConfig,
        http: &dyn PaymentProviderHttpClient,
        credentials: &PaymentProviderResolvedCredentials,
        authorization_code: &str,
    ) -> Result<Value, (String, String, i32)>;
    fn retrieve_account(
        &self,
        config: &dyn PaymentProviderProtocolConfig,
        http: &dyn PaymentProviderHttpClient,
        credentials: &PaymentProviderResolvedCredentials,
        provider_account_id: &str,
    ) -> Result<Value, (String, String, i32)>;
    fn retrieve_authenticated_account(
        &self,
        config: &dyn PaymentProviderProtocolConfig,
        http: &dyn PaymentProviderHttpClient,
        credentials: &PaymentProviderResolvedCredentials,
    ) -> Result<Value, (String, String, i32)>;
    fn deauthorize_account(
        &self,
        config: &dyn PaymentProviderProtocolConfig,
        http: &dyn PaymentProviderHttpClient,
        credentials: &PaymentProviderResolvedCredentials,
        provider_account_id: &str,
    ) -> Result<(), (String, String, i32)>;
    fn account_label(&self, account: &Value) -> String;
    fn account_status(
        &self,
        account: &Value,
    ) -> (&'static str, &'static str, bool, bool, bool, Option<String>, Option<String>);
}
Expand description

A registered provider protocol implementation.

Required Methods§

fn provider_id(&self) -> &str

fn connect_authorization_url( &self, config: &dyn PaymentProviderProtocolConfig, app_root: &Path, owner_route_value: &str, credentials: &PaymentProviderResolvedCredentials, state: &str, ) -> Result<String, (String, String, i32)>

fn validate_connect_config( &self, config: &dyn PaymentProviderProtocolConfig, app_root: &Path, owner_route_value: &str, credentials: &PaymentProviderResolvedCredentials, ) -> Result<(), (String, String, i32)>

fn exchange_authorization_code( &self, config: &dyn PaymentProviderProtocolConfig, http: &dyn PaymentProviderHttpClient, credentials: &PaymentProviderResolvedCredentials, authorization_code: &str, ) -> Result<Value, (String, String, i32)>

fn retrieve_account( &self, config: &dyn PaymentProviderProtocolConfig, http: &dyn PaymentProviderHttpClient, credentials: &PaymentProviderResolvedCredentials, provider_account_id: &str, ) -> Result<Value, (String, String, i32)>

fn retrieve_authenticated_account( &self, config: &dyn PaymentProviderProtocolConfig, http: &dyn PaymentProviderHttpClient, credentials: &PaymentProviderResolvedCredentials, ) -> Result<Value, (String, String, i32)>

fn deauthorize_account( &self, config: &dyn PaymentProviderProtocolConfig, http: &dyn PaymentProviderHttpClient, credentials: &PaymentProviderResolvedCredentials, provider_account_id: &str, ) -> Result<(), (String, String, i32)>

fn account_label(&self, account: &Value) -> String

fn account_status( &self, account: &Value, ) -> (&'static str, &'static str, bool, bool, bool, Option<String>, Option<String>)

Implementors§

§

impl PaymentProviderAdapter for RegisteredPaymentProviderAdapter