pub struct ResourceServer { /* private fields */ }Expand description
Server-side payment orchestrator (official X402ResourceServer, V2-only).
Implementations§
Source§impl ResourceServer
impl ResourceServer
Sourcepub fn new<F>(facilitator: Arc<F>) -> Selfwhere
F: Facilitator + 'static,
pub fn new<F>(facilitator: Arc<F>) -> Selfwhere
F: Facilitator + 'static,
Creates a resource server over any Facilitator.
Sourcepub fn from_dyn(facilitator: Arc<dyn DynFacilitator>) -> Self
pub fn from_dyn(facilitator: Arc<dyn DynFacilitator>) -> Self
Creates from an already-erased facilitator handle.
Sourcepub fn with_hook(self, hook: impl ResourceServerHooks + 'static) -> Self
pub fn with_hook(self, hook: impl ResourceServerHooks + 'static) -> Self
Registers a lifecycle hook. Returns self for builder chaining.
Sourcepub fn add_hook(&mut self, hook: impl ResourceServerHooks + 'static)
pub fn add_hook(&mut self, hook: impl ResourceServerHooks + 'static)
Registers a lifecycle hook after construction.
Sourcepub fn hook_count(&self) -> usize
pub fn hook_count(&self) -> usize
Number of registered resource-server hooks.
Sourcepub fn facilitator(&self) -> Arc<dyn DynFacilitator> ⓘ
pub fn facilitator(&self) -> Arc<dyn DynFacilitator> ⓘ
Returns a clone of the inner facilitator handle.
Sourcepub fn find_matching_requirements<'a>(
&self,
available: &'a [PaymentRequirements],
payload: &WirePaymentPayload,
) -> Option<&'a PaymentRequirements>
pub fn find_matching_requirements<'a>( &self, available: &'a [PaymentRequirements], payload: &WirePaymentPayload, ) -> Option<&'a PaymentRequirements>
Official FindMatchingRequirements.
Method form matches the Go X402ResourceServer surface even though
matching is pure over the arguments.
Sourcepub async fn verify_payment(
&self,
payload: &WirePaymentPayload,
requirements: &PaymentRequirements,
) -> Result<VerifyPaymentOutcome, FacilitatorError>
pub async fn verify_payment( &self, payload: &WirePaymentPayload, requirements: &PaymentRequirements, ) -> Result<VerifyPaymentOutcome, FacilitatorError>
Official VerifyPayment: before hooks → facilitator → after hooks.
§Errors
Propagates facilitator errors (unless recovered), before-hook aborts,
and after-verify aborts (FacilitatorError::Aborted).
Sourcepub async fn settle_payment(
&self,
payload: &WirePaymentPayload,
requirements: &PaymentRequirements,
overrides: Option<&SettlementOverrides>,
) -> Result<SettleResponse, FacilitatorError>
pub async fn settle_payment( &self, payload: &WirePaymentPayload, requirements: &PaymentRequirements, overrides: Option<&SettlementOverrides>, ) -> Result<SettleResponse, FacilitatorError>
Official SettlePayment: optional amount overrides → before hooks →
facilitator → after hooks.
overrides applies partial settlement (upto): atomic / percent / dollar
amounts are resolved against requirements.amount before hooks see the
payment context (matches Go SettlePaymentWithExtensions).
§Errors
Propagates facilitator / abort / invalid-override errors unless a failure hook recovers.
Sourcepub async fn notify_verified_payment_canceled(
&self,
payload: &WirePaymentPayload,
requirements: &PaymentRequirements,
reason: CancelReason,
error: Option<&str>,
response_status: Option<u16>,
)
pub async fn notify_verified_payment_canceled( &self, payload: &WirePaymentPayload, requirements: &PaymentRequirements, reason: CancelReason, error: Option<&str>, response_status: Option<u16>, )
Fires on_verified_payment_canceled for every registered hook.
Transports call this when a handler fails after a successful verify
(or when an after-verify abort already did — safe to call again via
CancellationGuard).
Sourcepub fn cancellation_guard(
&self,
payload: WirePaymentPayload,
requirements: PaymentRequirements,
) -> CancellationGuard
pub fn cancellation_guard( &self, payload: WirePaymentPayload, requirements: PaymentRequirements, ) -> CancellationGuard
Builds a one-shot cancellation dispatcher (first call wins).