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.